diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1a55fdb1a..9424323c2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up node uses: actions/setup-node@v3 @@ -21,7 +21,7 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up node uses: actions/setup-node@v3 @@ -35,7 +35,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up node uses: actions/setup-node@v3 - name: Install dependencies diff --git a/.mock/definition/accounting/__package__.yml b/.mock/definition/accounting/__package__.yml new file mode 100644 index 000000000..8b5d4d048 --- /dev/null +++ b/.mock/definition/accounting/__package__.yml @@ -0,0 +1,55865 @@ +types: + AccountClassification: + discriminated: false + docs: |- + The account's broadest grouping. + + * `ASSET` - ASSET + * `EQUITY` - EQUITY + * `EXPENSE` - EXPENSE + * `LIABILITY` - LIABILITY + * `REVENUE` - REVENUE + union: + - ClassificationEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountAccountType: + discriminated: false + docs: >- + Normalized account type- which is a narrower and more specific grouping + within the account's classification. + + + * `BANK` - BANK + + * `CREDIT_CARD` - CREDIT_CARD + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + + * `FIXED_ASSET` - FIXED_ASSET + + * `OTHER_ASSET` - OTHER_ASSET + + * `OTHER_CURRENT_ASSET` - OTHER_CURRENT_ASSET + + * `OTHER_EXPENSE` - OTHER_EXPENSE + + * `OTHER_INCOME` - OTHER_INCOME + + * `COST_OF_GOODS_SOLD` - COST_OF_GOODS_SOLD + + * `OTHER_CURRENT_LIABILITY` - OTHER_CURRENT_LIABILITY + + * `LONG_TERM_LIABILITY` - LONG_TERM_LIABILITY + + * `NON_POSTING` - NON_POSTING + union: + - AccountAccountTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountStatus: + discriminated: false + docs: |- + The account's status. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + union: + - AccountStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountCurrency: + discriminated: false + docs: >- + The account's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Account: + docs: >- + # The Account Object + + ### Description + + An `Account` represents a category in a company’s ledger in which a + financial transaction is recorded against. The aggregation of each + `Account` object is often referred to as the **Chart of Accounts**. + + + An `Account` can be classified into one of the following categories, + determined through the `classification` field: + + * __Asset:__ Accounts Receivable and Bank Accounts + + * __Liability:__ Accounts Payable and Credit Card Accounts + + * __Equity:__ Treasury Accounts and Retained Earnings + + * __Revenue:__ Income and Other Income + + * __Expense:__ Cost of Goods Sold and Office Expenses + + + ### Usage Example + + Fetch from the `LIST Accounts` endpoint and view a company's accounts. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The account's name. + description: + type: optional + docs: The account's description. + classification: + type: optional + docs: |- + The account's broadest grouping. + + * `ASSET` - ASSET + * `EQUITY` - EQUITY + * `EXPENSE` - EXPENSE + * `LIABILITY` - LIABILITY + * `REVENUE` - REVENUE + type: + type: optional + docs: >- + The account's type is a narrower and more specific grouping within the + account's classification. + account_type: + type: optional + docs: >- + Normalized account type- which is a narrower and more specific + grouping within the account's classification. + + + * `BANK` - BANK + + * `CREDIT_CARD` - CREDIT_CARD + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + + * `FIXED_ASSET` - FIXED_ASSET + + * `OTHER_ASSET` - OTHER_ASSET + + * `OTHER_CURRENT_ASSET` - OTHER_CURRENT_ASSET + + * `OTHER_EXPENSE` - OTHER_EXPENSE + + * `OTHER_INCOME` - OTHER_INCOME + + * `COST_OF_GOODS_SOLD` - COST_OF_GOODS_SOLD + + * `OTHER_CURRENT_LIABILITY` - OTHER_CURRENT_LIABILITY + + * `LONG_TERM_LIABILITY` - LONG_TERM_LIABILITY + + * `NON_POSTING` - NON_POSTING + status: + type: optional + docs: |- + The account's status. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + current_balance: + type: optional + docs: The account's current balance. + currency: + type: optional + docs: >- + The account's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + account_number: + type: optional + docs: The account's number. + parent_account: + type: optional + docs: ID of the parent account. + validation: + format: uuid + company: + type: optional + docs: The company the account belongs to. + validation: + format: uuid + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + AccountAccountTypeEnum: + enum: + - BANK + - CREDIT_CARD + - ACCOUNTS_PAYABLE + - ACCOUNTS_RECEIVABLE + - FIXED_ASSET + - OTHER_ASSET + - OTHER_CURRENT_ASSET + - OTHER_EXPENSE + - OTHER_INCOME + - COST_OF_GOODS_SOLD + - OTHER_CURRENT_LIABILITY + - LONG_TERM_LIABILITY + - NON_POSTING + docs: |- + * `BANK` - BANK + * `CREDIT_CARD` - CREDIT_CARD + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + * `FIXED_ASSET` - FIXED_ASSET + * `OTHER_ASSET` - OTHER_ASSET + * `OTHER_CURRENT_ASSET` - OTHER_CURRENT_ASSET + * `OTHER_EXPENSE` - OTHER_EXPENSE + * `OTHER_INCOME` - OTHER_INCOME + * `COST_OF_GOODS_SOLD` - COST_OF_GOODS_SOLD + * `OTHER_CURRENT_LIABILITY` - OTHER_CURRENT_LIABILITY + * `LONG_TERM_LIABILITY` - LONG_TERM_LIABILITY + * `NON_POSTING` - NON_POSTING + source: + openapi: openapi/openapi.yml + AccountDetailsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountDetails: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + integration: + type: optional + access: read-only + integration_slug: + type: optional + access: read-only + category: optional + end_user_origin_id: + type: optional + access: read-only + end_user_organization_name: + type: optional + access: read-only + end_user_email_address: + type: optional + validation: + format: email + access: read-only + status: + type: optional + access: read-only + webhook_listener_url: + type: optional + validation: + format: uri + access: read-only + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + access: read-only + account_type: + type: optional + access: read-only + completed_at: + type: optional + docs: The time at which account completes the linking flow. + source: + openapi: openapi/openapi.yml + AccountDetailsAndActionsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountDetailsAndActionsStatus: + discriminated: false + union: + - AccountDetailsAndActionsStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountDetailsAndActions: + docs: >- + # The LinkedAccount Object + + ### Description + + The `LinkedAccount` object is used to represent an end user's link with a + specific integration. + + + ### Usage Example + + View a list of your organization's `LinkedAccount` objects. + properties: + id: string + category: optional + status: AccountDetailsAndActionsStatus + status_detail: optional + end_user_origin_id: optional + end_user_organization_name: string + end_user_email_address: string + subdomain: + type: optional + docs: The tenant or domain the customer has provided access to. + webhook_listener_url: string + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + integration: optional + account_type: string + completed_at: datetime + integration_specific_fields: optional> + source: + openapi: openapi/openapi.yml + AccountDetailsAndActionsIntegration: + properties: + name: string + categories: list + image: optional + square_image: optional + color: string + slug: string + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: openapi/openapi.yml + AccountDetailsAndActionsStatusEnum: + enum: + - COMPLETE + - INCOMPLETE + - RELINK_NEEDED + - IDLE + docs: |- + * `COMPLETE` - COMPLETE + * `INCOMPLETE` - INCOMPLETE + * `RELINK_NEEDED` - RELINK_NEEDED + * `IDLE` - IDLE + source: + openapi: openapi/openapi.yml + AccountIntegration: + properties: + name: + type: string + docs: Company name. + abbreviated_name: + type: optional + docs: >- + Optional. This shortened name appears in places with limited space, + usually in conjunction with the platform's logo (e.g., Merge Link + menu).

Example: Workforce Now (in lieu of ADP Workforce + Now), SuccessFactors (in lieu of SAP SuccessFactors) + categories: + type: optional> + docs: >- + Category or categories this integration belongs to. Multiple + categories should be comma separated, i.e. [ats, hris]. + access: read-only + image: + type: optional + docs: Company logo in rectangular shape. + validation: + format: uri + square_image: + type: optional + docs: Company logo in square shape. + validation: + format: uri + color: + type: optional + docs: >- + The color of this integration used for buttons and text throughout the + app and landing pages. Choose a darker, saturated color. + validation: + pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ + maxLength: 18 + slug: + type: optional + access: read-only + api_endpoints_to_documentation_urls: + type: optional> + docs: >- + Mapping of API endpoints to documentation urls for support. Example: + {'GET': [['/common-model-scopes', + 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', + 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], + 'POST': []} + webhook_setup_guide_url: + type: optional + docs: >- + Setup guide URL for third party webhook creation. Exposed in Merge + Docs. + category_beta_status: + type: optional> + docs: Category or categories this integration is in beta status for. + access: read-only + source: + openapi: openapi/openapi.yml + AccountRequestClassification: + discriminated: false + docs: |- + The account's broadest grouping. + + * `ASSET` - ASSET + * `EQUITY` - EQUITY + * `EXPENSE` - EXPENSE + * `LIABILITY` - LIABILITY + * `REVENUE` - REVENUE + union: + - ClassificationEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountRequestAccountType: + discriminated: false + docs: >- + Normalized account type- which is a narrower and more specific grouping + within the account's classification. + + + * `BANK` - BANK + + * `CREDIT_CARD` - CREDIT_CARD + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + + * `FIXED_ASSET` - FIXED_ASSET + + * `OTHER_ASSET` - OTHER_ASSET + + * `OTHER_CURRENT_ASSET` - OTHER_CURRENT_ASSET + + * `OTHER_EXPENSE` - OTHER_EXPENSE + + * `OTHER_INCOME` - OTHER_INCOME + + * `COST_OF_GOODS_SOLD` - COST_OF_GOODS_SOLD + + * `OTHER_CURRENT_LIABILITY` - OTHER_CURRENT_LIABILITY + + * `LONG_TERM_LIABILITY` - LONG_TERM_LIABILITY + + * `NON_POSTING` - NON_POSTING + union: + - AccountAccountTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountRequestStatus: + discriminated: false + docs: |- + The account's status. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + union: + - AccountStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountRequestCurrency: + discriminated: false + docs: >- + The account's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountRequest: + docs: >- + # The Account Object + + ### Description + + An `Account` represents a category in a company’s ledger in which a + financial transaction is recorded against. The aggregation of each + `Account` object is often referred to as the **Chart of Accounts**. + + + An `Account` can be classified into one of the following categories, + determined through the `classification` field: + + * __Asset:__ Accounts Receivable and Bank Accounts + + * __Liability:__ Accounts Payable and Credit Card Accounts + + * __Equity:__ Treasury Accounts and Retained Earnings + + * __Revenue:__ Income and Other Income + + * __Expense:__ Cost of Goods Sold and Office Expenses + + + ### Usage Example + + Fetch from the `LIST Accounts` endpoint and view a company's accounts. + properties: + name: + type: optional + docs: The account's name. + description: + type: optional + docs: The account's description. + classification: + type: optional + docs: |- + The account's broadest grouping. + + * `ASSET` - ASSET + * `EQUITY` - EQUITY + * `EXPENSE` - EXPENSE + * `LIABILITY` - LIABILITY + * `REVENUE` - REVENUE + type: + type: optional + docs: >- + The account's type is a narrower and more specific grouping within the + account's classification. + account_type: + type: optional + docs: >- + Normalized account type- which is a narrower and more specific + grouping within the account's classification. + + + * `BANK` - BANK + + * `CREDIT_CARD` - CREDIT_CARD + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + + * `FIXED_ASSET` - FIXED_ASSET + + * `OTHER_ASSET` - OTHER_ASSET + + * `OTHER_CURRENT_ASSET` - OTHER_CURRENT_ASSET + + * `OTHER_EXPENSE` - OTHER_EXPENSE + + * `OTHER_INCOME` - OTHER_INCOME + + * `COST_OF_GOODS_SOLD` - COST_OF_GOODS_SOLD + + * `OTHER_CURRENT_LIABILITY` - OTHER_CURRENT_LIABILITY + + * `LONG_TERM_LIABILITY` - LONG_TERM_LIABILITY + + * `NON_POSTING` - NON_POSTING + status: + type: optional + docs: |- + The account's status. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + current_balance: + type: optional + docs: The account's current balance. + currency: + type: optional + docs: >- + The account's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + account_number: + type: optional + docs: The account's number. + parent_account: + type: optional + docs: ID of the parent account. + validation: + format: uuid + company: + type: optional + docs: The company the account belongs to. + validation: + format: uuid + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + AccountResponse: + properties: + model: Account + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + AccountStatusEnum: + enum: + - ACTIVE + - PENDING + - INACTIVE + docs: |- + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + source: + openapi: openapi/openapi.yml + AccountToken: + properties: + account_token: string + integration: AccountIntegration + id: string + source: + openapi: openapi/openapi.yml + AccountingAttachment: + docs: >- + # The Accounting Attachment Object + + ### Description + + The `AccountingAttachment` object is used to represent a company's + attachments. + + + ### Usage Example + + Fetch from the `LIST AccountingAttachments` endpoint and view a company's + attachments. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + file_name: + type: optional + docs: The attachment's name. + file_url: + type: optional + docs: The attachment's url. + validation: + format: uri + maxLength: 2000 + company: + type: optional + docs: The company the accounting attachment belongs to. + validation: + format: uuid + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + AccountingAttachmentRequest: + docs: >- + # The Accounting Attachment Object + + ### Description + + The `AccountingAttachment` object is used to represent a company's + attachments. + + + ### Usage Example + + Fetch from the `LIST AccountingAttachments` endpoint and view a company's + attachments. + properties: + file_name: + type: optional + docs: The attachment's name. + file_url: + type: optional + docs: The attachment's url. + validation: + format: uri + maxLength: 2000 + company: + type: optional + docs: The company the accounting attachment belongs to. + validation: + format: uuid + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + AccountingAttachmentResponse: + properties: + model: AccountingAttachment + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + AccountingPeriodStatus: + discriminated: false + union: + - Status895Enum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountingPeriod: + docs: >- + # The AccountingPeriod Object + + ### Description + + The `AccountingPeriod` object is used to define a period of time in which + events occurred. + + + ### Usage Example + + Common models like `Invoice` and `Transaction` will have + `AccountingPeriod` objects which will denote when they occurred. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: Name of the accounting period. + validation: + maxLength: 100 + status: optional + start_date: + type: optional + docs: Beginning date of the period + end_date: + type: optional + docs: End date of the period + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + AccountingPhoneNumber: + docs: >- + # The AccountingPhoneNumber Object + + ### Description + + The `AccountingPhoneNumber` object is used to represent a contact's or + company's phone number. + + + ### Usage Example + + Fetch from the `GET CompanyInfo` endpoint and view the company's phone + numbers. + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + number: + type: optional + docs: The phone number. + type: + type: optional + docs: The phone number's type. + source: + openapi: openapi/openapi.yml + AccountingPhoneNumberRequest: + docs: >- + # The AccountingPhoneNumber Object + + ### Description + + The `AccountingPhoneNumber` object is used to represent a contact's or + company's phone number. + + + ### Usage Example + + Fetch from the `GET CompanyInfo` endpoint and view the company's phone + numbers. + properties: + number: + type: optional + docs: The phone number. + type: + type: optional + docs: The phone number's type. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + AddressType: + discriminated: false + docs: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + union: + - AddressTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AddressCountry: + discriminated: false + docs: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + union: + - CountryEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Address: + docs: >- + # The Address Object + + ### Description + + The `Address` object is used to represent a contact's or company's + address. + + + ### Usage Example + + Fetch from the `GET CompanyInfo` endpoint and view the company's + addresses. + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + type: + type: optional + docs: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + street_1: + type: optional + docs: Line 1 of the address's street. + street_2: + type: optional + docs: Line 2 of the address's street. + city: + type: optional + docs: The address's city. + state: + type: optional + access: read-only + country_subdivision: + type: optional + docs: The address's state or region. + country: + type: optional + docs: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + zip_code: + type: optional + docs: The address's zip code. + source: + openapi: openapi/openapi.yml + AddressRequestType: + discriminated: false + docs: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + union: + - AddressTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AddressRequestCountry: + discriminated: false + docs: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + union: + - CountryEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AddressRequest: + docs: >- + # The Address Object + + ### Description + + The `Address` object is used to represent a contact's or company's + address. + + + ### Usage Example + + Fetch from the `GET CompanyInfo` endpoint and view the company's + addresses. + properties: + type: + type: optional + docs: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + street_1: + type: optional + docs: Line 1 of the address's street. + street_2: + type: optional + docs: Line 2 of the address's street. + city: + type: optional + docs: The address's city. + country_subdivision: + type: optional + docs: The address's state or region. + country: + type: optional + docs: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + zip_code: + type: optional + docs: The address's zip code. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + AddressTypeEnum: + enum: + - BILLING + - SHIPPING + docs: |- + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + source: + openapi: openapi/openapi.yml + AdvancedMetadata: + properties: + id: + type: string + validation: + format: uuid + display_name: optional + description: optional + is_required: optional + is_custom: optional + field_choices: optional> + source: + openapi: openapi/openapi.yml + AsyncPassthroughReciept: + properties: + async_passthrough_receipt_id: + type: string + validation: + format: uuid + source: + openapi: openapi/openapi.yml + AsyncPostTaskStatus: + discriminated: false + union: + - AsyncPostTaskStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AsyncPostTask: + properties: + status: AsyncPostTaskStatus + result: AsyncPostTaskResult + source: + openapi: openapi/openapi.yml + AsyncPostTaskResult: + properties: + status_code: optional + response: optional> + source: + openapi: openapi/openapi.yml + AsyncPostTaskStatusEnum: + enum: + - QUEUED + - IN_PROGRESS + - COMPLETED + - FAILURE + docs: |- + * `QUEUED` - QUEUED + * `IN_PROGRESS` - IN_PROGRESS + * `COMPLETED` - COMPLETED + * `FAILURE` - FAILURE + source: + openapi: openapi/openapi.yml + AuditLogEventRole: + discriminated: false + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by a + user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + union: + - RoleEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AuditLogEventEventType: + discriminated: false + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + union: + - EventTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AuditLogEvent: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + user_name: + type: optional + docs: The User's full name at the time of this Event occurring. + validation: + maxLength: 200 + user_email: + type: optional + docs: The User's email at the time of this Event occurring. + validation: + format: email + maxLength: 254 + role: + type: AuditLogEventRole + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by + a user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + ip_address: + type: string + validation: + maxLength: 45 + event_type: + type: AuditLogEventEventType + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - + CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - + DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + event_description: string + created_at: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + AvailableActions: + docs: >- + # The AvailableActions Object + + ### Description + + The `Activity` object is used to see all available model/operation + combinations for an integration. + + + ### Usage Example + + Fetch all the actions available for the `Zenefits` integration. + properties: + integration: AccountIntegration + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: openapi/openapi.yml + BalanceSheetCurrency: + discriminated: false + docs: >- + The balance sheet's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + BalanceSheetCompany: + discriminated: false + docs: '`Company` object for the given `BalanceSheet` object.' + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + BalanceSheet: + docs: >- + # The BalanceSheet Object + + ### Description + + The `BalanceSheet` object shows a company’s assets, liabilities, and + equity. Assets should be equal to liability and equity combined. This + shows the company’s financial health at a specific point in time. + + + ### Usage Example + + Fetch from the `LIST BalanceSheets` endpoint and view a company's balance + sheets. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The balance sheet's name. + currency: + type: optional + docs: >- + The balance sheet's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + company: + type: optional + docs: '`Company` object for the given `BalanceSheet` object.' + date: + type: optional + docs: >- + The balance sheet's date. The balance sheet data will reflect the + company's financial position this point in time. + net_assets: + type: optional + docs: The balance sheet's net assets. + assets: + type: optional> + access: read-only + liabilities: + type: optional> + access: read-only + equity: + type: optional> + access: read-only + remote_generated_at: + type: optional + docs: The time that balance sheet was generated by the accounting system. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + BankFeedAccountCurrency: + discriminated: false + docs: >- + The currency code of the bank feed. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + BankFeedAccountFeedStatus: + discriminated: false + docs: |- + The status of the bank feed. + + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + union: + - FeedStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + BankFeedAccountAccountType: + discriminated: false + docs: |- + The type of the account. + + * `BANK` - BANK + * `CREDIT_CARD` - CREDIT_CARD + union: + - BankFeedAccountAccountTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + BankFeedAccount: + docs: >- + # The BankFeedAccount Object + + ### Description + + The `BankFeedAccount` object represents a bank feed account, detailing + various attributes including account identifiers, names, currency, and + balance information. This object is central to managing and tracking bank + feed accounts within the system. + + + ### Usage Example + + Fetch from the `GET BankFeedAccount` endpoint to view details of a bank + feed account. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + source_account_id: + type: optional + docs: >- + The unique identifier of the source account from our customer’s + platform. + validation: + maxLength: 1024 + target_account_id: + type: optional + docs: >- + The unique identifier of the target account from the third party + software. + validation: + maxLength: 1024 + source_account_name: + type: optional + docs: The name of the source account as stored in our customer’s platform. + validation: + maxLength: 1024 + source_account_number: + type: optional + docs: >- + The human-readable account number of the source account as stored in + our customer’s platform. + validation: + maxLength: 1024 + target_account_name: + type: optional + docs: The name of the target account from the third party software. + validation: + maxLength: 1024 + currency: + type: optional + docs: >- + The currency code of the bank feed. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + feed_status: + type: optional + docs: |- + The status of the bank feed. + + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + feed_start_date: + type: optional + docs: The start date of the bank feed’s transactions. + source_account_balance: + type: optional + docs: The current balance of funds in the source account. + account_type: + type: optional + docs: |- + The type of the account. + + * `BANK` - BANK + * `CREDIT_CARD` - CREDIT_CARD + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: optional>>> + source: + openapi: openapi/openapi.yml + BankFeedAccountAccountTypeEnum: + enum: + - BANK + - CREDIT_CARD + docs: |- + * `BANK` - BANK + * `CREDIT_CARD` - CREDIT_CARD + source: + openapi: openapi/openapi.yml + BankFeedAccountRequestCurrency: + discriminated: false + docs: >- + The currency code of the bank feed. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + BankFeedAccountRequestFeedStatus: + discriminated: false + docs: |- + The status of the bank feed. + + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + union: + - FeedStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + BankFeedAccountRequestAccountType: + discriminated: false + docs: |- + The type of the account. + + * `BANK` - BANK + * `CREDIT_CARD` - CREDIT_CARD + union: + - BankFeedAccountAccountTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + BankFeedAccountRequest: + docs: >- + # The BankFeedAccount Object + + ### Description + + The `BankFeedAccount` object represents a bank feed account, detailing + various attributes including account identifiers, names, currency, and + balance information. This object is central to managing and tracking bank + feed accounts within the system. + + + ### Usage Example + + Fetch from the `GET BankFeedAccount` endpoint to view details of a bank + feed account. + properties: + source_account_id: + type: optional + docs: >- + The unique identifier of the source account from our customer’s + platform. + validation: + maxLength: 1024 + target_account_id: + type: optional + docs: >- + The unique identifier of the target account from the third party + software. + validation: + maxLength: 1024 + source_account_name: + type: optional + docs: The name of the source account as stored in our customer’s platform. + validation: + maxLength: 1024 + source_account_number: + type: optional + docs: >- + The human-readable account number of the source account as stored in + our customer’s platform. + validation: + maxLength: 1024 + target_account_name: + type: optional + docs: The name of the target account from the third party software. + validation: + maxLength: 1024 + currency: + type: optional + docs: >- + The currency code of the bank feed. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + feed_status: + type: optional + docs: |- + The status of the bank feed. + + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + feed_start_date: + type: optional + docs: The start date of the bank feed’s transactions. + source_account_balance: + type: optional + docs: The current balance of funds in the source account. + account_type: + type: optional + docs: |- + The type of the account. + + * `BANK` - BANK + * `CREDIT_CARD` - CREDIT_CARD + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + BankFeedAccountResponse: + properties: + model: BankFeedAccount + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + BankFeedTransactionBankFeedAccount: + discriminated: false + docs: The bank feed account associated with the transaction. + union: + - type: string + validation: + format: uuid + - BankFeedAccount + source: + openapi: openapi/openapi.yml + inline: true + BankFeedTransactionCreditOrDebit: + discriminated: false + docs: |- + If the transaction is of type debit or credit. + + * `CREDIT` - CREDIT + * `DEBIT` - DEBIT + union: + - CreditOrDebitEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + BankFeedTransaction: + docs: >- + # The BankFeedTransaction Object + + ### Description + + The `BankFeedTransaction` object is used to represent transactions linked + to a bank feed account. This includes details about the transaction such + as the date, amount, description, and type. + + + ### Usage Example + + Fetch from the `GET BankFeedTransaction` endpoint to view details of a + transaction associated with a bank feed account. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + bank_feed_account: + type: optional + docs: The bank feed account associated with the transaction. + transaction_date: + type: optional + docs: The date that the transaction occurred. + posted_date: + type: optional + docs: The date the transaction was posted to the bank account. + amount: + type: optional + docs: The amount of the transaction. + description: + type: optional + docs: The description of the transaction. + validation: + maxLength: 1024 + transaction_type: + type: optional + docs: The underlying type of the transaction. + validation: + maxLength: 1024 + payee: + type: optional + docs: >- + The person or merchant who initiated the transaction, or + alternatively, to whom the transaction was paid. + validation: + maxLength: 1024 + credit_or_debit: + type: optional + docs: |- + If the transaction is of type debit or credit. + + * `CREDIT` - CREDIT + * `DEBIT` - DEBIT + source_transaction_id: + type: optional + docs: The customer’s identifier for the transaction. + validation: + maxLength: 1024 + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + is_processed: + type: optional + docs: >- + Whether or not this transaction has been processed by the external + system. For example, NetSuite writes this field as True when the + SuiteApp has processed the transaction. + access: read-only + source: + openapi: openapi/openapi.yml + BankFeedTransactionRequestRequestBankFeedAccount: + discriminated: false + docs: The bank feed account associated with the transaction. + union: + - type: string + validation: + format: uuid + - BankFeedAccount + source: + openapi: openapi/openapi.yml + inline: true + BankFeedTransactionRequestRequestCreditOrDebit: + discriminated: false + docs: |- + If the transaction is of type debit or credit. + + * `CREDIT` - CREDIT + * `DEBIT` - DEBIT + union: + - CreditOrDebitEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + BankFeedTransactionRequestRequest: + docs: >- + # The BankFeedTransaction Object + + ### Description + + The `BankFeedTransaction` object is used to represent transactions linked + to a bank feed account. This includes details about the transaction such + as the date, amount, description, and type. + + + ### Usage Example + + Fetch from the `GET BankFeedTransaction` endpoint to view details of a + transaction associated with a bank feed account. + properties: + bank_feed_account: + type: optional + docs: The bank feed account associated with the transaction. + transaction_date: + type: optional + docs: The date that the transaction occurred. + posted_date: + type: optional + docs: The date the transaction was posted to the bank account. + amount: + type: optional + docs: The amount of the transaction. + description: + type: optional + docs: The description of the transaction. + validation: + maxLength: 1024 + transaction_type: + type: optional + docs: The underlying type of the transaction. + validation: + maxLength: 1024 + payee: + type: optional + docs: >- + The person or merchant who initiated the transaction, or + alternatively, to whom the transaction was paid. + validation: + maxLength: 1024 + credit_or_debit: + type: optional + docs: |- + If the transaction is of type debit or credit. + + * `CREDIT` - CREDIT + * `DEBIT` - DEBIT + source_transaction_id: + type: optional + docs: The customer’s identifier for the transaction. + validation: + maxLength: 1024 + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + BankFeedTransactionResponse: + properties: + model: BankFeedTransaction + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + CashFlowStatementCurrency: + discriminated: false + docs: >- + The cash flow statement's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + CashFlowStatementCompany: + discriminated: false + docs: The company the cash flow statement belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + CashFlowStatement: + docs: >- + # The CashFlowStatement Object + + ### Description + + The `CashFlowStatement` object shows operating activities, investing + activities, and financing activities over a period of time (month, + quarter, or year). + + + ### Usage Example + + Fetch from the `LIST CashFlowStatements` endpoint and view a company's + cash flow statements. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The cash flow statement's name. + currency: + type: optional + docs: >- + The cash flow statement's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + company: + type: optional + docs: The company the cash flow statement belongs to. + start_period: + type: optional + docs: The cash flow statement's start period. + end_period: + type: optional + docs: The cash flow statement's end period. + cash_at_beginning_of_period: + type: optional + docs: >- + Cash and cash equivalents at the beginning of the cash flow + statement's period. + cash_at_end_of_period: + type: optional + docs: >- + Cash and cash equivalents at the beginning of the cash flow + statement's period. + operating_activities: + type: optional> + access: read-only + investing_activities: + type: optional> + access: read-only + financing_activities: + type: optional> + access: read-only + remote_generated_at: + type: optional + docs: >- + The time that cash flow statement was generated by the accounting + system. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + CategoriesEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: openapi/openapi.yml + CategoryEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: openapi/openapi.yml + CategoryTypeEnum: + enum: + - CLASS + - DEPARTMENT + docs: |- + * `CLASS` - CLASS + * `DEPARTMENT` - DEPARTMENT + source: + openapi: openapi/openapi.yml + ClassificationEnum: + enum: + - ASSET + - EQUITY + - EXPENSE + - LIABILITY + - REVENUE + docs: |- + * `ASSET` - ASSET + * `EQUITY` - EQUITY + * `EXPENSE` - EXPENSE + * `LIABILITY` - LIABILITY + * `REVENUE` - REVENUE + source: + openapi: openapi/openapi.yml + CommonModelScopeApi: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + source: + openapi: openapi/openapi.yml + CommonModelScopesBodyRequest: + properties: + model_id: + type: string + validation: + minLength: 1 + enabled_actions: list + disabled_fields: list + source: + openapi: openapi/openapi.yml + CompanyInfoCurrency: + discriminated: false + docs: >- + The currency set in the company's accounting platform. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + CompanyInfo: + docs: >- + # The CompanyInfo Object + + ### Description + + The `CompanyInfo` object contains information about the company of the + linked account. If the company has multiple entities (also known as + subsidiaries), each entity may show up as a single `CompanyInfo` record. + + + ### Usage Example + + Fetch from the `GET CompanyInfo` endpoint and view a company's + information. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The company's name. + legal_name: + type: optional + docs: The company's legal name. + tax_number: + type: optional + docs: The company's tax number. + fiscal_year_end_month: + type: optional + docs: The company's fiscal year end month. + validation: + min: 1 + max: 12 + fiscal_year_end_day: + type: optional + docs: The company's fiscal year end day. + validation: + min: 1 + max: 31 + currency: + type: optional + docs: >- + The currency set in the company's accounting platform. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + remote_created_at: + type: optional + docs: When the third party's company was created. + urls: + type: optional>> + docs: The company's urls. + addresses: optional> + phone_numbers: optional> + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + ComponentTypeEnum: + enum: + - SALES + - PURCHASE + docs: |- + * `SALES` - SALES + * `PURCHASE` - PURCHASE + source: + openapi: openapi/openapi.yml + ContactStatus: + discriminated: false + docs: |- + The contact's status + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + union: + - Status7D1Enum + - string + source: + openapi: openapi/openapi.yml + inline: true + ContactAddressesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Address + source: + openapi: openapi/openapi.yml + inline: true + Contact: + docs: >- + # The Contact Object + + ### Description + + A `Contact` is an individual or business entity to which products and + services are sold to or purchased from. The `Contact` model contains both + Customers, in which products and services are sold to, and Vendors (or + Suppliers), in which products and services are purchased from. + + * A `Contact` is a Vendor/Supplier if the `is_supplier` property is true. + + * A `Contact` is a customer if the `is_customer` property is true. + + + ### Usage Example + + Fetch from the `LIST Contacts` endpoint and view a company's contacts. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The contact's name. + is_supplier: + type: optional + docs: Whether the contact is a supplier. + is_customer: + type: optional + docs: Whether the contact is a customer. + email_address: + type: optional + docs: The contact's email address. + tax_number: + type: optional + docs: The contact's tax number. + status: + type: optional + docs: |- + The contact's status + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + currency: + type: optional + docs: The currency the contact's transactions are in. + remote_updated_at: + type: optional + docs: When the third party's contact was updated. + company: + type: optional + docs: The company the contact belongs to. + validation: + format: uuid + addresses: + type: optional>> + docs: '`Address` object IDs for the given `Contacts` object.' + phone_numbers: + type: optional> + docs: '`AccountingPhoneNumber` object for the given `Contacts` object.' + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + ContactRequestStatus: + discriminated: false + docs: |- + The contact's status + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + union: + - Status7D1Enum + - string + source: + openapi: openapi/openapi.yml + inline: true + ContactRequestAddressesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Address + source: + openapi: openapi/openapi.yml + inline: true + ContactRequest: + docs: >- + # The Contact Object + + ### Description + + A `Contact` is an individual or business entity to which products and + services are sold to or purchased from. The `Contact` model contains both + Customers, in which products and services are sold to, and Vendors (or + Suppliers), in which products and services are purchased from. + + * A `Contact` is a Vendor/Supplier if the `is_supplier` property is true. + + * A `Contact` is a customer if the `is_customer` property is true. + + + ### Usage Example + + Fetch from the `LIST Contacts` endpoint and view a company's contacts. + properties: + name: + type: optional + docs: The contact's name. + is_supplier: + type: optional + docs: Whether the contact is a supplier. + is_customer: + type: optional + docs: Whether the contact is a customer. + email_address: + type: optional + docs: The contact's email address. + tax_number: + type: optional + docs: The contact's tax number. + status: + type: optional + docs: |- + The contact's status + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + currency: + type: optional + docs: The currency the contact's transactions are in. + company: + type: optional + docs: The company the contact belongs to. + validation: + format: uuid + addresses: + type: optional>> + docs: '`Address` object IDs for the given `Contacts` object.' + phone_numbers: + type: optional> + docs: '`AccountingPhoneNumber` object for the given `Contacts` object.' + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + ContactResponse: + properties: + model: Contact + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + CountryEnum: + enum: + - AF + - AX + - AL + - DZ + - AS + - AD + - AO + - AI + - AQ + - AG + - AR + - AM + - AW + - AU + - AT + - AZ + - BS + - BH + - BD + - BB + - BY + - BE + - BZ + - BJ + - BM + - BT + - BO + - BQ + - BA + - BW + - BV + - BR + - IO + - BN + - BG + - BF + - BI + - CV + - KH + - CM + - CA + - KY + - CF + - TD + - CL + - CN + - CX + - CC + - CO + - KM + - CG + - CD + - CK + - CR + - CI + - HR + - CU + - CW + - CY + - CZ + - DK + - DJ + - DM + - DO + - EC + - EG + - SV + - GQ + - ER + - EE + - SZ + - ET + - FK + - FO + - FJ + - FI + - FR + - GF + - PF + - TF + - GA + - GM + - GE + - DE + - GH + - GI + - GR + - GL + - GD + - GP + - GU + - GT + - GG + - GN + - GW + - GY + - HT + - HM + - VA + - HN + - HK + - HU + - IS + - IN + - ID + - IR + - IQ + - IE + - IM + - IL + - IT + - JM + - JP + - JE + - JO + - KZ + - KE + - KI + - KW + - KG + - LA + - LV + - LB + - LS + - LR + - LY + - LI + - LT + - LU + - MO + - MG + - MW + - MY + - MV + - ML + - MT + - MH + - MQ + - MR + - MU + - YT + - MX + - FM + - MD + - MC + - MN + - ME + - MS + - MA + - MZ + - MM + - NA + - NR + - NP + - NL + - NC + - NZ + - NI + - NE + - NG + - NU + - NF + - KP + - MK + - MP + - 'NO' + - OM + - PK + - PW + - PS + - PA + - PG + - PY + - PE + - PH + - PN + - PL + - PT + - PR + - QA + - RE + - RO + - RU + - RW + - BL + - SH + - KN + - LC + - MF + - PM + - VC + - WS + - SM + - ST + - SA + - SN + - RS + - SC + - SL + - SG + - SX + - SK + - SI + - SB + - SO + - ZA + - GS + - KR + - SS + - ES + - LK + - SD + - SR + - SJ + - SE + - CH + - SY + - TW + - TJ + - TZ + - TH + - TL + - TG + - TK + - TO + - TT + - TN + - TR + - TM + - TC + - TV + - UG + - UA + - AE + - GB + - UM + - US + - UY + - UZ + - VU + - VE + - VN + - VG + - VI + - WF + - EH + - YE + - ZM + - ZW + docs: |- + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + source: + openapi: openapi/openapi.yml + CreditNoteStatus: + discriminated: false + docs: |- + The credit note's status. + + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `PAID` - PAID + union: + - CreditNoteStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteContact: + discriminated: false + docs: The credit note's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteCompany: + discriminated: false + docs: The company the credit note belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteCurrency: + discriminated: false + docs: >- + The credit note's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + CreditNotePaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Payment + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteAppliedPaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PaymentLineItem + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteAccountingPeriod: + discriminated: false + docs: The accounting period that the CreditNote was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: openapi/openapi.yml + inline: true + CreditNote: + docs: >- + # The CreditNote Object + + ### Description + + A `CreditNote` is transaction issued to a customer, indicating a reduction + or cancellation of the amount owed by the customer. It is most generally + used as an adjustment note used to rectify errors, returns, or + overpayments related to a sales transaction. A `CreditNote` can be applied + to *Accounts Receivable* Invoices to decrease the overall amount of the + Invoice. + + + ### Usage Example + + Fetch from the `LIST CreditNotes` endpoint and view a company's credit + notes. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + transaction_date: + type: optional + docs: The credit note's transaction date. + status: + type: optional + docs: |- + The credit note's status. + + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `PAID` - PAID + number: + type: optional + docs: The credit note's number. + contact: + type: optional + docs: The credit note's contact. + company: + type: optional + docs: The company the credit note belongs to. + exchange_rate: + type: optional + docs: The credit note's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + total_amount: + type: optional + docs: The credit note's total amount. + remaining_credit: + type: optional + docs: >- + The amount of value remaining in the credit note that the customer can + use. + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + line_items: + type: optional> + access: read-only + tracking_categories: optional>> + currency: + type: optional + docs: >- + The credit note's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + remote_created_at: + type: optional + docs: When the third party's credit note was created. + remote_updated_at: + type: optional + docs: When the third party's credit note was updated. + payments: + type: optional>> + docs: Array of `Payment` object IDs + applied_payments: + type: optional>> + docs: >- + A list of the Payment Applied to Lines common models related to a + given Invoice, Credit Note, or Journal Entry. + accounting_period: + type: optional + docs: The accounting period that the CreditNote was generated in. + applied_to_lines: + type: optional> + docs: >- + A list of the CreditNote Applied to Lines common models related to a + given Credit Note + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + CreditNoteApplyLineForCreditNoteInvoice: + discriminated: false + union: + - type: string + validation: + format: uuid + - Invoice + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteApplyLineForCreditNote: + docs: >- + # The CreditNoteApplyLine Object + + ### Description + + The `CreditNoteApplyLine` is attached to the CreditNote model. + + + ### Usage Example + + Fetch from the `GET CreditNote` endpoint and view the invoice's applied to + lines. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + invoice: optional + applied_date: + type: optional + docs: Date that the credit note is applied to the invoice. + applied_amount: + type: optional + docs: The amount of the Credit Note applied to the invoice. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: openapi/openapi.yml + CreditNoteApplyLineForCreditNoteRequestInvoice: + discriminated: false + union: + - type: string + validation: + format: uuid + - Invoice + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteApplyLineForCreditNoteRequest: + docs: >- + # The CreditNoteApplyLine Object + + ### Description + + The `CreditNoteApplyLine` is attached to the CreditNote model. + + + ### Usage Example + + Fetch from the `GET CreditNote` endpoint and view the invoice's applied to + lines. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + invoice: optional + applied_date: + type: optional + docs: Date that the credit note is applied to the invoice. + applied_amount: + type: optional + docs: The amount of the Credit Note applied to the invoice. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + CreditNoteApplyLineForInvoiceCreditNote: + discriminated: false + union: + - type: string + validation: + format: uuid + - CreditNote + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteApplyLineForInvoice: + docs: >- + # The CreditNoteApplyLine Object + + ### Description + + The `CreditNoteApplyLine` is attached to the CreditNote model. + + + ### Usage Example + + Fetch from the `GET CreditNote` endpoint and view the invoice's applied to + lines. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + credit_note: optional + applied_date: + type: optional + docs: Date that the credit note is applied to the invoice. + applied_amount: + type: optional + docs: The amount of the Credit Note applied to the invoice. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: openapi/openapi.yml + CreditNoteLineItemItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteLineItemCompany: + discriminated: false + docs: The company the credit note belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteLineItemContact: + discriminated: false + docs: The credit note's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteLineItemProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteLineItem: + docs: >- + # The CreditNoteLineItem Object + + ### Description + + The `CreditNoteLineItem` object is used to represent a credit note's line + items. + + + ### Usage Example + + Fetch from the `GET CreditNote` endpoint and view the credit note's line + items. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + item: optional + name: + type: optional + docs: The credit note line item's name. + description: + type: optional + docs: The description of the item that is owed. + quantity: + type: optional + docs: The credit note line item's quantity. + validation: + pattern: ^-?\d{0,24}(?:\.\d{0,8})?$ + memo: + type: optional + docs: The credit note line item's memo. + unit_price: + type: optional + docs: The credit note line item's unit price. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + total_line_amount: + type: optional + docs: The credit note line item's total. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + tracking_category: + type: optional + docs: The credit note line item's associated tracking category. + validation: + format: uuid + availability: deprecated + tracking_categories: + type: optional>> + docs: The credit note line item's associated tracking categories. + account: + type: optional + docs: The credit note line item's account. + validation: + format: uuid + company: + type: optional + docs: The company the credit note belongs to. + contact: + type: optional + docs: The credit note's contact. + project: optional + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: openapi/openapi.yml + CreditNoteLineItemRequestItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteLineItemRequestCompany: + discriminated: false + docs: The company the credit note belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteLineItemRequestContact: + discriminated: false + docs: The credit note's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteLineItemRequestProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteLineItemRequest: + docs: >- + # The CreditNoteLineItem Object + + ### Description + + The `CreditNoteLineItem` object is used to represent a credit note's line + items. + + + ### Usage Example + + Fetch from the `GET CreditNote` endpoint and view the credit note's line + items. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + item: optional + name: + type: optional + docs: The credit note line item's name. + description: + type: optional + docs: The description of the item that is owed. + quantity: + type: optional + docs: The credit note line item's quantity. + validation: + pattern: ^-?\d{0,24}(?:\.\d{0,8})?$ + memo: + type: optional + docs: The credit note line item's memo. + unit_price: + type: optional + docs: The credit note line item's unit price. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + total_line_amount: + type: optional + docs: The credit note line item's total. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + tracking_category: + type: optional + docs: The credit note line item's associated tracking category. + validation: + format: uuid + availability: deprecated + tracking_categories: + type: optional>> + docs: The credit note line item's associated tracking categories. + account: + type: optional + docs: The credit note line item's account. + validation: + format: uuid + company: + type: optional + docs: The company the credit note belongs to. + contact: + type: optional + docs: The credit note's contact. + project: optional + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + CreditNoteRequestStatus: + discriminated: false + docs: |- + The credit note's status. + + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `PAID` - PAID + union: + - CreditNoteStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteRequestContact: + discriminated: false + docs: The credit note's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteRequestCompany: + discriminated: false + docs: The company the credit note belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteRequestLineItemsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - CreditNoteLineItemRequest + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteRequestCurrency: + discriminated: false + docs: >- + The credit note's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteRequestPaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Payment + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteRequestAppliedPaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PaymentLineItem + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteRequestAccountingPeriod: + discriminated: false + docs: The accounting period that the CreditNote was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: openapi/openapi.yml + inline: true + CreditNoteRequest: + docs: >- + # The CreditNote Object + + ### Description + + A `CreditNote` is transaction issued to a customer, indicating a reduction + or cancellation of the amount owed by the customer. It is most generally + used as an adjustment note used to rectify errors, returns, or + overpayments related to a sales transaction. A `CreditNote` can be applied + to *Accounts Receivable* Invoices to decrease the overall amount of the + Invoice. + + + ### Usage Example + + Fetch from the `LIST CreditNotes` endpoint and view a company's credit + notes. + properties: + transaction_date: + type: optional + docs: The credit note's transaction date. + status: + type: optional + docs: |- + The credit note's status. + + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `PAID` - PAID + number: + type: optional + docs: The credit note's number. + contact: + type: optional + docs: The credit note's contact. + company: + type: optional + docs: The company the credit note belongs to. + exchange_rate: + type: optional + docs: The credit note's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + total_amount: + type: optional + docs: The credit note's total amount. + remaining_credit: + type: optional + docs: >- + The amount of value remaining in the credit note that the customer can + use. + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + line_items: optional> + tracking_categories: optional>> + currency: + type: optional + docs: >- + The credit note's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + payments: + type: optional>> + docs: Array of `Payment` object IDs + applied_payments: + type: optional>> + docs: >- + A list of the Payment Applied to Lines common models related to a + given Invoice, Credit Note, or Journal Entry. + accounting_period: + type: optional + docs: The accounting period that the CreditNote was generated in. + applied_to_lines: + type: optional> + docs: >- + A list of the CreditNote Applied to Lines common models related to a + given Credit Note + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + CreditNoteResponse: + properties: + model: CreditNote + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + CreditNoteStatusEnum: + enum: + - SUBMITTED + - AUTHORIZED + - PAID + docs: |- + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `PAID` - PAID + source: + openapi: openapi/openapi.yml + CreditOrDebitEnum: + enum: + - CREDIT + - DEBIT + docs: |- + * `CREDIT` - CREDIT + * `DEBIT` - DEBIT + source: + openapi: openapi/openapi.yml + DataPassthroughRequestMethod: + discriminated: false + union: + - MethodEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + DataPassthroughRequest: + docs: >- + # The DataPassthrough Object + + ### Description + + The `DataPassthrough` object is used to send information to an + otherwise-unsupported third-party endpoint. + + + ### Usage Example + + Create a `DataPassthrough` to get team hierarchies from your Rippling + integration. + properties: + method: DataPassthroughRequestMethod + path: + type: string + docs: The path of the request in the third party's platform. + validation: + minLength: 1 + base_url_override: + type: optional + docs: An optional override of the third party's base url for the request. + validation: + minLength: 1 + data: + type: optional + docs: >- + The data with the request. You must include a `request_format` + parameter matching the data's format + validation: + minLength: 1 + multipart_form_data: + type: optional> + docs: >- + Pass an array of `MultipartFormField` objects in here instead of using + the `data` param if `request_format` is set to `MULTIPART`. + headers: + type: optional> + docs: >- + The headers to use for the request (Merge will handle the account's + authorization headers). `Content-Type` header is required for + passthrough. Choose content type corresponding to expected format of + receiving server. + request_format: optional + normalize_response: + type: optional + docs: >- + Optional. If true, the response will always be an object of the form + `{"type": T, "value": ...}` where `T` will be one of `string, boolean, + number, null, array, object`. + source: + openapi: openapi/openapi.yml + DebugModeLog: + properties: + log_id: string + dashboard_view: string + log_summary: DebugModelLogSummary + source: + openapi: openapi/openapi.yml + DebugModelLogSummary: + properties: + url: string + method: string + status_code: integer + source: + openapi: openapi/openapi.yml + EmployeeCompany: + discriminated: false + docs: The subsidiary that the employee belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + EmployeeStatus: + discriminated: false + docs: |- + The employee's status in the accounting system. + + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + union: + - Status895Enum + - string + source: + openapi: openapi/openapi.yml + inline: true + Employee: + docs: >- + # The Employee Object + + ### Description + + An `Employee` is an individual who works for the company of the linked + account. The `Employee` model contains both contractors and full time + employees. + + * An `Employee` is a contractor if `is_contractor` property is `True` + + * An `Employee` is a full time employee if `is_contractor` property is + `False` + + + ### Usage Example + + Fetch from the `LIST Employees` endpoint and view a company's employees. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + first_name: + type: optional + docs: The employee's first name. + validation: + maxLength: 255 + last_name: + type: optional + docs: The employee's last name. + validation: + maxLength: 255 + is_contractor: + type: optional + docs: '`True` if the employee is a contractor, `False` if not.' + employee_number: + type: optional + docs: The employee's internal identification number. + validation: + maxLength: 50 + email_address: + type: optional + docs: The employee's email address. + company: + type: optional + docs: The subsidiary that the employee belongs to. + status: + type: EmployeeStatus + docs: |- + The employee's status in the accounting system. + + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + EnabledActionsEnum: + enum: + - READ + - WRITE + docs: |- + * `READ` - READ + * `WRITE` - WRITE + source: + openapi: openapi/openapi.yml + EncodingEnum: + enum: + - RAW + - BASE64 + - GZIP_BASE64 + docs: |- + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + source: + openapi: openapi/openapi.yml + ErrorValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: openapi/openapi.yml + EventTypeEnum: + enum: + - CREATED_REMOTE_PRODUCTION_API_KEY + - DELETED_REMOTE_PRODUCTION_API_KEY + - CREATED_TEST_API_KEY + - DELETED_TEST_API_KEY + - REGENERATED_PRODUCTION_API_KEY + - REGENERATED_WEBHOOK_SIGNATURE + - INVITED_USER + - TWO_FACTOR_AUTH_ENABLED + - TWO_FACTOR_AUTH_DISABLED + - DELETED_LINKED_ACCOUNT + - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + - CREATED_DESTINATION + - DELETED_DESTINATION + - CHANGED_DESTINATION + - CHANGED_SCOPES + - CHANGED_PERSONAL_INFORMATION + - CHANGED_ORGANIZATION_SETTINGS + - ENABLED_INTEGRATION + - DISABLED_INTEGRATION + - ENABLED_CATEGORY + - DISABLED_CATEGORY + - CHANGED_PASSWORD + - RESET_PASSWORD + - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - FORCED_LINKED_ACCOUNT_RESYNC + - MUTED_ISSUE + - GENERATED_MAGIC_LINK + - ENABLED_MERGE_WEBHOOK + - DISABLED_MERGE_WEBHOOK + - MERGE_WEBHOOK_TARGET_CHANGED + - END_USER_CREDENTIALS_ACCESSED + docs: >- + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + source: + openapi: openapi/openapi.yml + ExpenseAccount: + discriminated: false + docs: The expense's payment account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + ExpenseContact: + discriminated: false + docs: The expense's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + ExpenseCurrency: + discriminated: false + docs: >- + The expense's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + ExpenseCompany: + discriminated: false + docs: The company the expense belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + ExpenseEmployee: + discriminated: false + docs: The employee this overall transaction relates to. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + ExpenseTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + ExpenseAccountingPeriod: + discriminated: false + docs: The accounting period that the Expense was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: openapi/openapi.yml + inline: true + Expense: + docs: >- + # The Expense Object + + ### Description + + The `Expense` object is used to represent a direct purchase by a business, + typically made with a check, credit card, or cash. Each `Expense` object + is dedicated to a grouping of expenses, with each expense recorded in the + lines object. + + + The `Expense` object is used also used to represent refunds to direct + purchases. Refunds can be distinguished from purchases by the amount sign + of the records. Expense objects with a negative amount are purchases and + `Expense` objects with a positive amount are refunds to those purchases. + + + ### Usage Example + + Fetch from the `GET Expense` endpoint and view a company's expense. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + transaction_date: + type: optional + docs: When the transaction occurred. + remote_created_at: + type: optional + docs: When the expense was created. + account: + type: optional + docs: The expense's payment account. + contact: + type: optional + docs: The expense's contact. + total_amount: + type: optional + docs: The expense's total amount. + sub_total: + type: optional + docs: The expense's total amount before tax. + total_tax_amount: + type: optional + docs: The expense's total tax amount. + currency: + type: optional + docs: >- + The expense's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The expense's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + company: + type: optional + docs: The company the expense belongs to. + employee: + type: optional + docs: The employee this overall transaction relates to. + memo: + type: optional + docs: The expense's private note. + lines: optional> + tracking_categories: optional>> + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + accounting_period: + type: optional + docs: The accounting period that the Expense was generated in. + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + ExpenseLineItem: + discriminated: false + docs: The line's item. + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: openapi/openapi.yml + inline: true + ExpenseLineTrackingCategory: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + ExpenseLineTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + ExpenseLineEmployee: + discriminated: false + docs: The employee this overall transaction relates to. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + ExpenseLineCurrency: + discriminated: false + docs: >- + The expense line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + ExpenseLineAccount: + discriminated: false + docs: The expense's payment account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + ExpenseLineContact: + discriminated: false + docs: The expense's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + ExpenseLineProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: openapi/openapi.yml + inline: true + ExpenseLine: + docs: |- + # The ExpenseLine Object + ### Description + The `ExpenseLine` object is used to represent an expense's line items. + + ### Usage Example + Fetch from the `GET Expense` endpoint and view the expense's line items. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + item: + type: optional + docs: The line's item. + net_amount: + type: optional + docs: The line's net amount. + tracking_category: + type: optional + availability: deprecated + tracking_categories: + type: optional>> + docs: The expense line item's associated tracking categories. + company: + type: optional + docs: The company the expense belongs to. + validation: + format: uuid + employee: + type: optional + docs: The employee this overall transaction relates to. + currency: + type: optional + docs: >- + The expense line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + account: + type: optional + docs: The expense's payment account. + contact: + type: optional + docs: The expense's contact. + project: optional + description: + type: optional + docs: The description of the item that was purchased by the company. + exchange_rate: + type: optional + docs: The expense line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: openapi/openapi.yml + ExpenseLineRequestItem: + discriminated: false + docs: The line's item. + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: openapi/openapi.yml + inline: true + ExpenseLineRequestTrackingCategory: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + ExpenseLineRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + ExpenseLineRequestEmployee: + discriminated: false + docs: The employee this overall transaction relates to. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + ExpenseLineRequestCurrency: + discriminated: false + docs: >- + The expense line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + ExpenseLineRequestAccount: + discriminated: false + docs: The expense's payment account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + ExpenseLineRequestContact: + discriminated: false + docs: The expense's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + ExpenseLineRequestProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + ExpenseLineRequest: + docs: |- + # The ExpenseLine Object + ### Description + The `ExpenseLine` object is used to represent an expense's line items. + + ### Usage Example + Fetch from the `GET Expense` endpoint and view the expense's line items. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + item: + type: optional + docs: The line's item. + net_amount: + type: optional + docs: The line's net amount. + tracking_category: + type: optional + availability: deprecated + tracking_categories: + type: optional>> + docs: The expense line item's associated tracking categories. + company: + type: optional + docs: The company the expense belongs to. + validation: + format: uuid + employee: + type: optional + docs: The employee this overall transaction relates to. + currency: + type: optional + docs: >- + The expense line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + account: + type: optional + docs: The expense's payment account. + contact: + type: optional + docs: The expense's contact. + project: optional + description: + type: optional + docs: The description of the item that was purchased by the company. + exchange_rate: + type: optional + docs: The expense line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + ExpenseRequestAccount: + discriminated: false + docs: The expense's payment account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + ExpenseRequestContact: + discriminated: false + docs: The expense's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + ExpenseRequestCurrency: + discriminated: false + docs: >- + The expense's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + ExpenseRequestCompany: + discriminated: false + docs: The company the expense belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + ExpenseRequestEmployee: + discriminated: false + docs: The employee this overall transaction relates to. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + ExpenseRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + ExpenseRequestAccountingPeriod: + discriminated: false + docs: The accounting period that the Expense was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: openapi/openapi.yml + inline: true + ExpenseRequest: + docs: >- + # The Expense Object + + ### Description + + The `Expense` object is used to represent a direct purchase by a business, + typically made with a check, credit card, or cash. Each `Expense` object + is dedicated to a grouping of expenses, with each expense recorded in the + lines object. + + + The `Expense` object is used also used to represent refunds to direct + purchases. Refunds can be distinguished from purchases by the amount sign + of the records. Expense objects with a negative amount are purchases and + `Expense` objects with a positive amount are refunds to those purchases. + + + ### Usage Example + + Fetch from the `GET Expense` endpoint and view a company's expense. + properties: + transaction_date: + type: optional + docs: When the transaction occurred. + account: + type: optional + docs: The expense's payment account. + contact: + type: optional + docs: The expense's contact. + total_amount: + type: optional + docs: The expense's total amount. + sub_total: + type: optional + docs: The expense's total amount before tax. + total_tax_amount: + type: optional + docs: The expense's total tax amount. + currency: + type: optional + docs: >- + The expense's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The expense's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + company: + type: optional + docs: The company the expense belongs to. + employee: + type: optional + docs: The employee this overall transaction relates to. + memo: + type: optional + docs: The expense's private note. + lines: optional> + tracking_categories: optional>> + accounting_period: + type: optional + docs: The accounting period that the Expense was generated in. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + ExpenseResponse: + properties: + model: Expense + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + ExternalTargetFieldApi: + properties: + name: + type: optional + access: read-only + description: + type: optional + access: read-only + is_mapped: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + ExternalTargetFieldApiResponse: + properties: + Account: optional> + AccountingAttachment: optional> + BalanceSheet: optional> + CashFlowStatement: optional> + CompanyInfo: optional> + Contact: optional> + IncomeStatement: optional> + CreditNote: optional> + Item: optional> + PurchaseOrder: optional> + TrackingCategory: optional> + JournalEntry: optional> + TaxRate: optional> + Invoice: optional> + Payment: optional> + Expense: optional> + VendorCredit: optional> + Transaction: optional> + AccountingPeriod: optional> + GeneralLedgerTransaction: optional> + BankFeedAccount: optional> + Employee: optional> + PaymentMethod: optional> + Project: optional> + PaymentTerm: optional> + source: + openapi: openapi/openapi.yml + FeedStatusEnum: + enum: + - ACTIVE + - INACTIVE + docs: |- + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + source: + openapi: openapi/openapi.yml + FieldFormatEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + source: + openapi: openapi/openapi.yml + FieldMappingApiInstanceTargetField: + properties: + name: string + description: string + is_organization_wide: boolean + source: + openapi: openapi/openapi.yml + inline: true + FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo: + properties: + method: optional + url_path: optional + field_traversal_path: optional> + source: + openapi: openapi/openapi.yml + inline: true + FieldMappingApiInstanceRemoteField: + properties: + remote_key_name: optional + schema: optional> + remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo + source: + openapi: openapi/openapi.yml + inline: true + FieldMappingApiInstance: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + is_integration_wide: + type: optional + access: read-only + target_field: + type: optional + access: read-only + remote_field: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + FieldMappingApiInstanceResponse: + properties: + Account: optional> + AccountingAttachment: optional> + BalanceSheet: optional> + CashFlowStatement: optional> + CompanyInfo: optional> + Contact: optional> + IncomeStatement: optional> + CreditNote: optional> + Item: optional> + PurchaseOrder: optional> + TrackingCategory: optional> + JournalEntry: optional> + TaxRate: optional> + Invoice: optional> + Payment: optional> + Expense: optional> + VendorCredit: optional> + Transaction: optional> + AccountingPeriod: optional> + GeneralLedgerTransaction: optional> + BankFeedAccount: optional> + Employee: optional> + PaymentMethod: optional> + Project: optional> + PaymentTerm: optional> + source: + openapi: openapi/openapi.yml + FieldMappingInstanceResponse: + properties: + model: FieldMappingApiInstance + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + FieldPermissionDeserializer: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: openapi/openapi.yml + FieldPermissionDeserializerRequest: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: openapi/openapi.yml + FieldTypeEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + source: + openapi: openapi/openapi.yml + GeneralLedgerTransactionUnderlyingTransactionType: + discriminated: false + docs: |- + The type of the underlying transaction. + + * `INVOICE` - INVOICE + * `EXPENSE` - EXPENSE + * `TRANSACTION` - TRANSACTION + * `JOURNAL_ENTRY` - JOURNAL_ENTRY + * `PAYMENT` - PAYMENT + * `VENDOR_CREDIT` - VENDOR_CREDIT + * `CREDIT_NOTE` - CREDIT_NOTE + union: + - UnderlyingTransactionTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + GeneralLedgerTransactionAccountingPeriod: + discriminated: false + docs: The accounting period that the GeneralLedgerTransaction was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: openapi/openapi.yml + inline: true + GeneralLedgerTransactionCompany: + discriminated: false + docs: The company the GeneralLedgerTransaction belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + GeneralLedgerTransactionTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + GeneralLedgerTransactionGeneralLedgerTransactionLinesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - GeneralLedgerTransactionLine + source: + openapi: openapi/openapi.yml + inline: true + GeneralLedgerTransaction: + docs: >- + # The GeneralLedgerTransaction Object + + ### Description + + A General Ledger Entry is a record of a financial transaction that is + posted to the general ledger, the central repository of a company’s + financial data. + + + The `GeneralLedgerTransaction` object is a singular endpoint to pull all + transactions posted to a company’s general ledger. The transaction that + generated the `GeneralLedgerTransaction` can be found by referencing the + `underlying_transaction_type` and `underlying_transaction_remote_id` + fields. + + + The lines of a `GeneralLedgerTransaction` object will always have equal + amounts of debits and credits. + + + ### Usage Example + + Fetch from the `GET GeneralLedgerTransaction` endpoint and view a general + ledger transaction. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + underlying_transaction_remote_id: + type: optional + docs: The third party remote ID of the underlying transaction. + validation: + maxLength: 50 + underlying_transaction_type: + type: optional + docs: |- + The type of the underlying transaction. + + * `INVOICE` - INVOICE + * `EXPENSE` - EXPENSE + * `TRANSACTION` - TRANSACTION + * `JOURNAL_ENTRY` - JOURNAL_ENTRY + * `PAYMENT` - PAYMENT + * `VENDOR_CREDIT` - VENDOR_CREDIT + * `CREDIT_NOTE` - CREDIT_NOTE + accounting_period: + type: optional + docs: >- + The accounting period that the GeneralLedgerTransaction was generated + in. + company: + type: optional + docs: The company the GeneralLedgerTransaction belongs to. + remote_updated_at: + type: optional + docs: When the third party's GeneralLedgerTransaction entry was updated. + remote_created_at: + type: optional + docs: When the third party's GeneralLedgerTransaction entry was created. + tracking_categories: optional>> + posting_date: + type: optional + docs: The date that the transaction was posted to the general ledger. + general_ledger_transaction_lines: + type: >- + optional> + docs: A list of “General Ledger Transaction Applied to Lines” objects. + access: read-only + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + GeneralLedgerTransactionLineAccount: + discriminated: false + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + GeneralLedgerTransactionLineCompany: + discriminated: false + docs: The company the GeneralLedgerTransaction belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + GeneralLedgerTransactionLineEmployee: + discriminated: false + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + GeneralLedgerTransactionLineContact: + discriminated: false + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + GeneralLedgerTransactionLineProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: openapi/openapi.yml + inline: true + GeneralLedgerTransactionLineBaseCurrency: + discriminated: false + docs: >- + The base currency of the transaction + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + GeneralLedgerTransactionLineTransactionCurrency: + discriminated: false + docs: >- + The transaction currency that the transaction is made in. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + GeneralLedgerTransactionLineTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + GeneralLedgerTransactionLineItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: openapi/openapi.yml + inline: true + GeneralLedgerTransactionLine: + docs: >- + # The GeneralLedgerTransactionLineSerializer Object + + ### Description + + The `GeneralLedgerTransactionLineSerializer` object represents general + ledger transaction line item. + + + ### Usage Example Fetch from the `GET + GeneralLedgerTransactionLineSerializer` endpoint and view an + + `GeneralLedgerTransaction` line item. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + account: optional + company: + type: optional + docs: The company the GeneralLedgerTransaction belongs to. + employee: optional + contact: optional + project: optional + base_currency: + type: optional + docs: >- + The base currency of the transaction + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + transaction_currency: + type: optional + docs: >- + The transaction currency that the transaction is made in. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: >- + The exchange rate between the base currency and the transaction + currency. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + description: + type: optional + docs: A description of the line item. + tracking_categories: + type: optional> + access: read-only + debit_amount: string + credit_amount: string + item: optional + foreign_debit_amount: string + foreign_credit_amount: string + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + IncomeStatementCurrency: + discriminated: false + docs: >- + The income statement's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + IncomeStatementCompany: + discriminated: false + docs: The company the income statement belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + IncomeStatement: + docs: >- + # The IncomeStatement Object + + ### Description + + The `IncomeStatement` object is used to represent a company’s income, the + cost of sales, operating expenses, and other non-operating expenses. The + object also includes other important values like gross profit, gross + operating profit, and net income. This represents a period of time (month, + quarter, or year). + + + ### Usage Example + + Fetch from the `GET IncomeStatement` endpoint and view a company's income + statement for a given period. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The income statement's name. + currency: + type: optional + docs: >- + The income statement's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + company: + type: optional + docs: The company the income statement belongs to. + start_period: + type: optional + docs: The income statement's start period. + end_period: + type: optional + docs: The income statement's end period. + income: + type: optional> + access: read-only + cost_of_sales: + type: optional> + access: read-only + gross_profit: + type: optional + docs: The revenue minus the cost of sale. + operating_expenses: + type: optional> + access: read-only + net_operating_income: + type: optional + docs: The revenue minus the operating expenses. + non_operating_expenses: + type: optional> + access: read-only + net_income: + type: optional + docs: The gross profit minus the total expenses. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + IndividualCommonModelScopeDeserializer: + properties: + model_name: string + model_permissions: optional> + field_permissions: optional + source: + openapi: openapi/openapi.yml + IndividualCommonModelScopeDeserializerRequest: + properties: + model_name: + type: string + validation: + minLength: 1 + model_permissions: optional> + field_permissions: optional + source: + openapi: openapi/openapi.yml + InvoiceType: + discriminated: false + docs: >- + Whether the invoice is an accounts receivable or accounts payable. If + `type` is `ACCOUNTS_PAYABLE`, the invoice is a bill. If `type` is + `ACCOUNTS_RECEIVABLE`, it is an invoice. + + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + union: + - InvoiceTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + InvoiceContact: + discriminated: false + docs: The invoice's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + InvoiceCompany: + discriminated: false + docs: The company the invoice belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + InvoiceEmployee: + discriminated: false + docs: The employee this overall transaction relates to. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + InvoiceCurrency: + discriminated: false + docs: >- + The invoice's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + InvoicePaymentTerm: + discriminated: false + docs: The payment term that applies to this transaction. + union: + - type: string + validation: + format: uuid + - PaymentTerm + source: + openapi: openapi/openapi.yml + inline: true + InvoiceStatus: + discriminated: false + docs: |- + The status of the invoice. + + * `PAID` - PAID + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `PARTIALLY_PAID` - PARTIALLY_PAID + * `OPEN` - OPEN + * `VOID` - VOID + union: + - InvoiceStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + InvoiceTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + InvoiceAccountingPeriod: + discriminated: false + docs: The accounting period that the Invoice was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: openapi/openapi.yml + inline: true + InvoicePurchaseOrdersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PurchaseOrder + source: + openapi: openapi/openapi.yml + inline: true + InvoicePaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Payment + source: + openapi: openapi/openapi.yml + inline: true + InvoiceAppliedPaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PaymentLineItem + source: + openapi: openapi/openapi.yml + inline: true + InvoiceAppliedCreditNotesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - CreditNoteApplyLineForInvoice + source: + openapi: openapi/openapi.yml + inline: true + InvoiceAppliedVendorCreditsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - VendorCreditApplyLineForInvoice + source: + openapi: openapi/openapi.yml + inline: true + Invoice: + docs: >- + # The Invoice Object + + ### Description + + The `Invoice` object represents an itemized record of goods and/or + services sold to a customer or bought from a vendor. + + + + Represents a Bill when the `Invoice` type is `ACCOUNTS_PAYABLE`. + References an Invoice when the `Invoice` type is `ACCOUNTS_RECEIVABLE`. + + + ### Usage Example + + Fetch from the `LIST Invoices` endpoint and view a company's invoices. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + type: + type: optional + docs: >- + Whether the invoice is an accounts receivable or accounts payable. If + `type` is `ACCOUNTS_PAYABLE`, the invoice is a bill. If `type` is + `ACCOUNTS_RECEIVABLE`, it is an invoice. + + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + contact: + type: optional + docs: The invoice's contact. + number: + type: optional + docs: The invoice's number. + issue_date: + type: optional + docs: The invoice's issue date. + due_date: + type: optional + docs: The invoice's due date. + paid_on_date: + type: optional + docs: The invoice's paid date. + memo: + type: optional + docs: The invoice's private note. + company: + type: optional + docs: The company the invoice belongs to. + employee: + type: optional + docs: The employee this overall transaction relates to. + currency: + type: optional + docs: >- + The invoice's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The invoice's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + payment_term: + type: optional + docs: The payment term that applies to this transaction. + total_discount: + type: optional + docs: The total discounts applied to the total cost. + sub_total: + type: optional + docs: The total amount being paid before taxes. + status: + type: optional + docs: |- + The status of the invoice. + + * `PAID` - PAID + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `PARTIALLY_PAID` - PARTIALLY_PAID + * `OPEN` - OPEN + * `VOID` - VOID + total_tax_amount: + type: optional + docs: The total amount being paid in taxes. + total_amount: + type: optional + docs: The invoice's total amount. + balance: + type: optional + docs: The invoice's remaining balance. + remote_updated_at: + type: optional + docs: When the third party's invoice entry was updated. + tracking_categories: optional>> + accounting_period: + type: optional + docs: The accounting period that the Invoice was generated in. + purchase_orders: optional>> + payments: + type: optional>> + docs: Array of `Payment` object IDs. + applied_payments: + type: optional>> + docs: >- + A list of the Payment Applied to Lines common models related to a + given Invoice, Credit Note, or Journal Entry. + line_items: + type: optional> + access: read-only + applied_credit_notes: + type: optional> + docs: '`CreditNoteApplyLines` applied to the Invoice.' + access: read-only + applied_vendor_credits: + type: optional> + docs: '`VendorCreditApplyLines` applied to the Invoice.' + access: read-only + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + InvoiceLineItemEmployee: + discriminated: false + docs: The employee this overall transaction relates to. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + InvoiceLineItemProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: openapi/openapi.yml + inline: true + InvoiceLineItemContact: + discriminated: false + docs: The invoice's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + InvoiceLineItemCurrency: + discriminated: false + docs: >- + The line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + InvoiceLineItemItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: openapi/openapi.yml + inline: true + InvoiceLineItemAccount: + discriminated: false + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + InvoiceLineItemTrackingCategory: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + InvoiceLineItemTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + InvoiceLineItem: + docs: >- + # The InvoiceLineItem Object + + ### Description + + The `InvoiceLineItem` object represents an itemized record of goods and/or + services sold to a customer. + + + ### Usage Example + + Fetch from the `GET Invoice` endpoint and view the invoice's line items. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + description: + type: optional + docs: The line item's description. + unit_price: + type: optional + docs: The line item's unit price. + quantity: + type: optional + docs: The line item's quantity. + total_amount: + type: optional + docs: The line item's total amount. + employee: + type: optional + docs: The employee this overall transaction relates to. + project: optional + contact: + type: optional + docs: The invoice's contact. + currency: + type: optional + docs: >- + The line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + item: optional + account: optional + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + tracking_category: + type: optional + availability: deprecated + tracking_categories: + type: optional>> + docs: The invoice line item's associated tracking categories. + company: + type: optional + docs: The company the invoice belongs to. + validation: + format: uuid + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + InvoiceLineItemRequestEmployee: + discriminated: false + docs: The employee this overall transaction relates to. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + InvoiceLineItemRequestProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: openapi/openapi.yml + inline: true + InvoiceLineItemRequestContact: + discriminated: false + docs: The invoice's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + InvoiceLineItemRequestCurrency: + discriminated: false + docs: >- + The line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + InvoiceLineItemRequestItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: openapi/openapi.yml + inline: true + InvoiceLineItemRequestAccount: + discriminated: false + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + InvoiceLineItemRequestTrackingCategory: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + InvoiceLineItemRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + InvoiceLineItemRequest: + docs: >- + # The InvoiceLineItem Object + + ### Description + + The `InvoiceLineItem` object represents an itemized record of goods and/or + services sold to a customer. + + + ### Usage Example + + Fetch from the `GET Invoice` endpoint and view the invoice's line items. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + description: + type: optional + docs: The line item's description. + unit_price: + type: optional + docs: The line item's unit price. + quantity: + type: optional + docs: The line item's quantity. + total_amount: + type: optional + docs: The line item's total amount. + employee: + type: optional + docs: The employee this overall transaction relates to. + project: optional + contact: + type: optional + docs: The invoice's contact. + currency: + type: optional + docs: >- + The line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + item: optional + account: optional + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + tracking_category: + type: optional + availability: deprecated + tracking_categories: + type: optional>> + docs: The invoice line item's associated tracking categories. + company: + type: optional + docs: The company the invoice belongs to. + validation: + format: uuid + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + InvoiceRequestType: + discriminated: false + docs: >- + Whether the invoice is an accounts receivable or accounts payable. If + `type` is `ACCOUNTS_PAYABLE`, the invoice is a bill. If `type` is + `ACCOUNTS_RECEIVABLE`, it is an invoice. + + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + union: + - InvoiceTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + InvoiceRequestContact: + discriminated: false + docs: The invoice's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + InvoiceRequestEmployee: + discriminated: false + docs: The employee this overall transaction relates to. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + InvoiceRequestStatus: + discriminated: false + docs: |- + The status of the invoice. + + * `PAID` - PAID + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `PARTIALLY_PAID` - PARTIALLY_PAID + * `OPEN` - OPEN + * `VOID` - VOID + union: + - InvoiceStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + InvoiceRequestCompany: + discriminated: false + docs: The company the invoice belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + InvoiceRequestCurrency: + discriminated: false + docs: >- + The invoice's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + InvoiceRequestPaymentTerm: + discriminated: false + docs: The payment term that applies to this transaction. + union: + - type: string + validation: + format: uuid + - PaymentTerm + source: + openapi: openapi/openapi.yml + inline: true + InvoiceRequestPaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Payment + source: + openapi: openapi/openapi.yml + inline: true + InvoiceRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + InvoiceRequestPurchaseOrdersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PurchaseOrder + source: + openapi: openapi/openapi.yml + inline: true + InvoiceRequest: + docs: >- + # The Invoice Object + + ### Description + + The `Invoice` object represents an itemized record of goods and/or + services sold to a customer or bought from a vendor. + + + + Represents a Bill when the `Invoice` type is `ACCOUNTS_PAYABLE`. + References an Invoice when the `Invoice` type is `ACCOUNTS_RECEIVABLE`. + + + ### Usage Example + + Fetch from the `LIST Invoices` endpoint and view a company's invoices. + properties: + type: + type: optional + docs: >- + Whether the invoice is an accounts receivable or accounts payable. If + `type` is `ACCOUNTS_PAYABLE`, the invoice is a bill. If `type` is + `ACCOUNTS_RECEIVABLE`, it is an invoice. + + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + contact: + type: optional + docs: The invoice's contact. + number: + type: optional + docs: The invoice's number. + issue_date: + type: optional + docs: The invoice's issue date. + due_date: + type: optional + docs: The invoice's due date. + paid_on_date: + type: optional + docs: The invoice's paid date. + employee: + type: optional + docs: The employee this overall transaction relates to. + memo: + type: optional + docs: The invoice's private note. + status: + type: optional + docs: |- + The status of the invoice. + + * `PAID` - PAID + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `PARTIALLY_PAID` - PARTIALLY_PAID + * `OPEN` - OPEN + * `VOID` - VOID + company: + type: optional + docs: The company the invoice belongs to. + currency: + type: optional + docs: >- + The invoice's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The invoice's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + total_discount: + type: optional + docs: The total discounts applied to the total cost. + sub_total: + type: optional + docs: The total amount being paid before taxes. + payment_term: + type: optional + docs: The payment term that applies to this transaction. + total_tax_amount: + type: optional + docs: The total amount being paid in taxes. + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + total_amount: + type: optional + docs: The invoice's total amount. + balance: + type: optional + docs: The invoice's remaining balance. + payments: + type: optional>> + docs: Array of `Payment` object IDs. + tracking_categories: optional>> + line_items: optional> + purchase_orders: optional>> + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + InvoiceResponse: + properties: + model: Invoice + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + InvoiceStatusEnum: + enum: + - PAID + - DRAFT + - SUBMITTED + - PARTIALLY_PAID + - OPEN + - VOID + docs: |- + * `PAID` - PAID + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `PARTIALLY_PAID` - PARTIALLY_PAID + * `OPEN` - OPEN + * `VOID` - VOID + source: + openapi: openapi/openapi.yml + InvoiceTypeEnum: + enum: + - ACCOUNTS_RECEIVABLE + - ACCOUNTS_PAYABLE + docs: |- + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + source: + openapi: openapi/openapi.yml + IssueStatus: + discriminated: false + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + union: + - IssueStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Issue: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + error_description: string + end_user: + type: optional> + access: read-only + first_incident_time: optional + last_incident_time: optional + is_muted: + type: optional + access: read-only + error_details: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + IssueStatusEnum: + enum: + - ONGOING + - RESOLVED + docs: |- + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + source: + openapi: openapi/openapi.yml + ItemStatus: + discriminated: false + docs: |- + The item's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + union: + - Status7D1Enum + - string + source: + openapi: openapi/openapi.yml + inline: true + ItemPurchaseAccount: + discriminated: false + docs: References the default account used to record a purchase of the item. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + ItemSalesAccount: + discriminated: false + docs: References the default account used to record a sale. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + ItemCompany: + discriminated: false + docs: The company the item belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + ItemPurchaseTaxRate: + discriminated: false + docs: The default purchase tax rate for this item. + union: + - type: string + validation: + format: uuid + - TaxRate + source: + openapi: openapi/openapi.yml + inline: true + ItemSalesTaxRate: + discriminated: false + docs: The default sales tax rate for this item. + union: + - type: string + validation: + format: uuid + - TaxRate + source: + openapi: openapi/openapi.yml + inline: true + Item: + docs: |- + # The Item Object + ### Description + The `Item` object refers to the goods involved in a transaction. + + ### Usage Example + Fetch from the `LIST Items` endpoint and view a company's items. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The item's name. + status: + type: optional + docs: |- + The item's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + unit_price: + type: optional + docs: The item's unit price. + purchase_price: + type: optional + docs: The price at which the item is purchased from a vendor. + purchase_account: + type: optional + docs: References the default account used to record a purchase of the item. + sales_account: + type: optional + docs: References the default account used to record a sale. + company: + type: optional + docs: The company the item belongs to. + purchase_tax_rate: + type: optional + docs: The default purchase tax rate for this item. + sales_tax_rate: + type: optional + docs: The default sales tax rate for this item. + remote_updated_at: + type: optional + docs: When the third party's item note was updated. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + ItemFormatEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - uuid + * `number` - url + * `date` - email + * `datetime` - phone + * `bool` - currency + * `list` - decimal + source: + openapi: openapi/openapi.yml + ItemRequestRequestStatus: + discriminated: false + docs: |- + The item's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + union: + - Status7D1Enum + - string + source: + openapi: openapi/openapi.yml + inline: true + ItemRequestRequestType: + discriminated: false + docs: |- + The item's type. + + * `INVENTORY` - INVENTORY + * `NON_INVENTORY` - NON_INVENTORY + * `SERVICE` - SERVICE + * `UNKNOWN` - UNKNOWN + union: + - Type2BbEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + ItemRequestRequestPurchaseAccount: + discriminated: false + docs: References the default account used to record a purchase of the item. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + ItemRequestRequestSalesAccount: + discriminated: false + docs: References the default account used to record a sale. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + ItemRequestRequestCompany: + discriminated: false + docs: The company the item belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + ItemRequestRequestPurchaseTaxRate: + discriminated: false + docs: The default purchase tax rate for this item. + union: + - type: string + validation: + format: uuid + - TaxRate + source: + openapi: openapi/openapi.yml + inline: true + ItemRequestRequestSalesTaxRate: + discriminated: false + docs: The default sales tax rate for this item. + union: + - type: string + validation: + format: uuid + - TaxRate + source: + openapi: openapi/openapi.yml + inline: true + ItemRequestRequest: + docs: |- + # The Item Object + ### Description + The `Item` object refers to the goods involved in a transaction. + + ### Usage Example + Fetch from the `LIST Items` endpoint and view a company's items. + properties: + name: + type: optional + docs: The item's name. + status: + type: optional + docs: |- + The item's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + type: + type: optional + docs: |- + The item's type. + + * `INVENTORY` - INVENTORY + * `NON_INVENTORY` - NON_INVENTORY + * `SERVICE` - SERVICE + * `UNKNOWN` - UNKNOWN + unit_price: + type: optional + docs: The item's unit price. + purchase_price: + type: optional + docs: The price at which the item is purchased from a vendor. + purchase_account: + type: optional + docs: References the default account used to record a purchase of the item. + sales_account: + type: optional + docs: References the default account used to record a sale. + company: + type: optional + docs: The company the item belongs to. + purchase_tax_rate: + type: optional + docs: The default purchase tax rate for this item. + sales_tax_rate: + type: optional + docs: The default sales tax rate for this item. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + ItemResponse: + properties: + model: Item + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + ItemSchema: + properties: + item_type: optional + item_format: optional + item_choices: optional> + source: + openapi: openapi/openapi.yml + ItemTypeEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + source: + openapi: openapi/openapi.yml + JournalEntryPaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Payment + source: + openapi: openapi/openapi.yml + inline: true + JournalEntryAppliedPaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PaymentLineItem + source: + openapi: openapi/openapi.yml + inline: true + JournalEntryCurrency: + discriminated: false + docs: >- + The journal's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + JournalEntryCompany: + discriminated: false + docs: The company the journal entry belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + JournalEntryTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + JournalEntryPostingStatus: + discriminated: false + docs: |- + The journal's posting status. + + * `UNPOSTED` - UNPOSTED + * `POSTED` - POSTED + union: + - PostingStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + JournalEntryAccountingPeriod: + discriminated: false + docs: The accounting period that the JournalEntry was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: openapi/openapi.yml + inline: true + JournalEntry: + docs: >- + # The JournalEntry Object + + ### Description + + A `JournalEntry` is a record of a transaction or event that is entered + into a company's accounting system. + + + The `JournalEntry` common model contains records that are automatically + created as a result of a certain type of transaction, like an Invoice, and + records that are manually created against a company’s ledger. + + + The lines of a given `JournalEntry` object should always sum to 0. A + positive `net_amount` means the line represents a debit and a negative + net_amount represents a credit. + + + ### Usage Example + + Fetch from the `GET JournalEntry` endpoint and view a company's journey + entry. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + transaction_date: + type: optional + docs: The journal entry's transaction date. + payments: + type: optional>> + docs: Array of `Payment` object IDs. + applied_payments: + type: optional>> + docs: >- + A list of the Payment Applied to Lines common models related to a + given Invoice, Credit Note, or Journal Entry. + memo: + type: optional + docs: The journal entry's private note. + currency: + type: optional + docs: >- + The journal's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The journal entry's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + company: + type: optional + docs: The company the journal entry belongs to. + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + lines: + type: optional> + access: read-only + journal_number: + type: optional + docs: Reference number for identifying journal entries. + validation: + maxLength: 70 + tracking_categories: optional>> + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + posting_status: + type: optional + docs: |- + The journal's posting status. + + * `UNPOSTED` - UNPOSTED + * `POSTED` - POSTED + accounting_period: + type: optional + docs: The accounting period that the JournalEntry was generated in. + remote_created_at: + type: optional + docs: When the third party's journal entry was created. + remote_updated_at: + type: optional + docs: When the third party's journal entry was updated. + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + JournalEntryRequestPaymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Payment + source: + openapi: openapi/openapi.yml + inline: true + JournalEntryRequestCurrency: + discriminated: false + docs: >- + The journal's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + JournalEntryRequestCompany: + discriminated: false + docs: The company the journal entry belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + JournalEntryRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + JournalEntryRequestPostingStatus: + discriminated: false + docs: |- + The journal's posting status. + + * `UNPOSTED` - UNPOSTED + * `POSTED` - POSTED + union: + - PostingStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + JournalEntryRequest: + docs: >- + # The JournalEntry Object + + ### Description + + The `JournalEntry` object is used to get a record of all manually created + entries made in a company’s general ledger. The journal line items for + each journal entry should sum to zero. + + + ### Usage Example + + Fetch from the `GET JournalEntry` endpoint and view a company's journey + entry. + properties: + transaction_date: + type: optional + docs: The journal entry's transaction date. + payments: + type: optional>> + docs: Array of `Payment` object IDs. + memo: + type: optional + docs: The journal entry's private note. + currency: + type: optional + docs: >- + The journal's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The journal entry's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + company: + type: optional + docs: The company the journal entry belongs to. + tracking_categories: optional>> + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + lines: optional> + journal_number: + type: optional + docs: Reference number for identifying journal entries. + validation: + maxLength: 70 + posting_status: + type: optional + docs: |- + The journal's posting status. + + * `UNPOSTED` - UNPOSTED + * `POSTED` - POSTED + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + JournalEntryResponse: + properties: + model: JournalEntry + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + JournalLineAccount: + discriminated: false + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + JournalLineTrackingCategory: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + JournalLineTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + JournalLineCurrency: + discriminated: false + docs: >- + The journal line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + JournalLineProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: openapi/openapi.yml + inline: true + JournalLine: + docs: >- + # The JournalLine Object + + ### Description + + The `JournalLine` object is used to represent a journal entry's line + items. + + + ### Usage Example + + Fetch from the `GET JournalEntry` endpoint and view the journal entry's + line items. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + account: optional + net_amount: + type: optional + docs: The value of the line item including taxes and other fees. + tracking_category: + type: optional + availability: deprecated + tracking_categories: + type: optional>> + docs: The journal line item's associated tracking categories. + currency: + type: optional + docs: >- + The journal line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + company: + type: optional + docs: The company the journal entry belongs to. + validation: + format: uuid + employee: + type: optional + validation: + format: uuid + project: optional + contact: + type: optional + validation: + format: uuid + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + description: + type: optional + docs: The line's description. + exchange_rate: + type: optional + docs: The journal line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + JournalLineRequestAccount: + discriminated: false + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + JournalLineRequestTrackingCategory: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + JournalLineRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + JournalLineRequestCurrency: + discriminated: false + docs: >- + The journal line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + JournalLineRequestProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: openapi/openapi.yml + inline: true + JournalLineRequest: + docs: >- + # The JournalLine Object + + ### Description + + The `JournalLine` object is used to represent a journal entry's line + items. + + + ### Usage Example + + Fetch from the `GET JournalEntry` endpoint and view the journal entry's + line items. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + account: optional + net_amount: + type: optional + docs: The value of the line item including taxes and other fees. + tracking_category: + type: optional + availability: deprecated + tracking_categories: + type: optional>> + docs: The journal line item's associated tracking categories. + currency: + type: optional + docs: >- + The journal line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + company: + type: optional + docs: The company the journal entry belongs to. + validation: + format: uuid + employee: + type: optional + validation: + format: uuid + project: optional + contact: + type: optional + validation: + format: uuid + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + description: + type: optional + docs: The line's description. + exchange_rate: + type: optional + docs: The journal line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + LanguageEnum: + enum: + - en + - de + docs: |- + * `en` - en + * `de` - de + source: + openapi: openapi/openapi.yml + LastSyncResultEnum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: openapi/openapi.yml + LinkToken: + properties: + link_token: string + integration_name: optional + magic_link_url: optional + source: + openapi: openapi/openapi.yml + LinkedAccountStatus: + properties: + linked_account_status: string + can_make_request: boolean + source: + openapi: openapi/openapi.yml + MetaResponse: + properties: + request_schema: map + remote_field_classes: optional> + status: optional + has_conditional_params: boolean + has_required_linked_account_params: boolean + source: + openapi: openapi/openapi.yml + MethodEnum: + enum: + - GET + - OPTIONS + - HEAD + - POST + - PUT + - PATCH + - DELETE + docs: |- + * `GET` - GET + * `OPTIONS` - OPTIONS + * `HEAD` - HEAD + * `POST` - POST + * `PUT` - PUT + * `PATCH` - PATCH + * `DELETE` - DELETE + source: + openapi: openapi/openapi.yml + MethodTypeEnum: + enum: + - CREDIT_CARD + - DEBIT_CARD + - ACH + - CASH + - CHECK + docs: |- + * `CREDIT_CARD` - CREDIT_CARD + * `DEBIT_CARD` - DEBIT_CARD + * `ACH` - ACH + * `CASH` - CASH + * `CHECK` - CHECK + source: + openapi: openapi/openapi.yml + ModelOperation: + docs: >- + # The ModelOperation Object + + ### Description + + The `ModelOperation` object is used to represent the operations that are + currently supported for a given model. + + + ### Usage Example + + View what operations are supported for the `Candidate` endpoint. + properties: + model_name: string + available_operations: list + required_post_parameters: list + supported_fields: list + source: + openapi: openapi/openapi.yml + ModelPermissionDeserializer: + properties: + is_enabled: optional + source: + openapi: openapi/openapi.yml + ModelPermissionDeserializerRequest: + properties: + is_enabled: optional + source: + openapi: openapi/openapi.yml + MultipartFormFieldRequestEncoding: + discriminated: false + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + union: + - EncodingEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + MultipartFormFieldRequest: + docs: >- + # The MultipartFormField Object + + ### Description + + The `MultipartFormField` object is used to represent fields in an HTTP + request using `multipart/form-data`. + + + ### Usage Example + + Create a `MultipartFormField` to define a multipart form entry. + properties: + name: + type: string + docs: The name of the form field + validation: + minLength: 1 + data: + type: string + docs: The data for the form field. + validation: + minLength: 1 + encoding: + type: optional + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + file_name: + type: optional + docs: The file name of the form field, if the field is for a file. + validation: + minLength: 1 + content_type: + type: optional + docs: The MIME type of the file, if the field is for a file. + validation: + minLength: 1 + source: + openapi: openapi/openapi.yml + PaginatedAccountDetailsAndActionsList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedAccountList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedAccountingAttachmentList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedAccountingPeriodList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedAuditLogEventList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedBalanceSheetList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedBankFeedAccountList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedBankFeedTransactionList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedCashFlowStatementList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedCompanyInfoList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedContactList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedCreditNoteList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedEmployeeList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedExpenseList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedGeneralLedgerTransactionList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedIncomeStatementList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedInvoiceList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedIssueList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedItemList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedJournalEntryList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedPaymentList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedPaymentMethodList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedPaymentTermList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedProjectList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedPurchaseOrderList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedRemoteFieldClassList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedSyncStatusList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedTaxRateList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedTrackingCategoryList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedTransactionList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedVendorCreditList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PatchedItemRequestRequestStatus: + discriminated: false + docs: |- + The item's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + union: + - Status7D1Enum + - string + source: + openapi: openapi/openapi.yml + inline: true + PatchedItemRequestRequestType: + discriminated: false + docs: |- + The item's type. + + * `INVENTORY` - INVENTORY + * `NON_INVENTORY` - NON_INVENTORY + * `SERVICE` - SERVICE + * `UNKNOWN` - UNKNOWN + union: + - Type2BbEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PatchedItemRequestRequest: + docs: |- + # The Item Object + ### Description + The `Item` object refers to the goods involved in a transaction. + + ### Usage Example + Fetch from the `LIST Items` endpoint and view a company's items. + properties: + name: + type: optional + docs: The item's name. + status: + type: optional + docs: |- + The item's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + type: + type: optional + docs: |- + The item's type. + + * `INVENTORY` - INVENTORY + * `NON_INVENTORY` - NON_INVENTORY + * `SERVICE` - SERVICE + * `UNKNOWN` - UNKNOWN + unit_price: + type: optional + docs: The item's unit price. + purchase_price: + type: optional + docs: The price at which the item is purchased from a vendor. + purchase_account: + type: optional + docs: References the default account used to record a purchase of the item. + validation: + format: uuid + sales_account: + type: optional + docs: References the default account used to record a sale. + validation: + format: uuid + company: + type: optional + docs: The company the item belongs to. + validation: + format: uuid + purchase_tax_rate: + type: optional + docs: The default purchase tax rate for this item. + validation: + format: uuid + sales_tax_rate: + type: optional + docs: The default sales tax rate for this item. + validation: + format: uuid + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + PatchedPaymentRequestContact: + discriminated: false + docs: The supplier, or customer involved in the payment. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + PatchedPaymentRequestAccount: + discriminated: false + docs: The supplier’s or customer’s account in which the payment is made. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + PatchedPaymentRequestPaymentMethod: + discriminated: false + docs: The method which this payment was made by. + union: + - type: string + validation: + format: uuid + - PaymentMethod + source: + openapi: openapi/openapi.yml + inline: true + PatchedPaymentRequestCurrency: + discriminated: false + docs: >- + The payment's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PatchedPaymentRequestCompany: + discriminated: false + docs: The company the payment belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + PatchedPaymentRequestType: + discriminated: false + docs: |- + The type of the invoice. + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + union: + - PaymentTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PatchedPaymentRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + PatchedPaymentRequestAccountingPeriod: + discriminated: false + docs: The accounting period that the Payment was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: openapi/openapi.yml + inline: true + PatchedPaymentRequestAppliedToLinesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PaymentLineItemRequest + source: + openapi: openapi/openapi.yml + inline: true + PatchedPaymentRequest: + docs: >- + # The Payment Object + + ### Description + + The `Payment` object represents general payments made towards a specific + transaction. + + + ### Usage Example + + Fetch from the `GET Payment` endpoint and view an invoice's payment. + properties: + transaction_date: + type: optional + docs: The payment's transaction date. + contact: + type: optional + docs: The supplier, or customer involved in the payment. + account: + type: optional + docs: The supplier’s or customer’s account in which the payment is made. + payment_method: + type: optional + docs: The method which this payment was made by. + currency: + type: optional + docs: >- + The payment's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The payment's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + company: + type: optional + docs: The company the payment belongs to. + total_amount: + type: optional + docs: >- + The total amount of money being paid to the supplier, or customer, + after taxes. + type: + type: optional + docs: |- + The type of the invoice. + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + tracking_categories: optional>> + accounting_period: + type: optional + docs: The accounting period that the Payment was generated in. + applied_to_lines: + type: optional> + docs: A list of “Payment Applied to Lines” objects. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + PaymentContact: + discriminated: false + docs: The supplier, or customer involved in the payment. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + PaymentAccount: + discriminated: false + docs: The supplier’s or customer’s account in which the payment is made. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + PaymentPaymentMethod: + discriminated: false + docs: The method which this payment was made by. + union: + - type: string + validation: + format: uuid + - PaymentMethod + source: + openapi: openapi/openapi.yml + inline: true + PaymentCurrency: + discriminated: false + docs: >- + The payment's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PaymentCompany: + discriminated: false + docs: The company the payment belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + PaymentType: + discriminated: false + docs: |- + The type of the invoice. + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + union: + - PaymentTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PaymentTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + PaymentAccountingPeriod: + discriminated: false + docs: The accounting period that the Payment was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: openapi/openapi.yml + inline: true + PaymentAppliedToLinesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PaymentLineItem + source: + openapi: openapi/openapi.yml + inline: true + Payment: + docs: >- + # The Payment Object + + ### Description + + The `Payment` object represents general payments made towards a specific + transaction. + + + ### Usage Example + + Fetch from the `GET Payment` endpoint and view an invoice's payment. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + transaction_date: + type: optional + docs: The payment's transaction date. + contact: + type: optional + docs: The supplier, or customer involved in the payment. + account: + type: optional + docs: The supplier’s or customer’s account in which the payment is made. + payment_method: + type: optional + docs: The method which this payment was made by. + currency: + type: optional + docs: >- + The payment's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The payment's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + company: + type: optional + docs: The company the payment belongs to. + total_amount: + type: optional + docs: >- + The total amount of money being paid to the supplier, or customer, + after taxes. + type: + type: optional + docs: |- + The type of the invoice. + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + tracking_categories: optional>> + accounting_period: + type: optional + docs: The accounting period that the Payment was generated in. + applied_to_lines: + type: optional> + docs: A list of “Payment Applied to Lines” objects. + remote_updated_at: + type: optional + docs: When the third party's payment entry was updated. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + PaymentLineItem: + docs: >- + # The PaymentLineItem Object + + ### Description + + The `PaymentLineItem` object is an applied-to-line on a `Payment` that can + either be a `Invoice`, `CreditNote`, or `JournalEntry`. + + + ### Usage Example + + `Payment` will have a field called `applied-to-lines` which will be an + array of `PaymentLineItemInternalMappingSerializer` objects that can + either be a `Invoice`, `CreditNote`, or `JournalEntry`. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + applied_amount: + type: optional + docs: The amount being applied to the transaction. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + applied_date: + type: optional + docs: The date the payment portion is applied. + related_object_id: + type: optional + docs: >- + The Merge ID of the transaction the payment portion is being applied + to. + validation: + format: uuid + related_object_type: + type: optional + docs: >- + The type of transaction the payment portion is being applied to. + Possible values include: INVOICE, JOURNAL_ENTRY, or CREDIT_NOTE. + source: + openapi: openapi/openapi.yml + PaymentLineItemRequest: + docs: >- + # The PaymentLineItem Object + + ### Description + + The `PaymentLineItem` object is an applied-to-line on a `Payment` that can + either be a `Invoice`, `CreditNote`, or `JournalEntry`. + + + ### Usage Example + + `Payment` will have a field called `applied-to-lines` which will be an + array of `PaymentLineItemInternalMappingSerializer` objects that can + either be a `Invoice`, `CreditNote`, or `JournalEntry`. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + applied_amount: + type: optional + docs: The amount being applied to the transaction. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + applied_date: + type: optional + docs: The date the payment portion is applied. + related_object_id: + type: optional + docs: >- + The Merge ID of the transaction the payment portion is being applied + to. + validation: + format: uuid + related_object_type: + type: optional + docs: >- + The type of transaction the payment portion is being applied to. + Possible values include: INVOICE, JOURNAL_ENTRY, or CREDIT_NOTE. + validation: + minLength: 1 + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + PaymentMethodMethodType: + discriminated: false + docs: |- + The type of the payment method. + + * `CREDIT_CARD` - CREDIT_CARD + * `DEBIT_CARD` - DEBIT_CARD + * `ACH` - ACH + * `CASH` - CASH + * `CHECK` - CHECK + union: + - MethodTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PaymentMethod: + docs: >- + # The PaymentMethod Object + + ### Description + + The `PaymentMethod` object defines how a payment against an invoice is + made. + + + ### Usage Example + + Fetch from the `GET PaymentMethod` endpoint and view payment method + information. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + method_type: + type: PaymentMethodMethodType + docs: |- + The type of the payment method. + + * `CREDIT_CARD` - CREDIT_CARD + * `DEBIT_CARD` - DEBIT_CARD + * `ACH` - ACH + * `CASH` - CASH + * `CHECK` - CHECK + name: + type: string + docs: The payment method’s name + validation: + maxLength: 255 + is_active: + type: optional + docs: '`True` if the payment method is active, `False` if not.' + remote_updated_at: + type: optional + docs: When the third party's payment method was updated. + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + PaymentRequestContact: + discriminated: false + docs: The supplier, or customer involved in the payment. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + PaymentRequestAccount: + discriminated: false + docs: The supplier’s or customer’s account in which the payment is made. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + PaymentRequestPaymentMethod: + discriminated: false + docs: The method which this payment was made by. + union: + - type: string + validation: + format: uuid + - PaymentMethod + source: + openapi: openapi/openapi.yml + inline: true + PaymentRequestCurrency: + discriminated: false + docs: >- + The payment's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PaymentRequestCompany: + discriminated: false + docs: The company the payment belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + PaymentRequestType: + discriminated: false + docs: |- + The type of the invoice. + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + union: + - PaymentTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PaymentRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + PaymentRequestAccountingPeriod: + discriminated: false + docs: The accounting period that the Payment was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: openapi/openapi.yml + inline: true + PaymentRequestAppliedToLinesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PaymentLineItemRequest + source: + openapi: openapi/openapi.yml + inline: true + PaymentRequest: + docs: >- + # The Payment Object + + ### Description + + The `Payment` object represents general payments made towards a specific + transaction. + + + ### Usage Example + + Fetch from the `GET Payment` endpoint and view an invoice's payment. + properties: + transaction_date: + type: optional + docs: The payment's transaction date. + contact: + type: optional + docs: The supplier, or customer involved in the payment. + account: + type: optional + docs: The supplier’s or customer’s account in which the payment is made. + payment_method: + type: optional + docs: The method which this payment was made by. + currency: + type: optional + docs: >- + The payment's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The payment's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + company: + type: optional + docs: The company the payment belongs to. + total_amount: + type: optional + docs: >- + The total amount of money being paid to the supplier, or customer, + after taxes. + type: + type: optional + docs: |- + The type of the invoice. + + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + tracking_categories: optional>> + accounting_period: + type: optional + docs: The accounting period that the Payment was generated in. + applied_to_lines: + type: optional> + docs: A list of “Payment Applied to Lines” objects. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + PaymentResponse: + properties: + model: Payment + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + PaymentTermCompany: + discriminated: false + docs: The subsidiary that the payment term belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + PaymentTerm: + docs: >- + # The PaymentTerm Object + + ### Description + + The `PaymentTerm` object is the agreed-upon conditions between a buyer and + a seller that define the timing, + + amount, and conditions under which payment for goods or services must be + made. + + + ### Usage Example + + Fetch from the `GET PaymentTerm` endpoint and view payment term + information. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: string + docs: The name of the payment term. + validation: + maxLength: 255 + is_active: + type: optional + docs: '`True` if the payment term is active, `False` if not.' + company: + type: optional + docs: The subsidiary that the payment term belongs to. + days_until_due: + type: optional + docs: The number of days after the invoice date that payment is due. + validation: + min: -2147483648 + max: 2147483647 + discount_days: + type: optional + docs: The number of days the invoice must be paid before discounts expire. + validation: + min: -2147483648 + max: 2147483647 + remote_last_modified_at: + type: optional + docs: When the third party's payment term was modified. + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + PaymentTypeEnum: + enum: + - ACCOUNTS_PAYABLE + - ACCOUNTS_RECEIVABLE + docs: |- + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + source: + openapi: openapi/openapi.yml + PostingStatusEnum: + enum: + - UNPOSTED + - POSTED + docs: |- + * `UNPOSTED` - UNPOSTED + * `POSTED` - POSTED + source: + openapi: openapi/openapi.yml + ProjectCompany: + discriminated: false + docs: The subsidiary that the project belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + ProjectContact: + discriminated: false + docs: The supplier, or customer involved in the project. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + Project: + docs: >- + # The Project Object + + ### Description + + The `Project` object is used to track and manage time, costs, resources, + and revenue for specific initiatives or work efforts. + + It provides classification on transactions for allocating expenses, + revenue, and activities to a specific project for financial reporting. + + + ### Usage Example + + Fetch from the `GET Project` endpoint and view project information. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: string + docs: The project’s name + validation: + maxLength: 255 + is_active: + type: optional + docs: '`True` if the project is active, `False` if the project is not active.' + company: + type: optional + docs: The subsidiary that the project belongs to. + contact: + type: optional + docs: The supplier, or customer involved in the project. + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + PurchaseOrderStatus: + discriminated: false + docs: |- + The purchase order's status. + + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `BILLED` - BILLED + * `DELETED` - DELETED + union: + - PurchaseOrderStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PurchaseOrderDeliveryAddress: + discriminated: false + docs: The purchase order's delivery address. + union: + - type: string + validation: + format: uuid + - Address + source: + openapi: openapi/openapi.yml + inline: true + PurchaseOrderVendor: + discriminated: false + docs: The party fulfilling the purchase order. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + PurchaseOrderCompany: + discriminated: false + docs: The company the purchase order belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + PurchaseOrderCurrency: + discriminated: false + docs: >- + The purchase order's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PurchaseOrderPaymentTerm: + discriminated: false + docs: The payment term that applies to this transaction. + union: + - type: string + validation: + format: uuid + - PaymentTerm + source: + openapi: openapi/openapi.yml + inline: true + PurchaseOrderTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + PurchaseOrderAccountingPeriod: + discriminated: false + docs: The accounting period that the PurchaseOrder was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: openapi/openapi.yml + inline: true + PurchaseOrder: + docs: >- + # The PurchaseOrder Object + + ### Description + + A `PurchaseOrder` represents a request to purchase goods or services from + a vendor. It outlines the details of the purchase, such as the items or + services requested, quantities, prices, and delivery details. + + + A `PurchaseOrder` is a crucial component of the procurement process, but + does not typically result in any impact on the company’s general ledger. + The general ledger is typically only affected when the `PurchaseOrder` is + fulfilled as an *Accounts Payable* `Invoice` object (also known as a + Bill). + + + ### Usage Example + + Fetch from the `LIST PurchaseOrders` endpoint and view a company's + purchase orders. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + status: + type: optional + docs: |- + The purchase order's status. + + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `BILLED` - BILLED + * `DELETED` - DELETED + issue_date: + type: optional + docs: The purchase order's issue date. + purchase_order_number: + type: optional + docs: The human-readable number of the purchase order. + validation: + maxLength: 100 + delivery_date: + type: optional + docs: The purchase order's delivery date. + delivery_address: + type: optional + docs: The purchase order's delivery address. + customer: + type: optional + docs: The contact making the purchase order. + validation: + format: uuid + vendor: + type: optional + docs: The party fulfilling the purchase order. + memo: + type: optional + docs: A memo attached to the purchase order. + company: + type: optional + docs: The company the purchase order belongs to. + total_amount: + type: optional + docs: The purchase order's total amount. + currency: + type: optional + docs: >- + The purchase order's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The purchase order's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + payment_term: + type: optional + docs: The payment term that applies to this transaction. + line_items: + type: optional> + access: read-only + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + tracking_categories: optional>> + accounting_period: + type: optional + docs: The accounting period that the PurchaseOrder was generated in. + remote_created_at: + type: optional + docs: When the third party's purchase order note was created. + remote_updated_at: + type: optional + docs: When the third party's purchase order note was updated. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + PurchaseOrderLineItemItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: openapi/openapi.yml + inline: true + PurchaseOrderLineItemCurrency: + discriminated: false + docs: >- + The purchase order line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PurchaseOrderLineItem: + docs: >- + # The PurchaseOrderLineItem Object + + ### Description + + The `PurchaseOrderLineItem` object is used to represent a purchase order's + line item. + + + ### Usage Example + + Fetch from the `GET PurchaseOrder` endpoint and view a company's purchase + orders. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + description: + type: optional + docs: A description of the good being purchased. + unit_price: + type: optional + docs: The line item's unit price. + quantity: + type: optional + docs: The line item's quantity. + item: optional + account: + type: optional + docs: The purchase order line item's account. + validation: + format: uuid + tracking_category: + type: optional + docs: The purchase order line item's associated tracking category. + validation: + format: uuid + availability: deprecated + tracking_categories: + type: optional>> + docs: The purchase order line item's associated tracking categories. + tax_amount: + type: optional + docs: The purchase order line item's tax amount. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + total_line_amount: + type: optional + docs: The purchase order line item's total amount. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + currency: + type: optional + docs: >- + The purchase order line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + exchange_rate: + type: optional + docs: The purchase order line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + company: + type: optional + docs: The company the purchase order line item belongs to. + validation: + format: uuid + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + PurchaseOrderLineItemRequestItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: openapi/openapi.yml + inline: true + PurchaseOrderLineItemRequestCurrency: + discriminated: false + docs: >- + The purchase order line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PurchaseOrderLineItemRequest: + docs: >- + # The PurchaseOrderLineItem Object + + ### Description + + The `PurchaseOrderLineItem` object is used to represent a purchase order's + line item. + + + ### Usage Example + + Fetch from the `GET PurchaseOrder` endpoint and view a company's purchase + orders. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + description: + type: optional + docs: A description of the good being purchased. + unit_price: + type: optional + docs: The line item's unit price. + quantity: + type: optional + docs: The line item's quantity. + item: optional + account: + type: optional + docs: The purchase order line item's account. + validation: + format: uuid + tracking_category: + type: optional + docs: The purchase order line item's associated tracking category. + validation: + format: uuid + availability: deprecated + tracking_categories: + type: optional>> + docs: The purchase order line item's associated tracking categories. + tax_amount: + type: optional + docs: The purchase order line item's tax amount. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + total_line_amount: + type: optional + docs: The purchase order line item's total amount. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + currency: + type: optional + docs: >- + The purchase order line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + exchange_rate: + type: optional + docs: The purchase order line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + company: + type: optional + docs: The company the purchase order line item belongs to. + validation: + format: uuid + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + PurchaseOrderRequestStatus: + discriminated: false + docs: |- + The purchase order's status. + + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `BILLED` - BILLED + * `DELETED` - DELETED + union: + - PurchaseOrderStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PurchaseOrderRequestDeliveryAddress: + discriminated: false + docs: The purchase order's delivery address. + union: + - type: string + validation: + format: uuid + - Address + source: + openapi: openapi/openapi.yml + inline: true + PurchaseOrderRequestVendor: + discriminated: false + docs: The party fulfilling the purchase order. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + PurchaseOrderRequestCompany: + discriminated: false + docs: The company the purchase order belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + PurchaseOrderRequestPaymentTerm: + discriminated: false + docs: The payment term that applies to this transaction. + union: + - type: string + validation: + format: uuid + - PaymentTerm + source: + openapi: openapi/openapi.yml + inline: true + PurchaseOrderRequestCurrency: + discriminated: false + docs: >- + The purchase order's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PurchaseOrderRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + PurchaseOrderRequest: + docs: >- + # The PurchaseOrder Object + + ### Description + + The `PurchaseOrder` object is a record of request for a product or service + between a buyer and seller. + + + ### Usage Example + + Fetch from the `LIST PurchaseOrders` endpoint and view a company's + purchase orders. + properties: + status: + type: optional + docs: |- + The purchase order's status. + + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `BILLED` - BILLED + * `DELETED` - DELETED + issue_date: + type: optional + docs: The purchase order's issue date. + delivery_date: + type: optional + docs: The purchase order's delivery date. + delivery_address: + type: optional + docs: The purchase order's delivery address. + customer: + type: optional + docs: The contact making the purchase order. + validation: + format: uuid + vendor: + type: optional + docs: The party fulfilling the purchase order. + memo: + type: optional + docs: A memo attached to the purchase order. + company: + type: optional + docs: The company the purchase order belongs to. + total_amount: + type: optional + docs: The purchase order's total amount. + payment_term: + type: optional + docs: The payment term that applies to this transaction. + currency: + type: optional + docs: >- + The purchase order's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + exchange_rate: + type: optional + docs: The purchase order's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + tracking_categories: optional>> + line_items: optional> + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + PurchaseOrderResponse: + properties: + model: PurchaseOrder + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + PurchaseOrderStatusEnum: + enum: + - DRAFT + - SUBMITTED + - AUTHORIZED + - BILLED + - DELETED + docs: |- + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `AUTHORIZED` - AUTHORIZED + * `BILLED` - BILLED + * `DELETED` - DELETED + source: + openapi: openapi/openapi.yml + RemoteData: + docs: >- + # The RemoteData Object + + ### Description + + The `RemoteData` object is used to represent the full data pulled from the + third-party API for an object. + + + ### Usage Example + + TODO + properties: + path: + type: string + docs: The third-party API path that is being called. + data: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + RemoteEndpointInfo: + properties: + method: string + url_path: string + field_traversal_path: list + source: + openapi: openapi/openapi.yml + RemoteFieldRemoteFieldClass: + discriminated: false + union: + - string + - RemoteFieldClass + source: + openapi: openapi/openapi.yml + inline: true + RemoteField: + properties: + remote_field_class: RemoteFieldRemoteFieldClass + value: optional + source: + openapi: openapi/openapi.yml + RemoteFieldApiCoverage: + discriminated: false + union: + - integer + - double + source: + openapi: openapi/openapi.yml + inline: true + RemoteFieldApi: + properties: + schema: map + remote_key_name: string + remote_endpoint_info: RemoteEndpointInfo + example_values: optional> + advanced_metadata: optional + coverage: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + RemoteFieldApiResponse: + properties: + Account: optional> + AccountingAttachment: optional> + BalanceSheet: optional> + CashFlowStatement: optional> + CompanyInfo: optional> + Contact: optional> + IncomeStatement: optional> + CreditNote: optional> + Item: optional> + PurchaseOrder: optional> + TrackingCategory: optional> + JournalEntry: optional> + TaxRate: optional> + Invoice: optional> + Payment: optional> + Expense: optional> + VendorCredit: optional> + Transaction: optional> + AccountingPeriod: optional> + GeneralLedgerTransaction: optional> + BankFeedAccount: optional> + Employee: optional> + PaymentMethod: optional> + Project: optional> + PaymentTerm: optional> + source: + openapi: openapi/openapi.yml + RemoteFieldClass: + properties: + id: optional + display_name: optional + remote_key_name: optional + description: optional + is_custom: optional + is_required: optional + field_type: optional + field_format: optional + field_choices: optional> + item_schema: optional + source: + openapi: openapi/openapi.yml + RemoteFieldRequestRemoteFieldClass: + discriminated: false + union: + - type: string + validation: + format: uuid + - RemoteFieldClass + source: + openapi: openapi/openapi.yml + inline: true + RemoteFieldRequest: + properties: + remote_field_class: RemoteFieldRequestRemoteFieldClass + value: optional + source: + openapi: openapi/openapi.yml + RemoteKey: + docs: >- + # The RemoteKey Object + + ### Description + + The `RemoteKey` object is used to represent a request for a new remote + key. + + + ### Usage Example + + Post a `GenerateRemoteKey` to receive a new `RemoteKey`. + properties: + name: string + key: string + source: + openapi: openapi/openapi.yml + RemoteResponse: + docs: >- + # The RemoteResponse Object + + ### Description + + The `RemoteResponse` object is used to represent information returned from + a third-party endpoint. + + + ### Usage Example + + View the `RemoteResponse` returned from your `DataPassthrough`. + properties: + method: string + path: string + status: integer + response: unknown + response_headers: optional> + response_type: optional + headers: optional> + source: + openapi: openapi/openapi.yml + ReportItem: + docs: >- + # The ReportItem Object + + ### Description + + The `ReportItem` object is used to represent a report item for a Balance + Sheet, Cash Flow Statement or Profit and Loss Report. + + + ### Usage Example + + Fetch from the `GET BalanceSheet` endpoint and view the balance sheet's + report items. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The report item's name. + value: + type: optional + docs: The report item's value. + sub_items: + type: optional>> + access: read-only + company: + type: optional + docs: The company the report item belongs to. + validation: + format: uuid + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + source: + openapi: openapi/openapi.yml + RequestFormatEnum: + enum: + - JSON + - XML + - MULTIPART + docs: |- + * `JSON` - JSON + * `XML` - XML + * `MULTIPART` - MULTIPART + source: + openapi: openapi/openapi.yml + ResponseTypeEnum: + enum: + - JSON + - BASE64_GZIP + docs: |- + * `JSON` - JSON + * `BASE64_GZIP` - BASE64_GZIP + source: + openapi: openapi/openapi.yml + RoleEnum: + enum: + - ADMIN + - DEVELOPER + - MEMBER + - API + - SYSTEM + - MERGE_TEAM + docs: |- + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + source: + openapi: openapi/openapi.yml + SelectiveSyncConfigurationsUsageEnum: + enum: + - IN_NEXT_SYNC + - IN_LAST_SYNC + docs: |- + * `IN_NEXT_SYNC` - IN_NEXT_SYNC + * `IN_LAST_SYNC` - IN_LAST_SYNC + source: + openapi: openapi/openapi.yml + Status7D1Enum: + enum: + - ACTIVE + - ARCHIVED + docs: |- + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + source: + openapi: openapi/openapi.yml + Status895Enum: + enum: + - ACTIVE + - INACTIVE + docs: |- + * `ACTIVE` - ACTIVE + * `INACTIVE` - INACTIVE + source: + openapi: openapi/openapi.yml + StatusFd5Enum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: openapi/openapi.yml + SyncStatusStatus: + discriminated: false + union: + - StatusFd5Enum + - string + source: + openapi: openapi/openapi.yml + inline: true + SyncStatus: + docs: >- + # The SyncStatus Object + + ### Description + + The `SyncStatus` object is used to represent the syncing state of an + account + + + ### Usage Example + + View the `SyncStatus` for an account to see how recently its models were + synced. + properties: + model_name: string + model_id: string + last_sync_start: optional + next_sync_start: optional + last_sync_result: optional + last_sync_finished: optional + status: SyncStatusStatus + is_initial_sync: boolean + selective_sync_configurations_usage: optional + source: + openapi: openapi/openapi.yml + TaxComponentComponentType: + discriminated: false + docs: >- + Returns PURCHASE if the tax component corresponds to a purchase tax or + SALES if the tax component corresponds to a sales tax. + + + * `SALES` - SALES + + * `PURCHASE` - PURCHASE + union: + - ComponentTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + TaxComponent: + docs: >- + # The TaxRate Object + + ### Description + + The `TaxComponent` object is used to represent any sub-taxes that make up + the `TaxRate`. + + + ### Usage Example + + Fetch from the `LIST TaxRates` endpoint and view tax components relevant + to a tax rate. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The tax rate’s name. + validation: + maxLength: 100 + rate: + type: optional + docs: The tax component’s rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + is_compound: + type: optional + docs: Returns True if the tax component is compound, False if not. + component_type: + type: optional + docs: >- + Returns PURCHASE if the tax component corresponds to a purchase tax or + SALES if the tax component corresponds to a sales tax. + + + * `SALES` - SALES + + * `PURCHASE` - PURCHASE + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: openapi/openapi.yml + TaxRateCompany: + discriminated: false + docs: >- + The subsidiary that the tax rate belongs to (in the case of multi-entity + systems). + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + TaxRateStatus: + discriminated: false + docs: >- + The tax rate’s status - `ACTIVE` if an active tax rate, `ARCHIVED` if not + active. + + + * `ACTIVE` - ACTIVE + + * `ARCHIVED` - ARCHIVED + union: + - Status7D1Enum + - string + source: + openapi: openapi/openapi.yml + inline: true + TaxRateTaxComponentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TaxComponent + source: + openapi: openapi/openapi.yml + inline: true + TaxRate: + docs: >- + # The TaxRate Object + + ### Description + + The `TaxRate` object is used to represent a tax rate. + + + ### Usage Example + + Fetch from the `LIST TaxRates` endpoint and view tax rates relevant to a + company. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + company: + type: optional + docs: >- + The subsidiary that the tax rate belongs to (in the case of + multi-entity systems). + code: + type: optional + docs: >- + The tax code associated with this tax rate or group of tax rates from + the third-party platform. + validation: + maxLength: 100 + name: + type: optional + docs: The tax rate’s name. + validation: + maxLength: 100 + description: + type: optional + docs: The tax rate's description. + status: + type: optional + docs: >- + The tax rate’s status - `ACTIVE` if an active tax rate, `ARCHIVED` if + not active. + + + * `ACTIVE` - ACTIVE + + * `ARCHIVED` - ARCHIVED + country: + type: optional + docs: The country the tax rate is associated with. + validation: + maxLength: 100 + total_tax_rate: + type: optional + docs: The tax’s total tax rate - sum of the tax components (not compounded). + effective_tax_rate: + type: optional + docs: >- + The tax rate’s effective tax rate - total amount of tax with + compounding. + tax_components: + type: optional> + docs: The related tax components of the tax rate. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + TrackingCategoryStatus: + discriminated: false + docs: |- + The tracking category's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + union: + - Status7D1Enum + - string + source: + openapi: openapi/openapi.yml + inline: true + TrackingCategoryCategoryType: + discriminated: false + docs: |- + The tracking category’s type. + + * `CLASS` - CLASS + * `DEPARTMENT` - DEPARTMENT + union: + - CategoryTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + TrackingCategoryCompany: + discriminated: false + docs: The company the GeneralLedgerTransaction belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + TrackingCategory: + docs: >- + # The TrackingCategory Object + + ### Description + + A `TrackingCategory` object represents a categorization method used to + classify transactions within an accounting platform. They are often used + to group records for reporting and analysis purposes. The most common + types of `TrackingCategories` are Classes and Departments. + + + ### Usage Example + + Fetch from the `GET TrackingCategory` endpoint and view a company's + tracking category. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The tracking category's name. + status: + type: optional + docs: |- + The tracking category's status. + + * `ACTIVE` - ACTIVE + * `ARCHIVED` - ARCHIVED + category_type: + type: optional + docs: |- + The tracking category’s type. + + * `CLASS` - CLASS + * `DEPARTMENT` - DEPARTMENT + parent_category: + type: optional + validation: + format: uuid + company: + type: optional + docs: The company the GeneralLedgerTransaction belongs to. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + TransactionAccount: + discriminated: false + docs: The transaction's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + TransactionContact: + discriminated: false + docs: The contact to whom the transaction relates to. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + TransactionCurrency: + discriminated: false + docs: >- + The transaction's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + TransactionTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + TransactionAccountingPeriod: + discriminated: false + docs: The accounting period that the Transaction was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: openapi/openapi.yml + inline: true + Transaction: + docs: >- + # The Transaction Object + + ### Description + + The `Transaction` common model includes records of all types of + transactions that do not appear in other common models. The type of + transaction can be identified through the type field. More specifically, + it will contain all types of transactions outside of: + + * __Credit Notes__ + + * __Expenses__ + + * __Invoices__ + + * __Journal Entries__ + + * __Payments__ + + * __Purchase Orders__ + + * __Vendor Credits__ + + + ### Usage Example + + Fetch from the `GET Transaction` endpoint and view a company's + transactions. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + transaction_type: + type: optional + docs: >- + The type of transaction, which can by any transaction object not + already included in Merge’s common model. + number: + type: optional + docs: The transaction's number used for identifying purposes. + transaction_date: + type: optional + docs: The date upon which the transaction occurred. + account: + type: optional + docs: The transaction's account. + contact: + type: optional + docs: The contact to whom the transaction relates to. + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + total_amount: + type: optional + docs: The total amount being paid after taxes. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + currency: + type: optional + docs: >- + The transaction's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The transaction's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + company: + type: optional + docs: The company the transaction belongs to. + validation: + format: uuid + tracking_categories: optional>> + line_items: + type: optional> + access: read-only + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + accounting_period: + type: optional + docs: The accounting period that the Transaction was generated in. + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + TransactionCurrencyEnum: + enum: + - XUA + - AFN + - AFA + - ALL + - ALK + - DZD + - ADP + - AOA + - AOK + - AON + - AOR + - ARA + - ARS + - ARM + - ARP + - ARL + - AMD + - AWG + - AUD + - ATS + - AZN + - AZM + - BSD + - BHD + - BDT + - BBD + - BYN + - BYB + - BYR + - BEF + - BEC + - BEL + - BZD + - BMD + - BTN + - BOB + - BOL + - BOV + - BOP + - BAM + - BAD + - BAN + - BWP + - BRC + - BRZ + - BRE + - BRR + - BRN + - BRB + - BRL + - GBP + - BND + - BGL + - BGN + - BGO + - BGM + - BUK + - BIF + - XPF + - KHR + - CAD + - CVE + - KYD + - XAF + - CLE + - CLP + - CLF + - CNX + - CNY + - CNH + - COP + - COU + - KMF + - CDF + - CRC + - HRD + - HRK + - CUC + - CUP + - CYP + - CZK + - CSK + - DKK + - DJF + - DOP + - NLG + - XCD + - DDM + - ECS + - ECV + - EGP + - GQE + - ERN + - EEK + - ETB + - EUR + - XBA + - XEU + - XBB + - XBC + - XBD + - FKP + - FJD + - FIM + - FRF + - XFO + - XFU + - GMD + - GEK + - GEL + - DEM + - GHS + - GHC + - GIP + - XAU + - GRD + - GTQ + - GWP + - GNF + - GNS + - GYD + - HTG + - HNL + - HKD + - HUF + - IMP + - ISK + - ISJ + - INR + - IDR + - IRR + - IQD + - IEP + - ILS + - ILP + - ILR + - ITL + - JMD + - JPY + - JOD + - KZT + - KES + - KWD + - KGS + - LAK + - LVL + - LVR + - LBP + - LSL + - LRD + - LYD + - LTL + - LTT + - LUL + - LUC + - LUF + - MOP + - MKD + - MKN + - MGA + - MGF + - MWK + - MYR + - MVR + - MVP + - MLF + - MTL + - MTP + - MRU + - MRO + - MUR + - MXV + - MXN + - MXP + - MDC + - MDL + - MCF + - MNT + - MAD + - MAF + - MZE + - MZN + - MZM + - MMK + - NAD + - NPR + - ANG + - TWD + - NZD + - NIO + - NIC + - NGN + - KPW + - NOK + - OMR + - PKR + - XPD + - PAB + - PGK + - PYG + - PEI + - PEN + - PES + - PHP + - XPT + - PLN + - PLZ + - PTE + - GWE + - QAR + - XRE + - RHD + - RON + - ROL + - RUB + - RUR + - RWF + - SVC + - WST + - SAR + - RSD + - CSD + - SCR + - SLL + - XAG + - SGD + - SKK + - SIT + - SBD + - SOS + - ZAR + - ZAL + - KRH + - KRW + - KRO + - SSP + - SUR + - ESP + - ESA + - ESB + - XDR + - LKR + - SHP + - XSU + - SDD + - SDG + - SDP + - SRD + - SRG + - SZL + - SEK + - CHF + - SYP + - STN + - STD + - TVD + - TJR + - TJS + - TZS + - XTS + - THB + - XXX + - TPE + - TOP + - TTD + - TND + - TRY + - TRL + - TMT + - TMM + - USD + - USN + - USS + - UGX + - UGS + - UAH + - UAK + - AED + - UYW + - UYU + - UYP + - UYI + - UZS + - VUV + - VES + - VEB + - VEF + - VND + - VNN + - CHE + - CHW + - XOF + - YDD + - YER + - YUN + - YUD + - YUM + - YUR + - ZWN + - ZRN + - ZRZ + - ZMW + - ZMK + - ZWD + - ZWR + - ZWL + docs: >- + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + source: + openapi: openapi/openapi.yml + TransactionLineItemItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Item + source: + openapi: openapi/openapi.yml + inline: true + TransactionLineItemCurrency: + discriminated: false + docs: >- + The line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + TransactionLineItem: + docs: >- + # The TransactionLineItem Object + + ### Description + + The `TransactionLineItem` object is used to represent a transaction's line + items. + + + ### Usage Example + + Fetch from the `GET TransactionLineItem` endpoint and view the + transaction's line items. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + memo: + type: optional + docs: >- + An internal note used by the business to clarify purpose of the + transaction. + unit_price: + type: optional + docs: The line item's unit price. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + quantity: + type: optional + docs: The line item's quantity. + validation: + pattern: ^-?\d{0,24}(?:\.\d{0,8})?$ + item: optional + account: + type: optional + docs: The line item's account. + validation: + format: uuid + tracking_category: + type: optional + docs: The line's associated tracking category. + validation: + format: uuid + availability: deprecated + tracking_categories: + type: optional>> + docs: The transaction line item's associated tracking categories. + total_line_amount: + type: optional + docs: The line item's total. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + currency: + type: optional + docs: >- + The line item's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + company: + type: optional + docs: The company the line belongs to. + validation: + format: uuid + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: openapi/openapi.yml + Type2BbEnum: + enum: + - INVENTORY + - NON_INVENTORY + - SERVICE + - UNKNOWN + docs: |- + * `INVENTORY` - INVENTORY + * `NON_INVENTORY` - NON_INVENTORY + * `SERVICE` - SERVICE + * `UNKNOWN` - UNKNOWN + source: + openapi: openapi/openapi.yml + UnderlyingTransactionTypeEnum: + enum: + - INVOICE + - EXPENSE + - TRANSACTION + - JOURNAL_ENTRY + - PAYMENT + - VENDOR_CREDIT + - CREDIT_NOTE + docs: |- + * `INVOICE` - INVOICE + * `EXPENSE` - EXPENSE + * `TRANSACTION` - TRANSACTION + * `JOURNAL_ENTRY` - JOURNAL_ENTRY + * `PAYMENT` - PAYMENT + * `VENDOR_CREDIT` - VENDOR_CREDIT + * `CREDIT_NOTE` - CREDIT_NOTE + source: + openapi: openapi/openapi.yml + ValidationProblemSource: + properties: + pointer: string + source: + openapi: openapi/openapi.yml + VendorCreditVendor: + discriminated: false + docs: The vendor that owes the gift or refund. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + VendorCreditCurrency: + discriminated: false + docs: >- + The vendor credit's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + VendorCreditCompany: + discriminated: false + docs: The company the vendor credit belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + VendorCreditTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + VendorCreditAccountingPeriod: + discriminated: false + docs: The accounting period that the VendorCredit was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: openapi/openapi.yml + inline: true + VendorCredit: + docs: >- + # The VendorCredit Object + + ### Description + + A `VendorCredit` is transaction issued by a vendor to the accounting + company, indicating a reduction or cancellation of the amount owed to the + vendor. It is most generally used as an adjustment note used to rectify + errors, returns, or overpayments related to a purchasing transaction. A + `VendorCredit` can be applied to `Accounts Payable` Invoices to decrease + the overall amount of the `Invoice`. + + + ### Usage Example + + Fetch from the `GET VendorCredit` endpoint and view a company's vendor + credits. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + number: + type: optional + docs: The vendor credit's number. + transaction_date: + type: optional + docs: The vendor credit's transaction date. + vendor: + type: optional + docs: The vendor that owes the gift or refund. + total_amount: + type: optional + docs: The vendor credit's total amount. + currency: + type: optional + docs: >- + The vendor credit's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The vendor credit's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + company: + type: optional + docs: The company the vendor credit belongs to. + lines: + type: optional> + access: read-only + tracking_categories: optional>> + applied_to_lines: + type: optional> + docs: A list of VendorCredit Applied to Lines objects. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + accounting_period: + type: optional + docs: The accounting period that the VendorCredit was generated in. + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + VendorCreditApplyLineForInvoiceVendorCredit: + discriminated: false + union: + - type: string + validation: + format: uuid + - VendorCredit + source: + openapi: openapi/openapi.yml + inline: true + VendorCreditApplyLineForInvoice: + docs: >- + # The VendorCreditApplyLine Object + + ### Description + + The `VendorCreditApplyLine` object is used to represent a applied vendor + credit. + + + ### Usage Example + + Fetch from the `GET VendorCredit` endpoint and view the vendor credit's + applied to lines. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + vendor_credit: optional + applied_date: + type: optional + docs: Date that the vendor credit is applied to the invoice. + applied_amount: + type: optional + docs: The amount of the VendorCredit applied to the invoice. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: openapi/openapi.yml + VendorCreditApplyLineForVendorCreditInvoice: + discriminated: false + union: + - type: string + validation: + format: uuid + - Invoice + source: + openapi: openapi/openapi.yml + inline: true + VendorCreditApplyLineForVendorCredit: + docs: >- + # The VendorCreditApplyLine Object + + ### Description + + The `VendorCreditApplyLine` object is used to represent a applied vendor + credit. + + + ### Usage Example + + Fetch from the `GET VendorCredit` endpoint and view the vendor credit's + applied to lines. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + invoice: optional + applied_date: + type: optional + docs: Date that the vendor credit is applied to the invoice. + applied_amount: + type: optional + docs: The amount of the VendorCredit applied to the invoice. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: openapi/openapi.yml + VendorCreditApplyLineForVendorCreditRequestInvoice: + discriminated: false + union: + - type: string + validation: + format: uuid + - Invoice + source: + openapi: openapi/openapi.yml + inline: true + VendorCreditApplyLineForVendorCreditRequest: + docs: >- + # The VendorCreditApplyLine Object + + ### Description + + The `VendorCreditApplyLine` object is used to represent a applied vendor + credit. + + + ### Usage Example + + Fetch from the `GET VendorCredit` endpoint and view the vendor credit's + applied to lines. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + invoice: optional + applied_date: + type: optional + docs: Date that the vendor credit is applied to the invoice. + applied_amount: + type: optional + docs: The amount of the VendorCredit applied to the invoice. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + VendorCreditLineAccount: + discriminated: false + docs: The line's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + VendorCreditLineProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: openapi/openapi.yml + inline: true + VendorCreditLineContact: + discriminated: false + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + VendorCreditLine: + docs: >- + # The VendorCreditLine Object + + ### Description + + The `VendorCreditLine` object is used to represent a vendor credit's line + items. + + + ### Usage Example + + Fetch from the `GET VendorCredit` endpoint and view the vendor credit's + line items. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + net_amount: + type: optional + docs: The full value of the credit. + tracking_category: + type: optional + docs: The line's associated tracking category. + validation: + format: uuid + availability: deprecated + tracking_categories: + type: optional>> + docs: The vendor credit line item's associated tracking categories. + description: + type: optional + docs: The line's description. + account: + type: optional + docs: The line's account. + company: + type: optional + docs: The company the line belongs to. + validation: + format: uuid + project: optional + contact: optional + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + exchange_rate: + type: optional + docs: The vendor credit line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: openapi/openapi.yml + VendorCreditLineRequestAccount: + discriminated: false + docs: The line's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + VendorCreditLineRequestProject: + discriminated: false + union: + - type: string + validation: + format: uuid + - Project + source: + openapi: openapi/openapi.yml + inline: true + VendorCreditLineRequestContact: + discriminated: false + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + VendorCreditLineRequest: + docs: >- + # The VendorCreditLine Object + + ### Description + + The `VendorCreditLine` object is used to represent a vendor credit's line + items. + + + ### Usage Example + + Fetch from the `GET VendorCredit` endpoint and view the vendor credit's + line items. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + net_amount: + type: optional + docs: The full value of the credit. + tracking_category: + type: optional + docs: The line's associated tracking category. + validation: + format: uuid + availability: deprecated + tracking_categories: + type: optional>> + docs: The vendor credit line item's associated tracking categories. + description: + type: optional + docs: The line's description. + account: + type: optional + docs: The line's account. + company: + type: optional + docs: The company the line belongs to. + validation: + format: uuid + project: optional + contact: optional + tax_rate: + type: optional + docs: The tax rate that applies to this line item. + validation: + format: uuid + exchange_rate: + type: optional + docs: The vendor credit line item's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + VendorCreditRequestVendor: + discriminated: false + docs: The vendor that owes the gift or refund. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + VendorCreditRequestCurrency: + discriminated: false + docs: >- + The vendor credit's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - TransactionCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + VendorCreditRequestCompany: + discriminated: false + docs: The company the vendor credit belongs to. + union: + - type: string + validation: + format: uuid + - CompanyInfo + source: + openapi: openapi/openapi.yml + inline: true + VendorCreditRequestTrackingCategoriesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - TrackingCategory + source: + openapi: openapi/openapi.yml + inline: true + VendorCreditRequestAccountingPeriod: + discriminated: false + docs: The accounting period that the VendorCredit was generated in. + union: + - type: string + validation: + format: uuid + - AccountingPeriod + source: + openapi: openapi/openapi.yml + inline: true + VendorCreditRequest: + docs: >- + # The VendorCredit Object + + ### Description + + A `VendorCredit` is transaction issued by a vendor to the accounting + company, indicating a reduction or cancellation of the amount owed to the + vendor. It is most generally used as an adjustment note used to rectify + errors, returns, or overpayments related to a purchasing transaction. A + `VendorCredit` can be applied to `Accounts Payable` Invoices to decrease + the overall amount of the `Invoice`. + + + ### Usage Example + + Fetch from the `GET VendorCredit` endpoint and view a company's vendor + credits. + properties: + number: + type: optional + docs: The vendor credit's number. + transaction_date: + type: optional + docs: The vendor credit's transaction date. + vendor: + type: optional + docs: The vendor that owes the gift or refund. + total_amount: + type: optional + docs: The vendor credit's total amount. + currency: + type: optional + docs: >- + The vendor credit's currency. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + exchange_rate: + type: optional + docs: The vendor credit's exchange rate. + validation: + pattern: ^-?\d{0,32}(?:\.\d{0,16})?$ + inclusive_of_tax: + type: optional + docs: >- + If the transaction is inclusive or exclusive of tax. `True` if + inclusive, `False` if exclusive. + company: + type: optional + docs: The company the vendor credit belongs to. + tracking_categories: optional>> + applied_to_lines: + type: optional> + docs: A list of VendorCredit Applied to Lines objects. + accounting_period: + type: optional + docs: The accounting period that the VendorCredit was generated in. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + VendorCreditResponse: + properties: + model: VendorCredit + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + WarningValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: openapi/openapi.yml + WebhookReceiver: + properties: + event: string + is_active: boolean + key: optional + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/accountDetails.yml b/.mock/definition/accounting/accountDetails.yml new file mode 100644 index 000000000..a9e9606fb --- /dev/null +++ b/.mock/definition/accounting/accountDetails.yml @@ -0,0 +1,36 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /accounting/v1/account-details + method: GET + auth: true + docs: Get details for a linked account. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.AccountDetails + status-code: 200 + examples: + - headers: {} + response: + body: + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + integration: BambooHR + integration_slug: bamboohr + category: hris + end_user_origin_id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + end_user_organization_name: Waystar Royco + end_user_email_address: kendall.roy@waystar-royco.com + status: COMPLETE + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/accountToken.yml b/.mock/definition/accounting/accountToken.yml new file mode 100644 index 000000000..e5fa0475f --- /dev/null +++ b/.mock/definition/accounting/accountToken.yml @@ -0,0 +1,44 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /accounting/v1/account-token/{public_token} + method: GET + auth: true + docs: >- + Returns the account token for the end user with the provided public + token. + source: + openapi: openapi/openapi.yml + path-parameters: + public_token: string + response: + docs: '' + type: root.AccountToken + status-code: 200 + examples: + - path-parameters: + public_token: public_token + response: + body: + account_token: T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/accountingPeriods.yml b/.mock/definition/accounting/accountingPeriods.yml new file mode 100644 index 000000000..d6fc7c6b6 --- /dev/null +++ b/.mock/definition/accounting/accountingPeriods.yml @@ -0,0 +1,119 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/accounting-periods + method: GET + auth: true + docs: Returns a list of `AccountingPeriod` objects. + source: + openapi: openapi/openapi.yml + request: + name: AccountingPeriodsListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedAccountingPeriodList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3015f7b1-4d01-460d-bfab-02a52d16cbd0 + remote_id: '2804580' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: April 2020 Financials + status: ACTIVE + start_date: '2020-03-31T00:00:00Z' + end_date: '2020-05-01T00:00:00Z' + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/accounting-periods/{id} + method: GET + auth: true + docs: Returns an `AccountingPeriod` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: AccountingPeriodsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.AccountingPeriod + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 3015f7b1-4d01-460d-bfab-02a52d16cbd0 + remote_id: '2804580' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: April 2020 Financials + status: ACTIVE + start_date: '2020-03-31T00:00:00Z' + end_date: '2020-05-01T00:00:00Z' + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/accounts.yml b/.mock/definition/accounting/accounts.yml new file mode 100644 index 000000000..c6746098d --- /dev/null +++ b/.mock/definition/accounting/accounts.yml @@ -0,0 +1,496 @@ +types: + AccountsListRequestRemoteFields: + enum: + - classification + - value: classification,status + name: ClassificationStatus + - status + source: + openapi: openapi/openapi.yml + AccountsListRequestShowEnumOrigins: + enum: + - classification + - value: classification,status + name: ClassificationStatus + - status + source: + openapi: openapi/openapi.yml + AccountsRetrieveRequestRemoteFields: + enum: + - classification + - value: classification,status + name: ClassificationStatus + - status + source: + openapi: openapi/openapi.yml + AccountsRetrieveRequestShowEnumOrigins: + enum: + - classification + - value: classification,status + name: ClassificationStatus + - status + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/accounts + method: GET + auth: true + docs: Returns a list of `Account` objects. + source: + openapi: openapi/openapi.yml + request: + name: AccountsListRequest + query-parameters: + account_type: + type: optional + docs: If provided, will only return accounts with the passed in enum. + classification: + type: optional + docs: If provided, will only return accounts with this classification. + company_id: + type: optional + docs: If provided, will only return accounts for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + name: + type: optional + docs: If provided, will only return Accounts with this name. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + status: + type: optional + docs: If provided, will only return accounts with this status. + response: + docs: '' + type: root.PaginatedAccountList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '21' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Cash + description: Cash + classification: ASSET + type: Asset + account_type: BANK + status: ACTIVE + current_balance: 1.1 + currency: XUA + account_number: X12Y9AB + parent_account: 22d92d6c-22f9-11ed-861d-0242ac120002 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + create: + path: /accounting/v1/accounts + method: POST + auth: true + docs: Creates an `Account` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: AccountEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.AccountRequest + content-type: application/json + response: + docs: '' + type: root.AccountResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '21' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Cash + description: Cash + classification: ASSET + type: Asset + account_type: BANK + status: ACTIVE + current_balance: 1.1 + currency: XUA + account_number: X12Y9AB + parent_account: 22d92d6c-22f9-11ed-861d-0242ac120002 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/accounts/{id} + method: GET + auth: true + docs: Returns an `Account` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: AccountsRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.Account + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '21' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Cash + description: Cash + classification: ASSET + type: Asset + account_type: BANK + status: ACTIVE + current_balance: 1.1 + currency: XUA + account_number: X12Y9AB + parent_account: 22d92d6c-22f9-11ed-861d-0242ac120002 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + metaPostRetrieve: + path: /accounting/v1/accounts/meta/post + method: GET + auth: true + docs: Returns metadata for `Account` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/addresses.yml b/.mock/definition/accounting/addresses.yml new file mode 100644 index 000000000..989f0df1a --- /dev/null +++ b/.mock/definition/accounting/addresses.yml @@ -0,0 +1,61 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /accounting/v1/addresses/{id} + method: GET + auth: true + docs: Returns an `Address` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: AddressesRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.Address + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + type: BILLING + street_1: 2920 Broadway + street_2: 2nd Floor + city: New York + state: + key: value + country_subdivision: NY + country: AF + zip_code: '10027' + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/asyncPassthrough.yml b/.mock/definition/accounting/asyncPassthrough.yml new file mode 100644 index 000000000..da15bafd5 --- /dev/null +++ b/.mock/definition/accounting/asyncPassthrough.yml @@ -0,0 +1,70 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /accounting/v1/async-passthrough + method: POST + auth: true + docs: >- + Asynchronously pull data from an endpoint not currently supported by + Merge. + source: + openapi: openapi/openapi.yml + request: + body: root.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: root.AsyncPassthroughReciept + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + async_passthrough_receipt_id: fd29020f-2695-445e-922e-dcd5e81903fd + retrieve: + path: /accounting/v1/async-passthrough/{async_passthrough_receipt_id} + method: GET + auth: true + docs: Retrieves data from earlier async-passthrough POST request + source: + openapi: openapi/openapi.yml + path-parameters: + async_passthrough_receipt_id: string + response: + docs: '' + type: AsyncPassthroughRetrieveResponse + status-code: 200 + examples: + - path-parameters: + async_passthrough_receipt_id: async_passthrough_receipt_id + headers: {} + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: openapi/openapi.yml +types: + AsyncPassthroughRetrieveResponse: + discriminated: false + union: + - root.RemoteResponse + - string + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/asyncTasks.yml b/.mock/definition/accounting/asyncTasks.yml new file mode 100644 index 000000000..6365c3ab5 --- /dev/null +++ b/.mock/definition/accounting/asyncTasks.yml @@ -0,0 +1,81 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /accounting/v1/async-tasks/{id} + method: GET + auth: true + docs: Returns an `AsyncPostTask` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + response: + docs: '' + type: root.AsyncPostTask + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + status: QUEUED + result: + status_code: 201 + response: + model: + id: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: '990110' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + integration_params: + unique_integration_field: unique_integration_field_value + linked_account_params: + unique_linked_account_field: unique_linked_account_field_value + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + type: ACCOUNTS_RECEIVABLE + contact: 022a2bef-57e5-4def-8ed2-7c41bd9a5ed8 + number: AIQ12546 + issue_date: '2020-03-31T00:00:00Z' + due_date: '2020-04-15T00:00:00Z' + memo: Weekly Payment + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + paid_on_date: '2020-04-01T00:00:00Z' + currency: USD + exchange_rate: '2.9' + status: DRAFT + total_discount: 0 + sub_total: 100 + total_tax_amount: 5 + total_amount: 105 + balance: 105 + inclusive_of_tax: false + remote_updated_at: '2020-04-01T00:00:00Z' + tracking_categories: + - 7dc5ca17-d311-44cd-9ce0-333080367a18 + - 6aa0700c-48e1-4c4a-8162-02e6a582df05 + - 8c933d61-8f5b-4360-ac0c-c9dc87bee763 + purchase_orders: + - e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7 + - dd70ca2f-b120-46fa-889a-9604037f45fd + - 889b281d-739c-4759-95b8-0aedb3947131 + accounting_period: 7dc5ca17-d311-44cd-9ce0-333080367a18 + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - 9017594e-dc33-4113-a5d2-b0f928e34fdd + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/attachments.yml b/.mock/definition/accounting/attachments.yml new file mode 100644 index 000000000..cae3762b3 --- /dev/null +++ b/.mock/definition/accounting/attachments.yml @@ -0,0 +1,402 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/attachments + method: GET + auth: true + docs: Returns a list of `AccountingAttachment` objects. + source: + openapi: openapi/openapi.yml + request: + name: AttachmentsListRequest + query-parameters: + company_id: + type: optional + docs: >- + If provided, will only return accounting attachments for this + company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedAccountingAttachmentList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '1018270' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + file_name: invoice.png + file_url: >- + https://merge-brand.s3.amazonaws.com/20210315/rect-logo-270x80%402x.png + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + create: + path: /accounting/v1/attachments + method: POST + auth: true + docs: Creates an `AccountingAttachment` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: AccountingAttachmentEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.AccountingAttachmentRequest + content-type: application/json + response: + docs: '' + type: root.AccountingAttachmentResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '1018270' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + file_name: invoice.png + file_url: >- + https://merge-brand.s3.amazonaws.com/20210315/rect-logo-270x80%402x.png + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/attachments/{id} + method: GET + auth: true + docs: Returns an `AccountingAttachment` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: AttachmentsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.AccountingAttachment + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '1018270' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + file_name: invoice.png + file_url: >- + https://merge-brand.s3.amazonaws.com/20210315/rect-logo-270x80%402x.png + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + metaPostRetrieve: + path: /accounting/v1/attachments/meta/post + method: GET + auth: true + docs: Returns metadata for `AccountingAttachment` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/auditTrail.yml b/.mock/definition/accounting/auditTrail.yml new file mode 100644 index 000000000..6e1b86722 --- /dev/null +++ b/.mock/definition/accounting/auditTrail.yml @@ -0,0 +1,94 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/audit-trail + method: GET + auth: true + docs: Gets a list of audit trail events. + source: + openapi: openapi/openapi.yml + request: + name: AuditTrailListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + before this time + event_type: + type: optional + docs: >- + If included, will only include events with the given event type. + Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, + `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, + `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, + `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, + `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, + `DELETED_LINKED_ACCOUNT`, + `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, + `CREATED_DESTINATION`, `DELETED_DESTINATION`, + `CHANGED_DESTINATION`, `CHANGED_SCOPES`, + `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, + `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, + `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, + `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, + `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, + `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, + `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, + `END_USER_CREDENTIALS_ACCESSED` + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + after this time + user_email: + type: optional + docs: >- + If provided, this will return events associated with the specified + user email. Please note that the email address reflects the user's + email at the time of the event, and may not be their current + email. + response: + docs: '' + type: root.PaginatedAuditLogEventList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b5ceea2a-7171-47ce-8090-165cfce5572c + user_name: Gil Feig + user_email: hello@merge.dev + role: ADMIN + ip_address: 192.0.2.123 + event_type: CREATED_REMOTE_PRODUCTION_API_KEY + event_description: >- + Organization-wide Scopes for model hris.Employee updated + from Read to Read+Write + created_at: '2024-01-15T09:30:00Z' + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/availableActions.yml b/.mock/definition/accounting/availableActions.yml new file mode 100644 index 000000000..35fca3fac --- /dev/null +++ b/.mock/definition/accounting/availableActions.yml @@ -0,0 +1,50 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /accounting/v1/available-actions + method: GET + auth: true + docs: Returns a list of models and actions available for an account. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.AvailableActions + status-code: 200 + examples: + - headers: {} + response: + body: + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/balanceSheets.yml b/.mock/definition/accounting/balanceSheets.yml new file mode 100644 index 000000000..dde810e4f --- /dev/null +++ b/.mock/definition/accounting/balanceSheets.yml @@ -0,0 +1,241 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/balance-sheets + method: GET + auth: true + docs: Returns a list of `BalanceSheet` objects. + source: + openapi: openapi/openapi.yml + request: + name: BalanceSheetsListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return balance sheets for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedBalanceSheetList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: '8937018' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: BalanceSheet + currency: XUA + company: company + date: '2021-10-01T00:00:00Z' + net_assets: 1000 + assets: + - remote_id: '10010' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Assets + value: 1000 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + liabilities: + - remote_id: '10011' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Liabilities + value: 500 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + equity: + - remote_id: '10012' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Equity + value: 500 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + remote_generated_at: '2021-10-01T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + retrieve: + path: /accounting/v1/balance-sheets/{id} + method: GET + auth: true + docs: Returns a `BalanceSheet` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: BalanceSheetsRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.BalanceSheet + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: '8937018' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: BalanceSheet + currency: XUA + company: company + date: '2021-10-01T00:00:00Z' + net_assets: 1000 + assets: + - remote_id: '10010' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Assets + value: 1000 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + liabilities: + - remote_id: '10011' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Liabilities + value: 500 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + equity: + - remote_id: '10012' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Equity + value: 500 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + remote_generated_at: '2021-10-01T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/bankFeedAccounts.yml b/.mock/definition/accounting/bankFeedAccounts.yml new file mode 100644 index 000000000..2e64d197f --- /dev/null +++ b/.mock/definition/accounting/bankFeedAccounts.yml @@ -0,0 +1,386 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/bank-feed-accounts + method: GET + auth: true + docs: Returns a list of `BankFeedAccount` objects. + source: + openapi: openapi/openapi.yml + request: + name: BankFeedAccountsListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedBankFeedAccountList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + source_account_id: '123566909' + target_account_id: 49cd5a42-b311-4750-9361-52e2ed1d4653 + source_account_name: Travel Bank Account + source_account_number: '12567' + target_account_name: Netsuite Travel Bank Account + currency: XUA + feed_status: ACTIVE + feed_start_date: '2024-02-02T00:00:00Z' + source_account_balance: 123.94 + account_type: BANK + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + create: + path: /accounting/v1/bank-feed-accounts + method: POST + auth: true + docs: Creates a `BankFeedAccount` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: BankFeedAccountEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.BankFeedAccountRequest + content-type: application/json + response: + docs: '' + type: root.BankFeedAccountResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + source_account_id: '123566909' + target_account_id: 49cd5a42-b311-4750-9361-52e2ed1d4653 + source_account_name: Travel Bank Account + source_account_number: '12567' + target_account_name: Netsuite Travel Bank Account + currency: XUA + feed_status: ACTIVE + feed_start_date: '2024-02-02T00:00:00Z' + source_account_balance: 123.94 + account_type: BANK + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - key: value + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/bank-feed-accounts/{id} + method: GET + auth: true + docs: Returns a `BankFeedAccount` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: BankFeedAccountsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.BankFeedAccount + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + source_account_id: '123566909' + target_account_id: 49cd5a42-b311-4750-9361-52e2ed1d4653 + source_account_name: Travel Bank Account + source_account_number: '12567' + target_account_name: Netsuite Travel Bank Account + currency: XUA + feed_status: ACTIVE + feed_start_date: '2024-02-02T00:00:00Z' + source_account_balance: 123.94 + account_type: BANK + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - key: value + metaPostRetrieve: + path: /accounting/v1/bank-feed-accounts/meta/post + method: GET + auth: true + docs: Returns metadata for `BankFeedAccount` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/bankFeedTransactions.yml b/.mock/definition/accounting/bankFeedTransactions.yml new file mode 100644 index 000000000..682615d07 --- /dev/null +++ b/.mock/definition/accounting/bankFeedTransactions.yml @@ -0,0 +1,403 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/bank-feed-transactions + method: GET + auth: true + docs: Returns a list of `BankFeedTransaction` objects. + source: + openapi: openapi/openapi.yml + request: + name: BankFeedTransactionsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_processed: + type: optional + docs: >- + If provided, will only return bank feed transactions with this + is_processed value + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedBankFeedTransactionList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + bank_feed_account: bank_feed_account + transaction_date: '2024-02-02T00:00:00Z' + posted_date: '2024-02-03T00:00:00Z' + amount: 100.1 + description: Lunch expense + transaction_type: payment + payee: Elmo's diner + credit_or_debit: CREDIT + source_transaction_id: '124569' + remote_was_deleted: true + is_processed: true + create: + path: /accounting/v1/bank-feed-transactions + method: POST + auth: true + docs: Creates a `BankFeedTransaction` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: BankFeedTransactionEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.BankFeedTransactionRequestRequest + content-type: application/json + response: + docs: '' + type: root.BankFeedTransactionResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + bank_feed_account: bank_feed_account + transaction_date: '2024-02-02T00:00:00Z' + posted_date: '2024-02-03T00:00:00Z' + amount: 100.1 + description: Lunch expense + transaction_type: payment + payee: Elmo's diner + credit_or_debit: CREDIT + source_transaction_id: '124569' + remote_was_deleted: true + is_processed: true + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/bank-feed-transactions/{id} + method: GET + auth: true + docs: Returns a `BankFeedTransaction` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: BankFeedTransactionsRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.BankFeedTransaction + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + bank_feed_account: bank_feed_account + transaction_date: '2024-02-02T00:00:00Z' + posted_date: '2024-02-03T00:00:00Z' + amount: 100.1 + description: Lunch expense + transaction_type: payment + payee: Elmo's diner + credit_or_debit: CREDIT + source_transaction_id: '124569' + remote_was_deleted: true + is_processed: true + metaPostRetrieve: + path: /accounting/v1/bank-feed-transactions/meta/post + method: GET + auth: true + docs: Returns metadata for `BankFeedTransaction` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/cashFlowStatements.yml b/.mock/definition/accounting/cashFlowStatements.yml new file mode 100644 index 000000000..179afb9c7 --- /dev/null +++ b/.mock/definition/accounting/cashFlowStatements.yml @@ -0,0 +1,241 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/cash-flow-statements + method: GET + auth: true + docs: Returns a list of `CashFlowStatement` objects. + source: + openapi: openapi/openapi.yml + request: + name: CashFlowStatementsListRequest + query-parameters: + company_id: + type: optional + docs: >- + If provided, will only return cash flow statements for this + company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedCashFlowStatementList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + remote_id: '8211088' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: CashFlow + currency: XUA + company: company + start_period: '2020-01-01T00:00:00Z' + end_period: '2020-03-31T00:00:00Z' + cash_at_beginning_of_period: 5000 + cash_at_end_of_period: 4063.52 + operating_activities: + - remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-09-18T00:00:00Z' + name: Operating Activities + value: 1000 + sub_items: + - remote_id: '23042938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-09-18T00:00:00Z' + name: Net Income + value: 1097.13 + investing_activities: + - remote_id: '192406939' + created_at: '2021-11-15T00:00:00Z' + modified_at: '2021-11-18T00:00:00Z' + name: Equipment + value: 1000 + sub_items: + - created_at: '2021-11-15T00:00:00Z' + modified_at: '2021-09-18T00:00:00Z' + name: Equipment + value: 1000 + financing_activities: + - remote_id: '192406939' + created_at: '2021-11-15T00:00:00Z' + modified_at: '2021-11-15T00:00:00Z' + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + remote_generated_at: '2020-04-01T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/cash-flow-statements/{id} + method: GET + auth: true + docs: Returns a `CashFlowStatement` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: CashFlowStatementsRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.CashFlowStatement + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + remote_id: '8211088' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: CashFlow + currency: XUA + company: company + start_period: '2020-01-01T00:00:00Z' + end_period: '2020-03-31T00:00:00Z' + cash_at_beginning_of_period: 5000 + cash_at_end_of_period: 4063.52 + operating_activities: + - remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-09-18T00:00:00Z' + name: Operating Activities + value: 1000 + sub_items: + - remote_id: '23042938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-09-18T00:00:00Z' + name: Net Income + value: 1097.13 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + investing_activities: + - remote_id: '192406939' + created_at: '2021-11-15T00:00:00Z' + modified_at: '2021-11-18T00:00:00Z' + name: Equipment + value: 1000 + sub_items: + - created_at: '2021-11-15T00:00:00Z' + modified_at: '2021-09-18T00:00:00Z' + name: Equipment + value: 1000 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + financing_activities: + - remote_id: '192406939' + created_at: '2021-11-15T00:00:00Z' + modified_at: '2021-11-15T00:00:00Z' + name: Revenue + value: 1000 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + remote_generated_at: '2020-04-01T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/companyInfo.yml b/.mock/definition/accounting/companyInfo.yml new file mode 100644 index 000000000..488a43081 --- /dev/null +++ b/.mock/definition/accounting/companyInfo.yml @@ -0,0 +1,205 @@ +types: + CompanyInfoListRequestExpand: + enum: + - addresses + - value: addresses,phone_numbers + name: AddressesPhoneNumbers + - phone_numbers + source: + openapi: openapi/openapi.yml + CompanyInfoRetrieveRequestExpand: + enum: + - addresses + - value: addresses,phone_numbers + name: AddressesPhoneNumbers + - phone_numbers + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/company-info + method: GET + auth: true + docs: Returns a list of `CompanyInfo` objects. + source: + openapi: openapi/openapi.yml + request: + name: CompanyInfoListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedCompanyInfoList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 65d8ffd0-211b-4ba4-b85a-fbe2ce220982 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Merge Pickleball Company + legal_name: Merge Pickleball Company Inc. + tax_number: 11-0011000 + fiscal_year_end_month: 12 + fiscal_year_end_day: 31 + currency: XUA + remote_created_at: '2020-03-31T00:00:00Z' + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 2920 Broadway + street_2: 2nd Floor + city: New York + state: NY + country: US + zip_code: '10027' + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/company-info/{id} + method: GET + auth: true + docs: Returns a `CompanyInfo` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: CompanyInfoRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.CompanyInfo + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 65d8ffd0-211b-4ba4-b85a-fbe2ce220982 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Merge Pickleball Company + legal_name: Merge Pickleball Company Inc. + tax_number: 11-0011000 + fiscal_year_end_month: 12 + fiscal_year_end_day: 31 + currency: XUA + remote_created_at: '2020-03-31T00:00:00Z' + urls: + - urls + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + type: BILLING + street_1: 2920 Broadway + street_2: 2nd Floor + city: New York + state: NY + country_subdivision: NY + country: US + zip_code: '10027' + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + number: '+3198675309' + type: Mobile + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/contacts.yml b/.mock/definition/accounting/contacts.yml new file mode 100644 index 000000000..ba75cfb47 --- /dev/null +++ b/.mock/definition/accounting/contacts.yml @@ -0,0 +1,602 @@ +types: + ContactsListRequestExpand: + enum: + - addresses + - value: addresses,company + name: AddressesCompany + - value: addresses,phone_numbers + name: AddressesPhoneNumbers + - value: addresses,phone_numbers,company + name: AddressesPhoneNumbersCompany + - company + - phone_numbers + - value: phone_numbers,company + name: PhoneNumbersCompany + source: + openapi: openapi/openapi.yml + ContactsRetrieveRequestExpand: + enum: + - addresses + - value: addresses,company + name: AddressesCompany + - value: addresses,phone_numbers + name: AddressesPhoneNumbers + - value: addresses,phone_numbers,company + name: AddressesPhoneNumbersCompany + - company + - phone_numbers + - value: phone_numbers,company + name: PhoneNumbersCompany + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/contacts + method: GET + auth: true + docs: Returns a list of `Contact` objects. + source: + openapi: openapi/openapi.yml + request: + name: ContactsListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return contacts for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + email_address: + type: optional + docs: If provided, will only return Contacts that match this email. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_customer: + type: optional + docs: >- + If provided, will only return Contacts that are denoted as + customers. + is_supplier: + type: optional + docs: >- + If provided, will only return Contacts that are denoted as + suppliers. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + name: + type: optional + docs: If provided, will only return Contacts that match this name. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + status: + type: optional + docs: If provided, will only return Contacts that match this status. + response: + docs: '' + type: root.PaginatedContactList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: c640b80b-fac9-409f-aa19-1f9221aec445 + remote_id: '11167' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig's pickleball store + is_supplier: true + is_customer: true + email_address: pickleball@merge.dev + tax_number: 12-3456789 + status: ACTIVE + currency: USD + remote_updated_at: '2020-03-31T00:00:00Z' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + addresses: + - 2f2702aa-8948-492b-a412-2acdf6d2c499 + - d98c7428-8dda-48a8-a1da-c570f65e2375 + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + number: '+3198675309' + type: Mobile + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /accounting/v1/contacts + method: POST + auth: true + docs: Creates a `Contact` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: ContactEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.ContactRequest + content-type: application/json + response: + docs: '' + type: root.ContactResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: c640b80b-fac9-409f-aa19-1f9221aec445 + remote_id: '11167' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig's pickleball store + is_supplier: true + is_customer: true + email_address: pickleball@merge.dev + tax_number: 12-3456789 + status: ACTIVE + currency: USD + remote_updated_at: '2020-03-31T00:00:00Z' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + addresses: + - 2f2702aa-8948-492b-a412-2acdf6d2c499 + - d98c7428-8dda-48a8-a1da-c570f65e2375 + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + number: '+3198675309' + type: Mobile + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/contacts/{id} + method: GET + auth: true + docs: Returns a `Contact` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: ContactsRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.Contact + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: c640b80b-fac9-409f-aa19-1f9221aec445 + remote_id: '11167' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig's pickleball store + is_supplier: true + is_customer: true + email_address: pickleball@merge.dev + tax_number: 12-3456789 + status: ACTIVE + currency: USD + remote_updated_at: '2020-03-31T00:00:00Z' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + addresses: + - 2f2702aa-8948-492b-a412-2acdf6d2c499 + - d98c7428-8dda-48a8-a1da-c570f65e2375 + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + number: '+3198675309' + type: Mobile + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + metaPostRetrieve: + path: /accounting/v1/contacts/meta/post + method: GET + auth: true + docs: Returns metadata for `Contact` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /accounting/v1/contacts/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: ContactsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/creditNotes.yml b/.mock/definition/accounting/creditNotes.yml new file mode 100644 index 000000000..edd13752a --- /dev/null +++ b/.mock/definition/accounting/creditNotes.yml @@ -0,0 +1,1145 @@ +types: + CreditNotesListRequestExpand: + enum: + - accounting_period + - applied_payments + - value: applied_payments,accounting_period + name: AppliedPaymentsAccountingPeriod + - value: applied_payments,company + name: AppliedPaymentsCompany + - value: applied_payments,company,accounting_period + name: AppliedPaymentsCompanyAccountingPeriod + - value: applied_payments,contact + name: AppliedPaymentsContact + - value: applied_payments,contact,accounting_period + name: AppliedPaymentsContactAccountingPeriod + - value: applied_payments,contact,company + name: AppliedPaymentsContactCompany + - value: applied_payments,contact,company,accounting_period + name: AppliedPaymentsContactCompanyAccountingPeriod + - value: applied_payments,line_items + name: AppliedPaymentsLineItems + - value: applied_payments,line_items,accounting_period + name: AppliedPaymentsLineItemsAccountingPeriod + - value: applied_payments,line_items,company + name: AppliedPaymentsLineItemsCompany + - value: applied_payments,line_items,company,accounting_period + name: AppliedPaymentsLineItemsCompanyAccountingPeriod + - value: applied_payments,line_items,contact + name: AppliedPaymentsLineItemsContact + - value: applied_payments,line_items,contact,accounting_period + name: AppliedPaymentsLineItemsContactAccountingPeriod + - value: applied_payments,line_items,contact,company + name: AppliedPaymentsLineItemsContactCompany + - value: applied_payments,line_items,contact,company,accounting_period + name: AppliedPaymentsLineItemsContactCompanyAccountingPeriod + - value: applied_payments,line_items,tracking_categories + name: AppliedPaymentsLineItemsTrackingCategories + - value: applied_payments,line_items,tracking_categories,accounting_period + name: AppliedPaymentsLineItemsTrackingCategoriesAccountingPeriod + - value: applied_payments,line_items,tracking_categories,company + name: AppliedPaymentsLineItemsTrackingCategoriesCompany + - value: >- + applied_payments,line_items,tracking_categories,company,accounting_period + name: AppliedPaymentsLineItemsTrackingCategoriesCompanyAccountingPeriod + - value: applied_payments,line_items,tracking_categories,contact + name: AppliedPaymentsLineItemsTrackingCategoriesContact + - value: >- + applied_payments,line_items,tracking_categories,contact,accounting_period + name: AppliedPaymentsLineItemsTrackingCategoriesContactAccountingPeriod + - value: applied_payments,line_items,tracking_categories,contact,company + name: AppliedPaymentsLineItemsTrackingCategoriesContactCompany + - value: >- + applied_payments,line_items,tracking_categories,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesContactCompanyAccountingPeriod + - value: applied_payments,tracking_categories + name: AppliedPaymentsTrackingCategories + - value: applied_payments,tracking_categories,accounting_period + name: AppliedPaymentsTrackingCategoriesAccountingPeriod + - value: applied_payments,tracking_categories,company + name: AppliedPaymentsTrackingCategoriesCompany + - value: applied_payments,tracking_categories,company,accounting_period + name: AppliedPaymentsTrackingCategoriesCompanyAccountingPeriod + - value: applied_payments,tracking_categories,contact + name: AppliedPaymentsTrackingCategoriesContact + - value: applied_payments,tracking_categories,contact,accounting_period + name: AppliedPaymentsTrackingCategoriesContactAccountingPeriod + - value: applied_payments,tracking_categories,contact,company + name: AppliedPaymentsTrackingCategoriesContactCompany + - value: applied_payments,tracking_categories,contact,company,accounting_period + name: AppliedPaymentsTrackingCategoriesContactCompanyAccountingPeriod + - company + - value: company,accounting_period + name: CompanyAccountingPeriod + - contact + - value: contact,accounting_period + name: ContactAccountingPeriod + - value: contact,company + name: ContactCompany + - value: contact,company,accounting_period + name: ContactCompanyAccountingPeriod + - line_items + - value: line_items,accounting_period + name: LineItemsAccountingPeriod + - value: line_items,company + name: LineItemsCompany + - value: line_items,company,accounting_period + name: LineItemsCompanyAccountingPeriod + - value: line_items,contact + name: LineItemsContact + - value: line_items,contact,accounting_period + name: LineItemsContactAccountingPeriod + - value: line_items,contact,company + name: LineItemsContactCompany + - value: line_items,contact,company,accounting_period + name: LineItemsContactCompanyAccountingPeriod + - value: line_items,tracking_categories + name: LineItemsTrackingCategories + - value: line_items,tracking_categories,accounting_period + name: LineItemsTrackingCategoriesAccountingPeriod + - value: line_items,tracking_categories,company + name: LineItemsTrackingCategoriesCompany + - value: line_items,tracking_categories,company,accounting_period + name: LineItemsTrackingCategoriesCompanyAccountingPeriod + - value: line_items,tracking_categories,contact + name: LineItemsTrackingCategoriesContact + - value: line_items,tracking_categories,contact,accounting_period + name: LineItemsTrackingCategoriesContactAccountingPeriod + - value: line_items,tracking_categories,contact,company + name: LineItemsTrackingCategoriesContactCompany + - value: line_items,tracking_categories,contact,company,accounting_period + name: LineItemsTrackingCategoriesContactCompanyAccountingPeriod + - payments + - value: payments,accounting_period + name: PaymentsAccountingPeriod + - value: payments,applied_payments + name: PaymentsAppliedPayments + - value: payments,applied_payments,accounting_period + name: PaymentsAppliedPaymentsAccountingPeriod + - value: payments,applied_payments,company + name: PaymentsAppliedPaymentsCompany + - value: payments,applied_payments,company,accounting_period + name: PaymentsAppliedPaymentsCompanyAccountingPeriod + - value: payments,applied_payments,contact + name: PaymentsAppliedPaymentsContact + - value: payments,applied_payments,contact,accounting_period + name: PaymentsAppliedPaymentsContactAccountingPeriod + - value: payments,applied_payments,contact,company + name: PaymentsAppliedPaymentsContactCompany + - value: payments,applied_payments,contact,company,accounting_period + name: PaymentsAppliedPaymentsContactCompanyAccountingPeriod + - value: payments,applied_payments,line_items + name: PaymentsAppliedPaymentsLineItems + - value: payments,applied_payments,line_items,accounting_period + name: PaymentsAppliedPaymentsLineItemsAccountingPeriod + - value: payments,applied_payments,line_items,company + name: PaymentsAppliedPaymentsLineItemsCompany + - value: payments,applied_payments,line_items,company,accounting_period + name: PaymentsAppliedPaymentsLineItemsCompanyAccountingPeriod + - value: payments,applied_payments,line_items,contact + name: PaymentsAppliedPaymentsLineItemsContact + - value: payments,applied_payments,line_items,contact,accounting_period + name: PaymentsAppliedPaymentsLineItemsContactAccountingPeriod + - value: payments,applied_payments,line_items,contact,company + name: PaymentsAppliedPaymentsLineItemsContactCompany + - value: payments,applied_payments,line_items,contact,company,accounting_period + name: PaymentsAppliedPaymentsLineItemsContactCompanyAccountingPeriod + - value: payments,applied_payments,line_items,tracking_categories + name: PaymentsAppliedPaymentsLineItemsTrackingCategories + - value: >- + payments,applied_payments,line_items,tracking_categories,accounting_period + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesAccountingPeriod + - value: payments,applied_payments,line_items,tracking_categories,company + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompanyAccountingPeriod + - value: payments,applied_payments,line_items,tracking_categories,contact + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesContact + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompanyAccountingPeriod + - value: payments,applied_payments,tracking_categories + name: PaymentsAppliedPaymentsTrackingCategories + - value: payments,applied_payments,tracking_categories,accounting_period + name: PaymentsAppliedPaymentsTrackingCategoriesAccountingPeriod + - value: payments,applied_payments,tracking_categories,company + name: PaymentsAppliedPaymentsTrackingCategoriesCompany + - value: >- + payments,applied_payments,tracking_categories,company,accounting_period + name: PaymentsAppliedPaymentsTrackingCategoriesCompanyAccountingPeriod + - value: payments,applied_payments,tracking_categories,contact + name: PaymentsAppliedPaymentsTrackingCategoriesContact + - value: >- + payments,applied_payments,tracking_categories,contact,accounting_period + name: PaymentsAppliedPaymentsTrackingCategoriesContactAccountingPeriod + - value: payments,applied_payments,tracking_categories,contact,company + name: PaymentsAppliedPaymentsTrackingCategoriesContactCompany + - value: >- + payments,applied_payments,tracking_categories,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesContactCompanyAccountingPeriod + - value: payments,company + name: PaymentsCompany + - value: payments,company,accounting_period + name: PaymentsCompanyAccountingPeriod + - value: payments,contact + name: PaymentsContact + - value: payments,contact,accounting_period + name: PaymentsContactAccountingPeriod + - value: payments,contact,company + name: PaymentsContactCompany + - value: payments,contact,company,accounting_period + name: PaymentsContactCompanyAccountingPeriod + - value: payments,line_items + name: PaymentsLineItems + - value: payments,line_items,accounting_period + name: PaymentsLineItemsAccountingPeriod + - value: payments,line_items,company + name: PaymentsLineItemsCompany + - value: payments,line_items,company,accounting_period + name: PaymentsLineItemsCompanyAccountingPeriod + - value: payments,line_items,contact + name: PaymentsLineItemsContact + - value: payments,line_items,contact,accounting_period + name: PaymentsLineItemsContactAccountingPeriod + - value: payments,line_items,contact,company + name: PaymentsLineItemsContactCompany + - value: payments,line_items,contact,company,accounting_period + name: PaymentsLineItemsContactCompanyAccountingPeriod + - value: payments,line_items,tracking_categories + name: PaymentsLineItemsTrackingCategories + - value: payments,line_items,tracking_categories,accounting_period + name: PaymentsLineItemsTrackingCategoriesAccountingPeriod + - value: payments,line_items,tracking_categories,company + name: PaymentsLineItemsTrackingCategoriesCompany + - value: payments,line_items,tracking_categories,company,accounting_period + name: PaymentsLineItemsTrackingCategoriesCompanyAccountingPeriod + - value: payments,line_items,tracking_categories,contact + name: PaymentsLineItemsTrackingCategoriesContact + - value: payments,line_items,tracking_categories,contact,accounting_period + name: PaymentsLineItemsTrackingCategoriesContactAccountingPeriod + - value: payments,line_items,tracking_categories,contact,company + name: PaymentsLineItemsTrackingCategoriesContactCompany + - value: >- + payments,line_items,tracking_categories,contact,company,accounting_period + name: PaymentsLineItemsTrackingCategoriesContactCompanyAccountingPeriod + - value: payments,tracking_categories + name: PaymentsTrackingCategories + - value: payments,tracking_categories,accounting_period + name: PaymentsTrackingCategoriesAccountingPeriod + - value: payments,tracking_categories,company + name: PaymentsTrackingCategoriesCompany + - value: payments,tracking_categories,company,accounting_period + name: PaymentsTrackingCategoriesCompanyAccountingPeriod + - value: payments,tracking_categories,contact + name: PaymentsTrackingCategoriesContact + - value: payments,tracking_categories,contact,accounting_period + name: PaymentsTrackingCategoriesContactAccountingPeriod + - value: payments,tracking_categories,contact,company + name: PaymentsTrackingCategoriesContactCompany + - value: payments,tracking_categories,contact,company,accounting_period + name: PaymentsTrackingCategoriesContactCompanyAccountingPeriod + - tracking_categories + - value: tracking_categories,accounting_period + name: TrackingCategoriesAccountingPeriod + - value: tracking_categories,company + name: TrackingCategoriesCompany + - value: tracking_categories,company,accounting_period + name: TrackingCategoriesCompanyAccountingPeriod + - value: tracking_categories,contact + name: TrackingCategoriesContact + - value: tracking_categories,contact,accounting_period + name: TrackingCategoriesContactAccountingPeriod + - value: tracking_categories,contact,company + name: TrackingCategoriesContactCompany + - value: tracking_categories,contact,company,accounting_period + name: TrackingCategoriesContactCompanyAccountingPeriod + source: + openapi: openapi/openapi.yml + CreditNotesListRequestRemoteFields: + enum: + - status + - value: status,type + name: StatusType + - type + source: + openapi: openapi/openapi.yml + CreditNotesListRequestShowEnumOrigins: + enum: + - status + - value: status,type + name: StatusType + - type + source: + openapi: openapi/openapi.yml + CreditNotesRetrieveRequestExpand: + enum: + - accounting_period + - applied_payments + - value: applied_payments,accounting_period + name: AppliedPaymentsAccountingPeriod + - value: applied_payments,company + name: AppliedPaymentsCompany + - value: applied_payments,company,accounting_period + name: AppliedPaymentsCompanyAccountingPeriod + - value: applied_payments,contact + name: AppliedPaymentsContact + - value: applied_payments,contact,accounting_period + name: AppliedPaymentsContactAccountingPeriod + - value: applied_payments,contact,company + name: AppliedPaymentsContactCompany + - value: applied_payments,contact,company,accounting_period + name: AppliedPaymentsContactCompanyAccountingPeriod + - value: applied_payments,line_items + name: AppliedPaymentsLineItems + - value: applied_payments,line_items,accounting_period + name: AppliedPaymentsLineItemsAccountingPeriod + - value: applied_payments,line_items,company + name: AppliedPaymentsLineItemsCompany + - value: applied_payments,line_items,company,accounting_period + name: AppliedPaymentsLineItemsCompanyAccountingPeriod + - value: applied_payments,line_items,contact + name: AppliedPaymentsLineItemsContact + - value: applied_payments,line_items,contact,accounting_period + name: AppliedPaymentsLineItemsContactAccountingPeriod + - value: applied_payments,line_items,contact,company + name: AppliedPaymentsLineItemsContactCompany + - value: applied_payments,line_items,contact,company,accounting_period + name: AppliedPaymentsLineItemsContactCompanyAccountingPeriod + - value: applied_payments,line_items,tracking_categories + name: AppliedPaymentsLineItemsTrackingCategories + - value: applied_payments,line_items,tracking_categories,accounting_period + name: AppliedPaymentsLineItemsTrackingCategoriesAccountingPeriod + - value: applied_payments,line_items,tracking_categories,company + name: AppliedPaymentsLineItemsTrackingCategoriesCompany + - value: >- + applied_payments,line_items,tracking_categories,company,accounting_period + name: AppliedPaymentsLineItemsTrackingCategoriesCompanyAccountingPeriod + - value: applied_payments,line_items,tracking_categories,contact + name: AppliedPaymentsLineItemsTrackingCategoriesContact + - value: >- + applied_payments,line_items,tracking_categories,contact,accounting_period + name: AppliedPaymentsLineItemsTrackingCategoriesContactAccountingPeriod + - value: applied_payments,line_items,tracking_categories,contact,company + name: AppliedPaymentsLineItemsTrackingCategoriesContactCompany + - value: >- + applied_payments,line_items,tracking_categories,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesContactCompanyAccountingPeriod + - value: applied_payments,tracking_categories + name: AppliedPaymentsTrackingCategories + - value: applied_payments,tracking_categories,accounting_period + name: AppliedPaymentsTrackingCategoriesAccountingPeriod + - value: applied_payments,tracking_categories,company + name: AppliedPaymentsTrackingCategoriesCompany + - value: applied_payments,tracking_categories,company,accounting_period + name: AppliedPaymentsTrackingCategoriesCompanyAccountingPeriod + - value: applied_payments,tracking_categories,contact + name: AppliedPaymentsTrackingCategoriesContact + - value: applied_payments,tracking_categories,contact,accounting_period + name: AppliedPaymentsTrackingCategoriesContactAccountingPeriod + - value: applied_payments,tracking_categories,contact,company + name: AppliedPaymentsTrackingCategoriesContactCompany + - value: applied_payments,tracking_categories,contact,company,accounting_period + name: AppliedPaymentsTrackingCategoriesContactCompanyAccountingPeriod + - company + - value: company,accounting_period + name: CompanyAccountingPeriod + - contact + - value: contact,accounting_period + name: ContactAccountingPeriod + - value: contact,company + name: ContactCompany + - value: contact,company,accounting_period + name: ContactCompanyAccountingPeriod + - line_items + - value: line_items,accounting_period + name: LineItemsAccountingPeriod + - value: line_items,company + name: LineItemsCompany + - value: line_items,company,accounting_period + name: LineItemsCompanyAccountingPeriod + - value: line_items,contact + name: LineItemsContact + - value: line_items,contact,accounting_period + name: LineItemsContactAccountingPeriod + - value: line_items,contact,company + name: LineItemsContactCompany + - value: line_items,contact,company,accounting_period + name: LineItemsContactCompanyAccountingPeriod + - value: line_items,tracking_categories + name: LineItemsTrackingCategories + - value: line_items,tracking_categories,accounting_period + name: LineItemsTrackingCategoriesAccountingPeriod + - value: line_items,tracking_categories,company + name: LineItemsTrackingCategoriesCompany + - value: line_items,tracking_categories,company,accounting_period + name: LineItemsTrackingCategoriesCompanyAccountingPeriod + - value: line_items,tracking_categories,contact + name: LineItemsTrackingCategoriesContact + - value: line_items,tracking_categories,contact,accounting_period + name: LineItemsTrackingCategoriesContactAccountingPeriod + - value: line_items,tracking_categories,contact,company + name: LineItemsTrackingCategoriesContactCompany + - value: line_items,tracking_categories,contact,company,accounting_period + name: LineItemsTrackingCategoriesContactCompanyAccountingPeriod + - payments + - value: payments,accounting_period + name: PaymentsAccountingPeriod + - value: payments,applied_payments + name: PaymentsAppliedPayments + - value: payments,applied_payments,accounting_period + name: PaymentsAppliedPaymentsAccountingPeriod + - value: payments,applied_payments,company + name: PaymentsAppliedPaymentsCompany + - value: payments,applied_payments,company,accounting_period + name: PaymentsAppliedPaymentsCompanyAccountingPeriod + - value: payments,applied_payments,contact + name: PaymentsAppliedPaymentsContact + - value: payments,applied_payments,contact,accounting_period + name: PaymentsAppliedPaymentsContactAccountingPeriod + - value: payments,applied_payments,contact,company + name: PaymentsAppliedPaymentsContactCompany + - value: payments,applied_payments,contact,company,accounting_period + name: PaymentsAppliedPaymentsContactCompanyAccountingPeriod + - value: payments,applied_payments,line_items + name: PaymentsAppliedPaymentsLineItems + - value: payments,applied_payments,line_items,accounting_period + name: PaymentsAppliedPaymentsLineItemsAccountingPeriod + - value: payments,applied_payments,line_items,company + name: PaymentsAppliedPaymentsLineItemsCompany + - value: payments,applied_payments,line_items,company,accounting_period + name: PaymentsAppliedPaymentsLineItemsCompanyAccountingPeriod + - value: payments,applied_payments,line_items,contact + name: PaymentsAppliedPaymentsLineItemsContact + - value: payments,applied_payments,line_items,contact,accounting_period + name: PaymentsAppliedPaymentsLineItemsContactAccountingPeriod + - value: payments,applied_payments,line_items,contact,company + name: PaymentsAppliedPaymentsLineItemsContactCompany + - value: payments,applied_payments,line_items,contact,company,accounting_period + name: PaymentsAppliedPaymentsLineItemsContactCompanyAccountingPeriod + - value: payments,applied_payments,line_items,tracking_categories + name: PaymentsAppliedPaymentsLineItemsTrackingCategories + - value: >- + payments,applied_payments,line_items,tracking_categories,accounting_period + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesAccountingPeriod + - value: payments,applied_payments,line_items,tracking_categories,company + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompanyAccountingPeriod + - value: payments,applied_payments,line_items,tracking_categories,contact + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesContact + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompanyAccountingPeriod + - value: payments,applied_payments,tracking_categories + name: PaymentsAppliedPaymentsTrackingCategories + - value: payments,applied_payments,tracking_categories,accounting_period + name: PaymentsAppliedPaymentsTrackingCategoriesAccountingPeriod + - value: payments,applied_payments,tracking_categories,company + name: PaymentsAppliedPaymentsTrackingCategoriesCompany + - value: >- + payments,applied_payments,tracking_categories,company,accounting_period + name: PaymentsAppliedPaymentsTrackingCategoriesCompanyAccountingPeriod + - value: payments,applied_payments,tracking_categories,contact + name: PaymentsAppliedPaymentsTrackingCategoriesContact + - value: >- + payments,applied_payments,tracking_categories,contact,accounting_period + name: PaymentsAppliedPaymentsTrackingCategoriesContactAccountingPeriod + - value: payments,applied_payments,tracking_categories,contact,company + name: PaymentsAppliedPaymentsTrackingCategoriesContactCompany + - value: >- + payments,applied_payments,tracking_categories,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesContactCompanyAccountingPeriod + - value: payments,company + name: PaymentsCompany + - value: payments,company,accounting_period + name: PaymentsCompanyAccountingPeriod + - value: payments,contact + name: PaymentsContact + - value: payments,contact,accounting_period + name: PaymentsContactAccountingPeriod + - value: payments,contact,company + name: PaymentsContactCompany + - value: payments,contact,company,accounting_period + name: PaymentsContactCompanyAccountingPeriod + - value: payments,line_items + name: PaymentsLineItems + - value: payments,line_items,accounting_period + name: PaymentsLineItemsAccountingPeriod + - value: payments,line_items,company + name: PaymentsLineItemsCompany + - value: payments,line_items,company,accounting_period + name: PaymentsLineItemsCompanyAccountingPeriod + - value: payments,line_items,contact + name: PaymentsLineItemsContact + - value: payments,line_items,contact,accounting_period + name: PaymentsLineItemsContactAccountingPeriod + - value: payments,line_items,contact,company + name: PaymentsLineItemsContactCompany + - value: payments,line_items,contact,company,accounting_period + name: PaymentsLineItemsContactCompanyAccountingPeriod + - value: payments,line_items,tracking_categories + name: PaymentsLineItemsTrackingCategories + - value: payments,line_items,tracking_categories,accounting_period + name: PaymentsLineItemsTrackingCategoriesAccountingPeriod + - value: payments,line_items,tracking_categories,company + name: PaymentsLineItemsTrackingCategoriesCompany + - value: payments,line_items,tracking_categories,company,accounting_period + name: PaymentsLineItemsTrackingCategoriesCompanyAccountingPeriod + - value: payments,line_items,tracking_categories,contact + name: PaymentsLineItemsTrackingCategoriesContact + - value: payments,line_items,tracking_categories,contact,accounting_period + name: PaymentsLineItemsTrackingCategoriesContactAccountingPeriod + - value: payments,line_items,tracking_categories,contact,company + name: PaymentsLineItemsTrackingCategoriesContactCompany + - value: >- + payments,line_items,tracking_categories,contact,company,accounting_period + name: PaymentsLineItemsTrackingCategoriesContactCompanyAccountingPeriod + - value: payments,tracking_categories + name: PaymentsTrackingCategories + - value: payments,tracking_categories,accounting_period + name: PaymentsTrackingCategoriesAccountingPeriod + - value: payments,tracking_categories,company + name: PaymentsTrackingCategoriesCompany + - value: payments,tracking_categories,company,accounting_period + name: PaymentsTrackingCategoriesCompanyAccountingPeriod + - value: payments,tracking_categories,contact + name: PaymentsTrackingCategoriesContact + - value: payments,tracking_categories,contact,accounting_period + name: PaymentsTrackingCategoriesContactAccountingPeriod + - value: payments,tracking_categories,contact,company + name: PaymentsTrackingCategoriesContactCompany + - value: payments,tracking_categories,contact,company,accounting_period + name: PaymentsTrackingCategoriesContactCompanyAccountingPeriod + - tracking_categories + - value: tracking_categories,accounting_period + name: TrackingCategoriesAccountingPeriod + - value: tracking_categories,company + name: TrackingCategoriesCompany + - value: tracking_categories,company,accounting_period + name: TrackingCategoriesCompanyAccountingPeriod + - value: tracking_categories,contact + name: TrackingCategoriesContact + - value: tracking_categories,contact,accounting_period + name: TrackingCategoriesContactAccountingPeriod + - value: tracking_categories,contact,company + name: TrackingCategoriesContactCompany + - value: tracking_categories,contact,company,accounting_period + name: TrackingCategoriesContactCompanyAccountingPeriod + source: + openapi: openapi/openapi.yml + CreditNotesRetrieveRequestRemoteFields: + enum: + - status + - value: status,type + name: StatusType + - type + source: + openapi: openapi/openapi.yml + CreditNotesRetrieveRequestShowEnumOrigins: + enum: + - status + - value: status,type + name: StatusType + - type + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/credit-notes + method: GET + auth: true + docs: Returns a list of `CreditNote` objects. + source: + openapi: openapi/openapi.yml + request: + name: CreditNotesListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return credit notes for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + transaction_date_after: + type: optional + docs: If provided, will only return objects created after this datetime. + transaction_date_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + response: + docs: '' + type: root.PaginatedCreditNoteList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + remote_id: '123877' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + status: SUBMITTED + number: CN-29 + contact: contact + company: company + exchange_rate: '2.9' + total_amount: 50 + remaining_credit: 20 + inclusive_of_tax: true + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + item: 0e3fd929-436c-4fd4-a48b-0c61f68d6178 + name: Basic Monthly + description: prorated amount for items + quantity: quantity + memo: privNote + unit_price: '5.0' + tax_rate: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + total_line_amount: '5.0' + tracking_categories: + - 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + account: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + contact: 908934-49j9-093f-0989-908923908 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + remote_was_deleted: true + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + currency: XUA + remote_created_at: '2020-03-31T00:00:00Z' + remote_updated_at: '2020-03-31T00:00:00Z' + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - a9a94a75-19c1-41fe-90d8-d9ba959c38e5 + accounting_period: accounting_period + applied_to_lines: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + invoice: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + create: + path: /accounting/v1/credit-notes + method: POST + auth: true + docs: Creates a `CreditNote` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: CreditNoteEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.CreditNoteRequest + content-type: application/json + response: + docs: '' + type: root.CreditNoteResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + remote_id: '123877' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + status: SUBMITTED + number: CN-29 + contact: contact + company: company + exchange_rate: '2.9' + total_amount: 50 + remaining_credit: 20 + inclusive_of_tax: true + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + item: 0e3fd929-436c-4fd4-a48b-0c61f68d6178 + name: Basic Monthly + description: prorated amount for items + quantity: quantity + memo: privNote + unit_price: '5.0' + tax_rate: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + total_line_amount: '5.0' + tracking_categories: + - 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + account: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + contact: 908934-49j9-093f-0989-908923908 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + remote_was_deleted: true + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + currency: XUA + remote_created_at: '2020-03-31T00:00:00Z' + remote_updated_at: '2020-03-31T00:00:00Z' + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - a9a94a75-19c1-41fe-90d8-d9ba959c38e5 + accounting_period: accounting_period + applied_to_lines: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + invoice: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/credit-notes/{id} + method: GET + auth: true + docs: Returns a `CreditNote` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: CreditNotesRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.CreditNote + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + remote_id: '123877' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + status: SUBMITTED + number: CN-29 + contact: contact + company: company + exchange_rate: '2.9' + total_amount: 50 + remaining_credit: 20 + inclusive_of_tax: true + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + item: 0e3fd929-436c-4fd4-a48b-0c61f68d6178 + name: Basic Monthly + description: prorated amount for items + quantity: quantity + memo: privNote + unit_price: '5.0' + tax_rate: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + total_line_amount: '5.0' + tracking_category: tracking_category + tracking_categories: + - 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + account: 8d9fd929-436c-4fd4-a48b-0c61f68d6178 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + contact: 908934-49j9-093f-0989-908923908 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + remote_was_deleted: true + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + currency: XUA + remote_created_at: '2020-03-31T00:00:00Z' + remote_updated_at: '2020-03-31T00:00:00Z' + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - a9a94a75-19c1-41fe-90d8-d9ba959c38e5 + accounting_period: accounting_period + applied_to_lines: + - remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + invoice: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + remote_was_deleted: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + metaPostRetrieve: + path: /accounting/v1/credit-notes/meta/post + method: GET + auth: true + docs: Returns metadata for `CreditNote` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/deleteAccount.yml b/.mock/definition/accounting/deleteAccount.yml new file mode 100644 index 000000000..402b4e72a --- /dev/null +++ b/.mock/definition/accounting/deleteAccount.yml @@ -0,0 +1,15 @@ +service: + auth: false + base-path: '' + endpoints: + delete: + path: /accounting/v1/delete-account + method: POST + auth: true + docs: Delete a linked account. + source: + openapi: openapi/openapi.yml + examples: + - headers: {} + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/employees.yml b/.mock/definition/accounting/employees.yml new file mode 100644 index 000000000..3ccf25f68 --- /dev/null +++ b/.mock/definition/accounting/employees.yml @@ -0,0 +1,137 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/employees + method: GET + auth: true + docs: Returns a list of `Employee` objects. + source: + openapi: openapi/openapi.yml + request: + name: EmployeesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedEmployeeList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: c640b80b-fac9-409f-aa19-1f9221aec445 + remote_id: '11167' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: John + last_name: Smith + is_contractor: true + employee_number: '325462' + email_address: johnsmith@merge.dev + company: company + status: ACTIVE + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/employees/{id} + method: GET + auth: true + docs: Returns an `Employee` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: EmployeesRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Employee + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: c640b80b-fac9-409f-aa19-1f9221aec445 + remote_id: '11167' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: John + last_name: Smith + is_contractor: true + employee_number: '325462' + email_address: johnsmith@merge.dev + company: company + status: ACTIVE + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/expenses.yml b/.mock/definition/accounting/expenses.yml new file mode 100644 index 000000000..98c48edfd --- /dev/null +++ b/.mock/definition/accounting/expenses.yml @@ -0,0 +1,964 @@ +types: + ExpensesListRequestExpand: + enum: + - account + - value: account,accounting_period + name: AccountAccountingPeriod + - value: account,company + name: AccountCompany + - value: account,company,accounting_period + name: AccountCompanyAccountingPeriod + - value: account,company,employee + name: AccountCompanyEmployee + - value: account,company,employee,accounting_period + name: AccountCompanyEmployeeAccountingPeriod + - value: account,contact + name: AccountContact + - value: account,contact,accounting_period + name: AccountContactAccountingPeriod + - value: account,contact,company + name: AccountContactCompany + - value: account,contact,company,accounting_period + name: AccountContactCompanyAccountingPeriod + - value: account,contact,company,employee + name: AccountContactCompanyEmployee + - value: account,contact,company,employee,accounting_period + name: AccountContactCompanyEmployeeAccountingPeriod + - value: account,contact,employee + name: AccountContactEmployee + - value: account,contact,employee,accounting_period + name: AccountContactEmployeeAccountingPeriod + - value: account,employee + name: AccountEmployee + - value: account,employee,accounting_period + name: AccountEmployeeAccountingPeriod + - accounting_period + - company + - value: company,accounting_period + name: CompanyAccountingPeriod + - value: company,employee + name: CompanyEmployee + - value: company,employee,accounting_period + name: CompanyEmployeeAccountingPeriod + - contact + - value: contact,accounting_period + name: ContactAccountingPeriod + - value: contact,company + name: ContactCompany + - value: contact,company,accounting_period + name: ContactCompanyAccountingPeriod + - value: contact,company,employee + name: ContactCompanyEmployee + - value: contact,company,employee,accounting_period + name: ContactCompanyEmployeeAccountingPeriod + - value: contact,employee + name: ContactEmployee + - value: contact,employee,accounting_period + name: ContactEmployeeAccountingPeriod + - employee + - value: employee,accounting_period + name: EmployeeAccountingPeriod + - tracking_categories + - value: tracking_categories,account + name: TrackingCategoriesAccount + - value: tracking_categories,account,accounting_period + name: TrackingCategoriesAccountAccountingPeriod + - value: tracking_categories,account,company + name: TrackingCategoriesAccountCompany + - value: tracking_categories,account,company,accounting_period + name: TrackingCategoriesAccountCompanyAccountingPeriod + - value: tracking_categories,account,company,employee + name: TrackingCategoriesAccountCompanyEmployee + - value: tracking_categories,account,company,employee,accounting_period + name: TrackingCategoriesAccountCompanyEmployeeAccountingPeriod + - value: tracking_categories,account,contact + name: TrackingCategoriesAccountContact + - value: tracking_categories,account,contact,accounting_period + name: TrackingCategoriesAccountContactAccountingPeriod + - value: tracking_categories,account,contact,company + name: TrackingCategoriesAccountContactCompany + - value: tracking_categories,account,contact,company,accounting_period + name: TrackingCategoriesAccountContactCompanyAccountingPeriod + - value: tracking_categories,account,contact,company,employee + name: TrackingCategoriesAccountContactCompanyEmployee + - value: tracking_categories,account,contact,company,employee,accounting_period + name: TrackingCategoriesAccountContactCompanyEmployeeAccountingPeriod + - value: tracking_categories,account,contact,employee + name: TrackingCategoriesAccountContactEmployee + - value: tracking_categories,account,contact,employee,accounting_period + name: TrackingCategoriesAccountContactEmployeeAccountingPeriod + - value: tracking_categories,account,employee + name: TrackingCategoriesAccountEmployee + - value: tracking_categories,account,employee,accounting_period + name: TrackingCategoriesAccountEmployeeAccountingPeriod + - value: tracking_categories,accounting_period + name: TrackingCategoriesAccountingPeriod + - value: tracking_categories,company + name: TrackingCategoriesCompany + - value: tracking_categories,company,accounting_period + name: TrackingCategoriesCompanyAccountingPeriod + - value: tracking_categories,company,employee + name: TrackingCategoriesCompanyEmployee + - value: tracking_categories,company,employee,accounting_period + name: TrackingCategoriesCompanyEmployeeAccountingPeriod + - value: tracking_categories,contact + name: TrackingCategoriesContact + - value: tracking_categories,contact,accounting_period + name: TrackingCategoriesContactAccountingPeriod + - value: tracking_categories,contact,company + name: TrackingCategoriesContactCompany + - value: tracking_categories,contact,company,accounting_period + name: TrackingCategoriesContactCompanyAccountingPeriod + - value: tracking_categories,contact,company,employee + name: TrackingCategoriesContactCompanyEmployee + - value: tracking_categories,contact,company,employee,accounting_period + name: TrackingCategoriesContactCompanyEmployeeAccountingPeriod + - value: tracking_categories,contact,employee + name: TrackingCategoriesContactEmployee + - value: tracking_categories,contact,employee,accounting_period + name: TrackingCategoriesContactEmployeeAccountingPeriod + - value: tracking_categories,employee + name: TrackingCategoriesEmployee + - value: tracking_categories,employee,accounting_period + name: TrackingCategoriesEmployeeAccountingPeriod + source: + openapi: openapi/openapi.yml + ExpensesRetrieveRequestExpand: + enum: + - account + - value: account,accounting_period + name: AccountAccountingPeriod + - value: account,company + name: AccountCompany + - value: account,company,accounting_period + name: AccountCompanyAccountingPeriod + - value: account,company,employee + name: AccountCompanyEmployee + - value: account,company,employee,accounting_period + name: AccountCompanyEmployeeAccountingPeriod + - value: account,contact + name: AccountContact + - value: account,contact,accounting_period + name: AccountContactAccountingPeriod + - value: account,contact,company + name: AccountContactCompany + - value: account,contact,company,accounting_period + name: AccountContactCompanyAccountingPeriod + - value: account,contact,company,employee + name: AccountContactCompanyEmployee + - value: account,contact,company,employee,accounting_period + name: AccountContactCompanyEmployeeAccountingPeriod + - value: account,contact,employee + name: AccountContactEmployee + - value: account,contact,employee,accounting_period + name: AccountContactEmployeeAccountingPeriod + - value: account,employee + name: AccountEmployee + - value: account,employee,accounting_period + name: AccountEmployeeAccountingPeriod + - accounting_period + - company + - value: company,accounting_period + name: CompanyAccountingPeriod + - value: company,employee + name: CompanyEmployee + - value: company,employee,accounting_period + name: CompanyEmployeeAccountingPeriod + - contact + - value: contact,accounting_period + name: ContactAccountingPeriod + - value: contact,company + name: ContactCompany + - value: contact,company,accounting_period + name: ContactCompanyAccountingPeriod + - value: contact,company,employee + name: ContactCompanyEmployee + - value: contact,company,employee,accounting_period + name: ContactCompanyEmployeeAccountingPeriod + - value: contact,employee + name: ContactEmployee + - value: contact,employee,accounting_period + name: ContactEmployeeAccountingPeriod + - employee + - value: employee,accounting_period + name: EmployeeAccountingPeriod + - tracking_categories + - value: tracking_categories,account + name: TrackingCategoriesAccount + - value: tracking_categories,account,accounting_period + name: TrackingCategoriesAccountAccountingPeriod + - value: tracking_categories,account,company + name: TrackingCategoriesAccountCompany + - value: tracking_categories,account,company,accounting_period + name: TrackingCategoriesAccountCompanyAccountingPeriod + - value: tracking_categories,account,company,employee + name: TrackingCategoriesAccountCompanyEmployee + - value: tracking_categories,account,company,employee,accounting_period + name: TrackingCategoriesAccountCompanyEmployeeAccountingPeriod + - value: tracking_categories,account,contact + name: TrackingCategoriesAccountContact + - value: tracking_categories,account,contact,accounting_period + name: TrackingCategoriesAccountContactAccountingPeriod + - value: tracking_categories,account,contact,company + name: TrackingCategoriesAccountContactCompany + - value: tracking_categories,account,contact,company,accounting_period + name: TrackingCategoriesAccountContactCompanyAccountingPeriod + - value: tracking_categories,account,contact,company,employee + name: TrackingCategoriesAccountContactCompanyEmployee + - value: tracking_categories,account,contact,company,employee,accounting_period + name: TrackingCategoriesAccountContactCompanyEmployeeAccountingPeriod + - value: tracking_categories,account,contact,employee + name: TrackingCategoriesAccountContactEmployee + - value: tracking_categories,account,contact,employee,accounting_period + name: TrackingCategoriesAccountContactEmployeeAccountingPeriod + - value: tracking_categories,account,employee + name: TrackingCategoriesAccountEmployee + - value: tracking_categories,account,employee,accounting_period + name: TrackingCategoriesAccountEmployeeAccountingPeriod + - value: tracking_categories,accounting_period + name: TrackingCategoriesAccountingPeriod + - value: tracking_categories,company + name: TrackingCategoriesCompany + - value: tracking_categories,company,accounting_period + name: TrackingCategoriesCompanyAccountingPeriod + - value: tracking_categories,company,employee + name: TrackingCategoriesCompanyEmployee + - value: tracking_categories,company,employee,accounting_period + name: TrackingCategoriesCompanyEmployeeAccountingPeriod + - value: tracking_categories,contact + name: TrackingCategoriesContact + - value: tracking_categories,contact,accounting_period + name: TrackingCategoriesContactAccountingPeriod + - value: tracking_categories,contact,company + name: TrackingCategoriesContactCompany + - value: tracking_categories,contact,company,accounting_period + name: TrackingCategoriesContactCompanyAccountingPeriod + - value: tracking_categories,contact,company,employee + name: TrackingCategoriesContactCompanyEmployee + - value: tracking_categories,contact,company,employee,accounting_period + name: TrackingCategoriesContactCompanyEmployeeAccountingPeriod + - value: tracking_categories,contact,employee + name: TrackingCategoriesContactEmployee + - value: tracking_categories,contact,employee,accounting_period + name: TrackingCategoriesContactEmployeeAccountingPeriod + - value: tracking_categories,employee + name: TrackingCategoriesEmployee + - value: tracking_categories,employee,accounting_period + name: TrackingCategoriesEmployeeAccountingPeriod + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/expenses + method: GET + auth: true + docs: Returns a list of `Expense` objects. + source: + openapi: openapi/openapi.yml + request: + name: ExpensesListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return expenses for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + transaction_date_after: + type: optional + docs: If provided, will only return objects created after this datetime. + transaction_date_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + response: + docs: '' + type: root.PaginatedExpenseList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2024-01-15T09:30:00Z' + remote_created_at: '2020-03-31T00:00:00Z' + account: account + contact: contact + total_amount: 10000 + sub_total: 1.1 + total_tax_amount: 1.1 + currency: XUA + exchange_rate: '2.9' + inclusive_of_tax: true + company: company + employee: employee + memo: New employee supplies + lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + item: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + net_amount: 25.54 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + account: 2a56344a-a491-11ec-b909-0242ac120002 + contact: c640b80b-fac9-409f-aa19-1f9221aec445 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + description: MacBook Pro + exchange_rate: '2.9' + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121223' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + item: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + net_amount: 10 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + account: 2a56344a-a491-11ec-b909-0242ac120002 + description: Desk Lamp + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + remote_was_deleted: true + accounting_period: accounting_period + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /accounting/v1/expenses + method: POST + auth: true + docs: Creates an `Expense` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: ExpenseEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.ExpenseRequest + content-type: application/json + response: + docs: '' + type: root.ExpenseResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2024-01-15T09:30:00Z' + remote_created_at: '2020-03-31T00:00:00Z' + account: account + contact: contact + total_amount: 10000 + sub_total: 1.1 + total_tax_amount: 1.1 + currency: XUA + exchange_rate: '2.9' + inclusive_of_tax: true + company: company + employee: employee + memo: New employee supplies + lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + item: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + net_amount: 25.54 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + account: 2a56344a-a491-11ec-b909-0242ac120002 + contact: c640b80b-fac9-409f-aa19-1f9221aec445 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + description: MacBook Pro + exchange_rate: '2.9' + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121223' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + item: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + net_amount: 10 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + account: 2a56344a-a491-11ec-b909-0242ac120002 + description: Desk Lamp + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + remote_was_deleted: true + accounting_period: accounting_period + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/expenses/{id} + method: GET + auth: true + docs: Returns an `Expense` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: ExpensesRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Expense + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2024-01-15T09:30:00Z' + remote_created_at: '2020-03-31T00:00:00Z' + account: account + contact: contact + total_amount: 10000 + sub_total: 1.1 + total_tax_amount: 1.1 + currency: XUA + exchange_rate: '2.9' + inclusive_of_tax: true + company: company + employee: employee + memo: New employee supplies + lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + item: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + net_amount: 25.54 + tracking_category: tracking_category + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + currency: XUA + account: 2a56344a-a491-11ec-b909-0242ac120002 + contact: c640b80b-fac9-409f-aa19-1f9221aec445 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + description: MacBook Pro + exchange_rate: '2.9' + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121223' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + item: b38c59b0-a9d7-4740-b1ee-5436c6751e3d + net_amount: 10 + tracking_category: tracking_category + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: employee + currency: XUA + account: 2a56344a-a491-11ec-b909-0242ac120002 + contact: contact + project: project + description: Desk Lamp + exchange_rate: '2.9' + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + remote_was_deleted: true + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + remote_was_deleted: true + accounting_period: accounting_period + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + linesRemoteFieldClassesList: + path: /accounting/v1/expenses/lines/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: ExpensesLinesRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + metaPostRetrieve: + path: /accounting/v1/expenses/meta/post + method: GET + auth: true + docs: Returns metadata for `Expense` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /accounting/v1/expenses/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: ExpensesRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/fieldMapping.yml b/.mock/definition/accounting/fieldMapping.yml new file mode 100644 index 000000000..7f1061839 --- /dev/null +++ b/.mock/definition/accounting/fieldMapping.yml @@ -0,0 +1,1198 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + field_mappings_retrieve: + path: /accounting/v1/field-mappings + method: GET + auth: true + docs: >- + Get all Field Mappings for this Linked Account. Field Mappings are + mappings between third-party Remote Fields and user defined Merge + fields. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: openapi/openapi.yml + request: + name: FieldMappingsRetrieveRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + response: + docs: '' + type: root.FieldMappingApiInstanceResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Account: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + AccountingAttachment: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + BalanceSheet: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + CashFlowStatement: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + CompanyInfo: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Contact: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + IncomeStatement: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + CreditNote: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Item: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + PurchaseOrder: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + TrackingCategory: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + JournalEntry: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + TaxRate: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Invoice: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Payment: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Expense: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + VendorCredit: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Transaction: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + AccountingPeriod: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + GeneralLedgerTransaction: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + BankFeedAccount: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Employee: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + PaymentMethod: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Project: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + PaymentTerm: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + field_mappings_create: + path: /accounting/v1/field-mappings + method: POST + auth: true + docs: >- + Create new Field Mappings that will be available after the next + scheduled sync. This will cause the next sync for this Linked Account to + sync **ALL** data from start. + source: + openapi: openapi/openapi.yml + request: + name: CreateFieldMappingRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + body: + properties: + target_field_name: + type: string + docs: >- + The name of the target field you want this remote field to map + to. + validation: + minLength: 1 + target_field_description: + type: string + docs: >- + The description of the target field you want this remote field + to map to. + validation: + minLength: 1 + remote_field_traversal_path: + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + type: list + remote_method: + type: string + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: string + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + common_model_name: + type: string + docs: >- + The name of the Common Model that the remote field corresponds + to in a given category. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.FieldMappingInstanceResponse + status-code: 201 + examples: + - headers: {} + request: + target_field_name: example_target_field_name + target_field_description: this is a example description of the target field + remote_field_traversal_path: + - example_remote_field + remote_method: GET + remote_url_path: /example-url-path + common_model_name: ExampleCommonModel + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_destroy: + path: /accounting/v1/field-mappings/{field_mapping_id} + method: DELETE + auth: true + docs: >- + Deletes Field Mappings for a Linked Account. All data related to this + Field Mapping will be deleted and these changes will be reflected after + the next scheduled sync. This will cause the next sync for this Linked + Account to sync **ALL** data from start. + source: + openapi: openapi/openapi.yml + path-parameters: + field_mapping_id: string + response: + docs: '' + type: root.FieldMappingInstanceResponse + status-code: 204 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_partial_update: + path: /accounting/v1/field-mappings/{field_mapping_id} + method: PATCH + auth: true + docs: >- + Create or update existing Field Mappings for a Linked Account. Changes + will be reflected after the next scheduled sync. This will cause the + next sync for this Linked Account to sync **ALL** data from start. + source: + openapi: openapi/openapi.yml + path-parameters: + field_mapping_id: string + request: + name: PatchedEditFieldMappingRequest + body: + properties: + remote_field_traversal_path: + type: optional> + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + remote_method: + type: optional + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: optional + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.FieldMappingInstanceResponse + status-code: 200 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + request: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + remote_fields_retrieve: + path: /accounting/v1/remote-fields + method: GET + auth: true + docs: >- + Get all remote fields for a Linked Account. Remote fields are + third-party fields that are accessible after initial sync if remote_data + is enabled. You can use remote fields to override existing Merge fields + or map a new Merge field. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: openapi/openapi.yml + request: + name: RemoteFieldsRetrieveRequest + query-parameters: + common_models: + type: optional + docs: >- + A comma seperated list of Common Model names. If included, will + only return Remote Fields for those Common Models. + include_example_values: + type: optional + docs: >- + If true, will include example values, where available, for remote + fields in the 3rd party platform. These examples come from active + data from your customers. + response: + docs: '' + type: root.RemoteFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Account: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + AccountingAttachment: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + BalanceSheet: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + CashFlowStatement: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + CompanyInfo: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Contact: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + IncomeStatement: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + CreditNote: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Item: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + PurchaseOrder: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + TrackingCategory: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + JournalEntry: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + TaxRate: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Invoice: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Payment: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Expense: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + VendorCredit: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Transaction: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + AccountingPeriod: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + GeneralLedgerTransaction: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + BankFeedAccount: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Employee: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + PaymentMethod: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Project: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + PaymentTerm: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + target_fields_retrieve: + path: /accounting/v1/target-fields + method: GET + auth: true + docs: >- + Get all organization-wide Target Fields, this will not include any + Linked Account specific Target Fields. Organization-wide Target Fields + are additional fields appended to the Merge Common Model for all Linked + Accounts in a category. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.ExternalTargetFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Account: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + AccountingAttachment: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + BalanceSheet: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + CashFlowStatement: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + CompanyInfo: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Contact: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + IncomeStatement: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + CreditNote: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Item: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + PurchaseOrder: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + TrackingCategory: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + JournalEntry: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + TaxRate: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Invoice: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Payment: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Expense: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + VendorCredit: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Transaction: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + AccountingPeriod: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + GeneralLedgerTransaction: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + BankFeedAccount: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Employee: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + PaymentMethod: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Project: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + PaymentTerm: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/forceResync.yml b/.mock/definition/accounting/forceResync.yml new file mode 100644 index 000000000..8e7e969ab --- /dev/null +++ b/.mock/definition/accounting/forceResync.yml @@ -0,0 +1,37 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + sync_status_resync_create: + path: /accounting/v1/sync-status/resync + method: POST + auth: true + docs: >- + Force re-sync of all models. This endpoint is available for monthly, + quarterly, and highest sync frequency customers on the Professional or + Enterprise plans. Doing so will consume a sync credit for the relevant + linked account. Force re-syncs can also be triggered manually in the + Merge Dashboard and is available for all customers. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - model_name: Invoice + model_id: accounting.Invoices + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/generalLedgerTransactions.yml b/.mock/definition/accounting/generalLedgerTransactions.yml new file mode 100644 index 000000000..38fe72923 --- /dev/null +++ b/.mock/definition/accounting/generalLedgerTransactions.yml @@ -0,0 +1,289 @@ +types: + GeneralLedgerTransactionsListRequestExpand: + enum: + - accounting_period + - company + - value: company,accounting_period + name: CompanyAccountingPeriod + - general_ledger_transaction_lines + - value: general_ledger_transaction_lines,accounting_period + name: GeneralLedgerTransactionLinesAccountingPeriod + - value: general_ledger_transaction_lines,company + name: GeneralLedgerTransactionLinesCompany + - value: general_ledger_transaction_lines,company,accounting_period + name: GeneralLedgerTransactionLinesCompanyAccountingPeriod + - tracking_categories + - value: tracking_categories,accounting_period + name: TrackingCategoriesAccountingPeriod + - value: tracking_categories,company + name: TrackingCategoriesCompany + - value: tracking_categories,company,accounting_period + name: TrackingCategoriesCompanyAccountingPeriod + - value: tracking_categories,general_ledger_transaction_lines + name: TrackingCategoriesGeneralLedgerTransactionLines + - value: tracking_categories,general_ledger_transaction_lines,accounting_period + name: TrackingCategoriesGeneralLedgerTransactionLinesAccountingPeriod + - value: tracking_categories,general_ledger_transaction_lines,company + name: TrackingCategoriesGeneralLedgerTransactionLinesCompany + - value: >- + tracking_categories,general_ledger_transaction_lines,company,accounting_period + name: TrackingCategoriesGeneralLedgerTransactionLinesCompanyAccountingPeriod + source: + openapi: openapi/openapi.yml + GeneralLedgerTransactionsRetrieveRequestExpand: + enum: + - accounting_period + - company + - value: company,accounting_period + name: CompanyAccountingPeriod + - general_ledger_transaction_lines + - value: general_ledger_transaction_lines,accounting_period + name: GeneralLedgerTransactionLinesAccountingPeriod + - value: general_ledger_transaction_lines,company + name: GeneralLedgerTransactionLinesCompany + - value: general_ledger_transaction_lines,company,accounting_period + name: GeneralLedgerTransactionLinesCompanyAccountingPeriod + - tracking_categories + - value: tracking_categories,accounting_period + name: TrackingCategoriesAccountingPeriod + - value: tracking_categories,company + name: TrackingCategoriesCompany + - value: tracking_categories,company,accounting_period + name: TrackingCategoriesCompanyAccountingPeriod + - value: tracking_categories,general_ledger_transaction_lines + name: TrackingCategoriesGeneralLedgerTransactionLines + - value: tracking_categories,general_ledger_transaction_lines,accounting_period + name: TrackingCategoriesGeneralLedgerTransactionLinesAccountingPeriod + - value: tracking_categories,general_ledger_transaction_lines,company + name: TrackingCategoriesGeneralLedgerTransactionLinesCompany + - value: >- + tracking_categories,general_ledger_transaction_lines,company,accounting_period + name: TrackingCategoriesGeneralLedgerTransactionLinesCompanyAccountingPeriod + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/general-ledger-transactions + method: GET + auth: true + docs: Returns a list of `GeneralLedgerTransaction` objects. + source: + openapi: openapi/openapi.yml + request: + name: GeneralLedgerTransactionsListRequest + query-parameters: + company_id: + type: optional + docs: >- + If provided, will only return general ledger transactions for this + company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + posted_date_after: + type: optional + docs: If provided, will only return objects posted after this datetime. + posted_date_before: + type: optional + docs: If provided, will only return objects posted before this datetime. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedGeneralLedgerTransactionList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + underlying_transaction_remote_id: '1234' + underlying_transaction_type: INVOICE + accounting_period: accounting_period + company: company + remote_updated_at: '2020-03-31T00:00:00Z' + remote_created_at: '2020-03-31T00:00:00Z' + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + posting_date: '2020-03-31T00:00:00Z' + general_ledger_transaction_lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '123' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + account: a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + contact: d6e687d6-0c36-48a1-8114-35324b5cb38f + base_currency: USD + transaction_currency: USD + exchange_rate: exchange_rate + description: Invoice created + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + debit_amount: debit_amount + credit_amount: credit_amount + item: a47e11b6-c73b-4a0c-be31-130fc48177fa + foreign_debit_amount: foreign_debit_amount + foreign_credit_amount: foreign_credit_amount + remote_was_deleted: false + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + retrieve: + path: /accounting/v1/general-ledger-transactions/{id} + method: GET + auth: true + docs: Returns a `GeneralLedgerTransaction` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: GeneralLedgerTransactionsRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.GeneralLedgerTransaction + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + underlying_transaction_remote_id: '1234' + underlying_transaction_type: INVOICE + accounting_period: accounting_period + company: company + remote_updated_at: '2020-03-31T00:00:00Z' + remote_created_at: '2020-03-31T00:00:00Z' + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + posting_date: '2020-03-31T00:00:00Z' + general_ledger_transaction_lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '123' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + account: a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: employee + contact: d6e687d6-0c36-48a1-8114-35324b5cb38f + project: project + base_currency: USD + transaction_currency: USD + exchange_rate: exchange_rate + description: Invoice created + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + debit_amount: debit_amount + credit_amount: credit_amount + item: a47e11b6-c73b-4a0c-be31-130fc48177fa + foreign_debit_amount: foreign_debit_amount + foreign_credit_amount: foreign_credit_amount + remote_was_deleted: false + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/generateKey.yml b/.mock/definition/accounting/generateKey.yml new file mode 100644 index 000000000..4d79b8cea --- /dev/null +++ b/.mock/definition/accounting/generateKey.yml @@ -0,0 +1,36 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /accounting/v1/generate-key + method: POST + auth: true + docs: Create a remote key. + source: + openapi: openapi/openapi.yml + request: + name: GenerateRemoteKeyRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/incomeStatements.yml b/.mock/definition/accounting/incomeStatements.yml new file mode 100644 index 000000000..92f62e776 --- /dev/null +++ b/.mock/definition/accounting/incomeStatements.yml @@ -0,0 +1,269 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/income-statements + method: GET + auth: true + docs: Returns a list of `IncomeStatement` objects. + source: + openapi: openapi/openapi.yml + request: + name: IncomeStatementsListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return income statements for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedIncomeStatementList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '1342348' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: IncomeStatement + currency: XUA + company: company + start_period: '2024-01-15T09:30:00Z' + end_period: '2024-01-15T09:30:00Z' + income: + - remote_id: '10299' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Total Income + value: 325 + sub_items: + - remote_id: '10200' + name: Landscaping Services + value: 425 + - remote_id: '10201' + name: Pest Control Services + value: -100 + cost_of_sales: + - remote_id: '10299' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Total COGS + value: 25 + sub_items: + - remote_id: '10200' + name: Supplies + value: 10 + gross_profit: 300 + operating_expenses: + - remote_id: '10299' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Total Operating Expenses + value: 100 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + net_operating_income: 200 + non_operating_expenses: + - remote_id: '10299' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Total Non-Operating Expenses + value: 100 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + net_income: 100 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/income-statements/{id} + method: GET + auth: true + docs: Returns an `IncomeStatement` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: IncomeStatementsRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.IncomeStatement + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '1342348' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: IncomeStatement + currency: XUA + company: company + start_period: '2024-01-15T09:30:00Z' + end_period: '2024-01-15T09:30:00Z' + income: + - remote_id: '10299' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Total Income + value: 325 + sub_items: + - remote_id: '10200' + name: Landscaping Services + value: 425 + - remote_id: '10201' + name: Pest Control Services + value: -100 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + cost_of_sales: + - remote_id: '10299' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Total COGS + value: 25 + sub_items: + - remote_id: '10200' + name: Supplies + value: 10 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + gross_profit: 300 + operating_expenses: + - remote_id: '10299' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Total Operating Expenses + value: 100 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + net_operating_income: 200 + non_operating_expenses: + - remote_id: '10299' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Total Non-Operating Expenses + value: 100 + sub_items: + - remote_id: '10300' + name: Revenue - San Francisco + value: 500 + - remote_id: '10301' + name: Revenue - New York + value: 500 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + net_income: 100 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/invoices.yml b/.mock/definition/accounting/invoices.yml new file mode 100644 index 000000000..a3d880120 --- /dev/null +++ b/.mock/definition/accounting/invoices.yml @@ -0,0 +1,28100 @@ +types: + InvoicesListRequestExpand: + enum: + - accounting_period + - value: accounting_period,payment_term + name: AccountingPeriodPaymentTerm + - applied_credit_notes + - value: applied_credit_notes,accounting_period + name: AppliedCreditNotesAccountingPeriod + - value: applied_credit_notes,accounting_period,payment_term + name: AppliedCreditNotesAccountingPeriodPaymentTerm + - value: applied_credit_notes,applied_vendor_credits + name: AppliedCreditNotesAppliedVendorCredits + - value: applied_credit_notes,applied_vendor_credits,accounting_period + name: AppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: AppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: applied_credit_notes,applied_vendor_credits,company + name: AppliedCreditNotesAppliedVendorCreditsCompany + - value: applied_credit_notes,applied_vendor_credits,company,accounting_period + name: AppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: applied_credit_notes,applied_vendor_credits,company,employee + name: AppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: AppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: AppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: applied_credit_notes,applied_vendor_credits,company,payment_term + name: AppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: applied_credit_notes,applied_vendor_credits,contact + name: AppliedCreditNotesAppliedVendorCreditsContact + - value: applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: AppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: applied_credit_notes,applied_vendor_credits,contact,company + name: AppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: AppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: applied_credit_notes,applied_vendor_credits,contact,company,employee + name: AppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: AppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: applied_credit_notes,applied_vendor_credits,contact,employee + name: AppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: AppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: AppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: applied_credit_notes,applied_vendor_credits,contact,payment_term + name: AppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: applied_credit_notes,applied_vendor_credits,employee + name: AppliedCreditNotesAppliedVendorCreditsEmployee + - value: applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: AppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: applied_credit_notes,applied_vendor_credits,employee,payment_term + name: AppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: applied_credit_notes,applied_vendor_credits,payment_term + name: AppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: applied_credit_notes,company + name: AppliedCreditNotesCompany + - value: applied_credit_notes,company,accounting_period + name: AppliedCreditNotesCompanyAccountingPeriod + - value: applied_credit_notes,company,accounting_period,payment_term + name: AppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: applied_credit_notes,company,employee + name: AppliedCreditNotesCompanyEmployee + - value: applied_credit_notes,company,employee,accounting_period + name: AppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: applied_credit_notes,company,employee,accounting_period,payment_term + name: AppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_credit_notes,company,employee,payment_term + name: AppliedCreditNotesCompanyEmployeePaymentTerm + - value: applied_credit_notes,company,payment_term + name: AppliedCreditNotesCompanyPaymentTerm + - value: applied_credit_notes,contact + name: AppliedCreditNotesContact + - value: applied_credit_notes,contact,accounting_period + name: AppliedCreditNotesContactAccountingPeriod + - value: applied_credit_notes,contact,accounting_period,payment_term + name: AppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: applied_credit_notes,contact,company + name: AppliedCreditNotesContactCompany + - value: applied_credit_notes,contact,company,accounting_period + name: AppliedCreditNotesContactCompanyAccountingPeriod + - value: applied_credit_notes,contact,company,accounting_period,payment_term + name: AppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: applied_credit_notes,contact,company,employee + name: AppliedCreditNotesContactCompanyEmployee + - value: applied_credit_notes,contact,company,employee,accounting_period + name: AppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: AppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_credit_notes,contact,company,employee,payment_term + name: AppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: applied_credit_notes,contact,company,payment_term + name: AppliedCreditNotesContactCompanyPaymentTerm + - value: applied_credit_notes,contact,employee + name: AppliedCreditNotesContactEmployee + - value: applied_credit_notes,contact,employee,accounting_period + name: AppliedCreditNotesContactEmployeeAccountingPeriod + - value: applied_credit_notes,contact,employee,accounting_period,payment_term + name: AppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: applied_credit_notes,contact,employee,payment_term + name: AppliedCreditNotesContactEmployeePaymentTerm + - value: applied_credit_notes,contact,payment_term + name: AppliedCreditNotesContactPaymentTerm + - value: applied_credit_notes,employee + name: AppliedCreditNotesEmployee + - value: applied_credit_notes,employee,accounting_period + name: AppliedCreditNotesEmployeeAccountingPeriod + - value: applied_credit_notes,employee,accounting_period,payment_term + name: AppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: applied_credit_notes,employee,payment_term + name: AppliedCreditNotesEmployeePaymentTerm + - value: applied_credit_notes,payment_term + name: AppliedCreditNotesPaymentTerm + - applied_payments + - value: applied_payments,accounting_period + name: AppliedPaymentsAccountingPeriod + - value: applied_payments,accounting_period,payment_term + name: AppliedPaymentsAccountingPeriodPaymentTerm + - value: applied_payments,applied_credit_notes + name: AppliedPaymentsAppliedCreditNotes + - value: applied_payments,applied_credit_notes,accounting_period + name: AppliedPaymentsAppliedCreditNotesAccountingPeriod + - value: applied_payments,applied_credit_notes,accounting_period,payment_term + name: AppliedPaymentsAppliedCreditNotesAccountingPeriodPaymentTerm + - value: applied_payments,applied_credit_notes,applied_vendor_credits + name: AppliedPaymentsAppliedCreditNotesAppliedVendorCredits + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,accounting_period + name: AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: applied_payments,applied_credit_notes,applied_vendor_credits,company + name: AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,company,employee + name: AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: applied_payments,applied_credit_notes,applied_vendor_credits,contact + name: AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,company + name: AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee + name: AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: applied_payments,applied_credit_notes,applied_vendor_credits,employee + name: AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,payment_term + name: AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: applied_payments,applied_credit_notes,company + name: AppliedPaymentsAppliedCreditNotesCompany + - value: applied_payments,applied_credit_notes,company,accounting_period + name: AppliedPaymentsAppliedCreditNotesCompanyAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,company,accounting_period,payment_term + name: AppliedPaymentsAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: applied_payments,applied_credit_notes,company,employee + name: AppliedPaymentsAppliedCreditNotesCompanyEmployee + - value: >- + applied_payments,applied_credit_notes,company,employee,accounting_period + name: AppliedPaymentsAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,applied_credit_notes,company,employee,payment_term + name: AppliedPaymentsAppliedCreditNotesCompanyEmployeePaymentTerm + - value: applied_payments,applied_credit_notes,company,payment_term + name: AppliedPaymentsAppliedCreditNotesCompanyPaymentTerm + - value: applied_payments,applied_credit_notes,contact + name: AppliedPaymentsAppliedCreditNotesContact + - value: applied_payments,applied_credit_notes,contact,accounting_period + name: AppliedPaymentsAppliedCreditNotesContactAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,contact,accounting_period,payment_term + name: AppliedPaymentsAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: applied_payments,applied_credit_notes,contact,company + name: AppliedPaymentsAppliedCreditNotesContactCompany + - value: >- + applied_payments,applied_credit_notes,contact,company,accounting_period + name: AppliedPaymentsAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: applied_payments,applied_credit_notes,contact,company,employee + name: AppliedPaymentsAppliedCreditNotesContactCompanyEmployee + - value: >- + applied_payments,applied_credit_notes,contact,company,employee,accounting_period + name: >- + AppliedPaymentsAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,applied_credit_notes,contact,company,employee,payment_term + name: AppliedPaymentsAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: applied_payments,applied_credit_notes,contact,company,payment_term + name: AppliedPaymentsAppliedCreditNotesContactCompanyPaymentTerm + - value: applied_payments,applied_credit_notes,contact,employee + name: AppliedPaymentsAppliedCreditNotesContactEmployee + - value: >- + applied_payments,applied_credit_notes,contact,employee,accounting_period + name: AppliedPaymentsAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,applied_credit_notes,contact,employee,payment_term + name: AppliedPaymentsAppliedCreditNotesContactEmployeePaymentTerm + - value: applied_payments,applied_credit_notes,contact,payment_term + name: AppliedPaymentsAppliedCreditNotesContactPaymentTerm + - value: applied_payments,applied_credit_notes,employee + name: AppliedPaymentsAppliedCreditNotesEmployee + - value: applied_payments,applied_credit_notes,employee,accounting_period + name: AppliedPaymentsAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,employee,accounting_period,payment_term + name: AppliedPaymentsAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,applied_credit_notes,employee,payment_term + name: AppliedPaymentsAppliedCreditNotesEmployeePaymentTerm + - value: applied_payments,applied_credit_notes,payment_term + name: AppliedPaymentsAppliedCreditNotesPaymentTerm + - value: applied_payments,applied_vendor_credits + name: AppliedPaymentsAppliedVendorCredits + - value: applied_payments,applied_vendor_credits,accounting_period + name: AppliedPaymentsAppliedVendorCreditsAccountingPeriod + - value: applied_payments,applied_vendor_credits,accounting_period,payment_term + name: AppliedPaymentsAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: applied_payments,applied_vendor_credits,company + name: AppliedPaymentsAppliedVendorCreditsCompany + - value: applied_payments,applied_vendor_credits,company,accounting_period + name: AppliedPaymentsAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,applied_vendor_credits,company,accounting_period,payment_term + name: AppliedPaymentsAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: applied_payments,applied_vendor_credits,company,employee + name: AppliedPaymentsAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,applied_vendor_credits,company,employee,accounting_period + name: AppliedPaymentsAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,applied_vendor_credits,company,employee,payment_term + name: AppliedPaymentsAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: applied_payments,applied_vendor_credits,company,payment_term + name: AppliedPaymentsAppliedVendorCreditsCompanyPaymentTerm + - value: applied_payments,applied_vendor_credits,contact + name: AppliedPaymentsAppliedVendorCreditsContact + - value: applied_payments,applied_vendor_credits,contact,accounting_period + name: AppliedPaymentsAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,applied_vendor_credits,contact,accounting_period,payment_term + name: AppliedPaymentsAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: applied_payments,applied_vendor_credits,contact,company + name: AppliedPaymentsAppliedVendorCreditsContactCompany + - value: >- + applied_payments,applied_vendor_credits,contact,company,accounting_period + name: AppliedPaymentsAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: applied_payments,applied_vendor_credits,contact,company,employee + name: AppliedPaymentsAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,applied_vendor_credits,contact,company,employee,payment_term + name: AppliedPaymentsAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: applied_payments,applied_vendor_credits,contact,company,payment_term + name: AppliedPaymentsAppliedVendorCreditsContactCompanyPaymentTerm + - value: applied_payments,applied_vendor_credits,contact,employee + name: AppliedPaymentsAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,applied_vendor_credits,contact,employee,accounting_period + name: AppliedPaymentsAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,applied_vendor_credits,contact,employee,payment_term + name: AppliedPaymentsAppliedVendorCreditsContactEmployeePaymentTerm + - value: applied_payments,applied_vendor_credits,contact,payment_term + name: AppliedPaymentsAppliedVendorCreditsContactPaymentTerm + - value: applied_payments,applied_vendor_credits,employee + name: AppliedPaymentsAppliedVendorCreditsEmployee + - value: applied_payments,applied_vendor_credits,employee,accounting_period + name: AppliedPaymentsAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,applied_vendor_credits,employee,accounting_period,payment_term + name: AppliedPaymentsAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,applied_vendor_credits,employee,payment_term + name: AppliedPaymentsAppliedVendorCreditsEmployeePaymentTerm + - value: applied_payments,applied_vendor_credits,payment_term + name: AppliedPaymentsAppliedVendorCreditsPaymentTerm + - value: applied_payments,company + name: AppliedPaymentsCompany + - value: applied_payments,company,accounting_period + name: AppliedPaymentsCompanyAccountingPeriod + - value: applied_payments,company,accounting_period,payment_term + name: AppliedPaymentsCompanyAccountingPeriodPaymentTerm + - value: applied_payments,company,employee + name: AppliedPaymentsCompanyEmployee + - value: applied_payments,company,employee,accounting_period + name: AppliedPaymentsCompanyEmployeeAccountingPeriod + - value: applied_payments,company,employee,accounting_period,payment_term + name: AppliedPaymentsCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,company,employee,payment_term + name: AppliedPaymentsCompanyEmployeePaymentTerm + - value: applied_payments,company,payment_term + name: AppliedPaymentsCompanyPaymentTerm + - value: applied_payments,contact + name: AppliedPaymentsContact + - value: applied_payments,contact,accounting_period + name: AppliedPaymentsContactAccountingPeriod + - value: applied_payments,contact,accounting_period,payment_term + name: AppliedPaymentsContactAccountingPeriodPaymentTerm + - value: applied_payments,contact,company + name: AppliedPaymentsContactCompany + - value: applied_payments,contact,company,accounting_period + name: AppliedPaymentsContactCompanyAccountingPeriod + - value: applied_payments,contact,company,accounting_period,payment_term + name: AppliedPaymentsContactCompanyAccountingPeriodPaymentTerm + - value: applied_payments,contact,company,employee + name: AppliedPaymentsContactCompanyEmployee + - value: applied_payments,contact,company,employee,accounting_period + name: AppliedPaymentsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,contact,company,employee,accounting_period,payment_term + name: AppliedPaymentsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,contact,company,employee,payment_term + name: AppliedPaymentsContactCompanyEmployeePaymentTerm + - value: applied_payments,contact,company,payment_term + name: AppliedPaymentsContactCompanyPaymentTerm + - value: applied_payments,contact,employee + name: AppliedPaymentsContactEmployee + - value: applied_payments,contact,employee,accounting_period + name: AppliedPaymentsContactEmployeeAccountingPeriod + - value: applied_payments,contact,employee,accounting_period,payment_term + name: AppliedPaymentsContactEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,contact,employee,payment_term + name: AppliedPaymentsContactEmployeePaymentTerm + - value: applied_payments,contact,payment_term + name: AppliedPaymentsContactPaymentTerm + - value: applied_payments,employee + name: AppliedPaymentsEmployee + - value: applied_payments,employee,accounting_period + name: AppliedPaymentsEmployeeAccountingPeriod + - value: applied_payments,employee,accounting_period,payment_term + name: AppliedPaymentsEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,employee,payment_term + name: AppliedPaymentsEmployeePaymentTerm + - value: applied_payments,line_items + name: AppliedPaymentsLineItems + - value: applied_payments,line_items,accounting_period + name: AppliedPaymentsLineItemsAccountingPeriod + - value: applied_payments,line_items,accounting_period,payment_term + name: AppliedPaymentsLineItemsAccountingPeriodPaymentTerm + - value: applied_payments,line_items,applied_credit_notes + name: AppliedPaymentsLineItemsAppliedCreditNotes + - value: applied_payments,line_items,applied_credit_notes,accounting_period + name: AppliedPaymentsLineItemsAppliedCreditNotesAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,accounting_period,payment_term + name: AppliedPaymentsLineItemsAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits + name: AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCredits + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company + name: AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact + name: AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee + name: AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: applied_payments,line_items,applied_credit_notes,company + name: AppliedPaymentsLineItemsAppliedCreditNotesCompany + - value: >- + applied_payments,line_items,applied_credit_notes,company,accounting_period + name: AppliedPaymentsLineItemsAppliedCreditNotesCompanyAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: applied_payments,line_items,applied_credit_notes,company,employee + name: AppliedPaymentsLineItemsAppliedCreditNotesCompanyEmployee + - value: >- + applied_payments,line_items,applied_credit_notes,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,company,employee,payment_term + name: AppliedPaymentsLineItemsAppliedCreditNotesCompanyEmployeePaymentTerm + - value: applied_payments,line_items,applied_credit_notes,company,payment_term + name: AppliedPaymentsLineItemsAppliedCreditNotesCompanyPaymentTerm + - value: applied_payments,line_items,applied_credit_notes,contact + name: AppliedPaymentsLineItemsAppliedCreditNotesContact + - value: >- + applied_payments,line_items,applied_credit_notes,contact,accounting_period + name: AppliedPaymentsLineItemsAppliedCreditNotesContactAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: applied_payments,line_items,applied_credit_notes,contact,company + name: AppliedPaymentsLineItemsAppliedCreditNotesContactCompany + - value: >- + applied_payments,line_items,applied_credit_notes,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,contact,company,employee + name: AppliedPaymentsLineItemsAppliedCreditNotesContactCompanyEmployee + - value: >- + applied_payments,line_items,applied_credit_notes,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,contact,company,payment_term + name: AppliedPaymentsLineItemsAppliedCreditNotesContactCompanyPaymentTerm + - value: applied_payments,line_items,applied_credit_notes,contact,employee + name: AppliedPaymentsLineItemsAppliedCreditNotesContactEmployee + - value: >- + applied_payments,line_items,applied_credit_notes,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,contact,employee,payment_term + name: AppliedPaymentsLineItemsAppliedCreditNotesContactEmployeePaymentTerm + - value: applied_payments,line_items,applied_credit_notes,contact,payment_term + name: AppliedPaymentsLineItemsAppliedCreditNotesContactPaymentTerm + - value: applied_payments,line_items,applied_credit_notes,employee + name: AppliedPaymentsLineItemsAppliedCreditNotesEmployee + - value: >- + applied_payments,line_items,applied_credit_notes,employee,accounting_period + name: AppliedPaymentsLineItemsAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,line_items,applied_credit_notes,employee,payment_term + name: AppliedPaymentsLineItemsAppliedCreditNotesEmployeePaymentTerm + - value: applied_payments,line_items,applied_credit_notes,payment_term + name: AppliedPaymentsLineItemsAppliedCreditNotesPaymentTerm + - value: applied_payments,line_items,applied_vendor_credits + name: AppliedPaymentsLineItemsAppliedVendorCredits + - value: applied_payments,line_items,applied_vendor_credits,accounting_period + name: AppliedPaymentsLineItemsAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,line_items,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: applied_payments,line_items,applied_vendor_credits,company + name: AppliedPaymentsLineItemsAppliedVendorCreditsCompany + - value: >- + applied_payments,line_items,applied_vendor_credits,company,accounting_period + name: AppliedPaymentsLineItemsAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,line_items,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: applied_payments,line_items,applied_vendor_credits,company,employee + name: AppliedPaymentsLineItemsAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,line_items,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_vendor_credits,company,employee,payment_term + name: AppliedPaymentsLineItemsAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,applied_vendor_credits,company,payment_term + name: AppliedPaymentsLineItemsAppliedVendorCreditsCompanyPaymentTerm + - value: applied_payments,line_items,applied_vendor_credits,contact + name: AppliedPaymentsLineItemsAppliedVendorCreditsContact + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,accounting_period + name: AppliedPaymentsLineItemsAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: applied_payments,line_items,applied_vendor_credits,contact,company + name: AppliedPaymentsLineItemsAppliedVendorCreditsContactCompany + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,company,employee + name: AppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,company,payment_term + name: AppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyPaymentTerm + - value: applied_payments,line_items,applied_vendor_credits,contact,employee + name: AppliedPaymentsLineItemsAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,employee,payment_term + name: AppliedPaymentsLineItemsAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,payment_term + name: AppliedPaymentsLineItemsAppliedVendorCreditsContactPaymentTerm + - value: applied_payments,line_items,applied_vendor_credits,employee + name: AppliedPaymentsLineItemsAppliedVendorCreditsEmployee + - value: >- + applied_payments,line_items,applied_vendor_credits,employee,accounting_period + name: AppliedPaymentsLineItemsAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_vendor_credits,employee,payment_term + name: AppliedPaymentsLineItemsAppliedVendorCreditsEmployeePaymentTerm + - value: applied_payments,line_items,applied_vendor_credits,payment_term + name: AppliedPaymentsLineItemsAppliedVendorCreditsPaymentTerm + - value: applied_payments,line_items,company + name: AppliedPaymentsLineItemsCompany + - value: applied_payments,line_items,company,accounting_period + name: AppliedPaymentsLineItemsCompanyAccountingPeriod + - value: applied_payments,line_items,company,accounting_period,payment_term + name: AppliedPaymentsLineItemsCompanyAccountingPeriodPaymentTerm + - value: applied_payments,line_items,company,employee + name: AppliedPaymentsLineItemsCompanyEmployee + - value: applied_payments,line_items,company,employee,accounting_period + name: AppliedPaymentsLineItemsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,company,employee,accounting_period,payment_term + name: AppliedPaymentsLineItemsCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,line_items,company,employee,payment_term + name: AppliedPaymentsLineItemsCompanyEmployeePaymentTerm + - value: applied_payments,line_items,company,payment_term + name: AppliedPaymentsLineItemsCompanyPaymentTerm + - value: applied_payments,line_items,contact + name: AppliedPaymentsLineItemsContact + - value: applied_payments,line_items,contact,accounting_period + name: AppliedPaymentsLineItemsContactAccountingPeriod + - value: applied_payments,line_items,contact,accounting_period,payment_term + name: AppliedPaymentsLineItemsContactAccountingPeriodPaymentTerm + - value: applied_payments,line_items,contact,company + name: AppliedPaymentsLineItemsContactCompany + - value: applied_payments,line_items,contact,company,accounting_period + name: AppliedPaymentsLineItemsContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,contact,company,accounting_period,payment_term + name: AppliedPaymentsLineItemsContactCompanyAccountingPeriodPaymentTerm + - value: applied_payments,line_items,contact,company,employee + name: AppliedPaymentsLineItemsContactCompanyEmployee + - value: applied_payments,line_items,contact,company,employee,accounting_period + name: AppliedPaymentsLineItemsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,line_items,contact,company,employee,payment_term + name: AppliedPaymentsLineItemsContactCompanyEmployeePaymentTerm + - value: applied_payments,line_items,contact,company,payment_term + name: AppliedPaymentsLineItemsContactCompanyPaymentTerm + - value: applied_payments,line_items,contact,employee + name: AppliedPaymentsLineItemsContactEmployee + - value: applied_payments,line_items,contact,employee,accounting_period + name: AppliedPaymentsLineItemsContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,contact,employee,accounting_period,payment_term + name: AppliedPaymentsLineItemsContactEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,line_items,contact,employee,payment_term + name: AppliedPaymentsLineItemsContactEmployeePaymentTerm + - value: applied_payments,line_items,contact,payment_term + name: AppliedPaymentsLineItemsContactPaymentTerm + - value: applied_payments,line_items,employee + name: AppliedPaymentsLineItemsEmployee + - value: applied_payments,line_items,employee,accounting_period + name: AppliedPaymentsLineItemsEmployeeAccountingPeriod + - value: applied_payments,line_items,employee,accounting_period,payment_term + name: AppliedPaymentsLineItemsEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,line_items,employee,payment_term + name: AppliedPaymentsLineItemsEmployeePaymentTerm + - value: applied_payments,line_items,payment_term + name: AppliedPaymentsLineItemsPaymentTerm + - value: applied_payments,line_items,purchase_orders + name: AppliedPaymentsLineItemsPurchaseOrders + - value: applied_payments,line_items,purchase_orders,accounting_period + name: AppliedPaymentsLineItemsPurchaseOrdersAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,accounting_period,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersAccountingPeriodPaymentTerm + - value: applied_payments,line_items,purchase_orders,applied_credit_notes + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotes + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,company + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompany + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,company,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContact + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,employee + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: applied_payments,line_items,purchase_orders,applied_vendor_credits + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCredits + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,company + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContact + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,employee + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: applied_payments,line_items,purchase_orders,company + name: AppliedPaymentsLineItemsPurchaseOrdersCompany + - value: applied_payments,line_items,purchase_orders,company,accounting_period + name: AppliedPaymentsLineItemsPurchaseOrdersCompanyAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: applied_payments,line_items,purchase_orders,company,employee + name: AppliedPaymentsLineItemsPurchaseOrdersCompanyEmployee + - value: >- + applied_payments,line_items,purchase_orders,company,employee,accounting_period + name: AppliedPaymentsLineItemsPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,company,employee,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersCompanyEmployeePaymentTerm + - value: applied_payments,line_items,purchase_orders,company,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersCompanyPaymentTerm + - value: applied_payments,line_items,purchase_orders,contact + name: AppliedPaymentsLineItemsPurchaseOrdersContact + - value: applied_payments,line_items,purchase_orders,contact,accounting_period + name: AppliedPaymentsLineItemsPurchaseOrdersContactAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: applied_payments,line_items,purchase_orders,contact,company + name: AppliedPaymentsLineItemsPurchaseOrdersContactCompany + - value: >- + applied_payments,line_items,purchase_orders,contact,company,accounting_period + name: AppliedPaymentsLineItemsPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: applied_payments,line_items,purchase_orders,contact,company,employee + name: AppliedPaymentsLineItemsPurchaseOrdersContactCompanyEmployee + - value: >- + applied_payments,line_items,purchase_orders,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,contact,company,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersContactCompanyPaymentTerm + - value: applied_payments,line_items,purchase_orders,contact,employee + name: AppliedPaymentsLineItemsPurchaseOrdersContactEmployee + - value: >- + applied_payments,line_items,purchase_orders,contact,employee,accounting_period + name: AppliedPaymentsLineItemsPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,contact,employee,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersContactEmployeePaymentTerm + - value: applied_payments,line_items,purchase_orders,contact,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersContactPaymentTerm + - value: applied_payments,line_items,purchase_orders,employee + name: AppliedPaymentsLineItemsPurchaseOrdersEmployee + - value: applied_payments,line_items,purchase_orders,employee,accounting_period + name: AppliedPaymentsLineItemsPurchaseOrdersEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,line_items,purchase_orders,employee,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersEmployeePaymentTerm + - value: applied_payments,line_items,purchase_orders,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersPaymentTerm + - value: applied_payments,line_items,tracking_categories + name: AppliedPaymentsLineItemsTrackingCategories + - value: applied_payments,line_items,tracking_categories,accounting_period + name: AppliedPaymentsLineItemsTrackingCategoriesAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,accounting_period,payment_term + name: AppliedPaymentsLineItemsTrackingCategoriesAccountingPeriodPaymentTerm + - value: applied_payments,line_items,tracking_categories,applied_credit_notes + name: AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotes + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCredits + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,company + name: AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompany + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact + name: AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContact + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompany + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,employee + name: AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesPaymentTerm + - value: applied_payments,line_items,tracking_categories,applied_vendor_credits + name: AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCredits + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,company + name: AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompany + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact + name: AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContact + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,employee + name: AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsPaymentTerm + - value: applied_payments,line_items,tracking_categories,company + name: AppliedPaymentsLineItemsTrackingCategoriesCompany + - value: >- + applied_payments,line_items,tracking_categories,company,accounting_period + name: AppliedPaymentsLineItemsTrackingCategoriesCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: applied_payments,line_items,tracking_categories,company,employee + name: AppliedPaymentsLineItemsTrackingCategoriesCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,company,employee,payment_term + name: AppliedPaymentsLineItemsTrackingCategoriesCompanyEmployeePaymentTerm + - value: applied_payments,line_items,tracking_categories,company,payment_term + name: AppliedPaymentsLineItemsTrackingCategoriesCompanyPaymentTerm + - value: applied_payments,line_items,tracking_categories,contact + name: AppliedPaymentsLineItemsTrackingCategoriesContact + - value: >- + applied_payments,line_items,tracking_categories,contact,accounting_period + name: AppliedPaymentsLineItemsTrackingCategoriesContactAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesContactAccountingPeriodPaymentTerm + - value: applied_payments,line_items,tracking_categories,contact,company + name: AppliedPaymentsLineItemsTrackingCategoriesContactCompany + - value: >- + applied_payments,line_items,tracking_categories,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,contact,company,employee + name: AppliedPaymentsLineItemsTrackingCategoriesContactCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,contact,company,payment_term + name: AppliedPaymentsLineItemsTrackingCategoriesContactCompanyPaymentTerm + - value: applied_payments,line_items,tracking_categories,contact,employee + name: AppliedPaymentsLineItemsTrackingCategoriesContactEmployee + - value: >- + applied_payments,line_items,tracking_categories,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,contact,employee,payment_term + name: AppliedPaymentsLineItemsTrackingCategoriesContactEmployeePaymentTerm + - value: applied_payments,line_items,tracking_categories,contact,payment_term + name: AppliedPaymentsLineItemsTrackingCategoriesContactPaymentTerm + - value: applied_payments,line_items,tracking_categories,employee + name: AppliedPaymentsLineItemsTrackingCategoriesEmployee + - value: >- + applied_payments,line_items,tracking_categories,employee,accounting_period + name: AppliedPaymentsLineItemsTrackingCategoriesEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,line_items,tracking_categories,employee,payment_term + name: AppliedPaymentsLineItemsTrackingCategoriesEmployeePaymentTerm + - value: applied_payments,line_items,tracking_categories,payment_term + name: AppliedPaymentsLineItemsTrackingCategoriesPaymentTerm + - value: applied_payments,line_items,tracking_categories,purchase_orders + name: AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrders + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotes + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompany + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContact + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCredits + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContact + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,company + name: AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompany + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact + name: AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContact + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,company + name: AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompany + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,employee + name: AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,payment_term + name: AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersPaymentTerm + - value: applied_payments,payment_term + name: AppliedPaymentsPaymentTerm + - value: applied_payments,purchase_orders + name: AppliedPaymentsPurchaseOrders + - value: applied_payments,purchase_orders,accounting_period + name: AppliedPaymentsPurchaseOrdersAccountingPeriod + - value: applied_payments,purchase_orders,accounting_period,payment_term + name: AppliedPaymentsPurchaseOrdersAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,applied_credit_notes + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotes + - value: >- + applied_payments,purchase_orders,applied_credit_notes,accounting_period + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: applied_payments,purchase_orders,applied_credit_notes,company + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesCompany + - value: >- + applied_payments,purchase_orders,applied_credit_notes,company,accounting_period + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,applied_credit_notes,company,employee + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + applied_payments,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,company,payment_term + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: applied_payments,purchase_orders,applied_credit_notes,contact + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesContact + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,accounting_period + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,applied_credit_notes,contact,company + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,company,employee + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: applied_payments,purchase_orders,applied_credit_notes,contact,employee + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,payment_term + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: applied_payments,purchase_orders,applied_credit_notes,employee + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + applied_payments,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,employee,payment_term + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: applied_payments,purchase_orders,applied_credit_notes,payment_term + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: applied_payments,purchase_orders,applied_vendor_credits + name: AppliedPaymentsPurchaseOrdersAppliedVendorCredits + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,accounting_period + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,applied_vendor_credits,company + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,company,employee + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,company,payment_term + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: applied_payments,purchase_orders,applied_vendor_credits,contact + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContact + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,company + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,employee + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,payment_term + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: applied_payments,purchase_orders,applied_vendor_credits,employee + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,employee,payment_term + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: applied_payments,purchase_orders,applied_vendor_credits,payment_term + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: applied_payments,purchase_orders,company + name: AppliedPaymentsPurchaseOrdersCompany + - value: applied_payments,purchase_orders,company,accounting_period + name: AppliedPaymentsPurchaseOrdersCompanyAccountingPeriod + - value: >- + applied_payments,purchase_orders,company,accounting_period,payment_term + name: AppliedPaymentsPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,company,employee + name: AppliedPaymentsPurchaseOrdersCompanyEmployee + - value: applied_payments,purchase_orders,company,employee,accounting_period + name: AppliedPaymentsPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,company,employee,payment_term + name: AppliedPaymentsPurchaseOrdersCompanyEmployeePaymentTerm + - value: applied_payments,purchase_orders,company,payment_term + name: AppliedPaymentsPurchaseOrdersCompanyPaymentTerm + - value: applied_payments,purchase_orders,contact + name: AppliedPaymentsPurchaseOrdersContact + - value: applied_payments,purchase_orders,contact,accounting_period + name: AppliedPaymentsPurchaseOrdersContactAccountingPeriod + - value: >- + applied_payments,purchase_orders,contact,accounting_period,payment_term + name: AppliedPaymentsPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,contact,company + name: AppliedPaymentsPurchaseOrdersContactCompany + - value: applied_payments,purchase_orders,contact,company,accounting_period + name: AppliedPaymentsPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + applied_payments,purchase_orders,contact,company,accounting_period,payment_term + name: AppliedPaymentsPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,contact,company,employee + name: AppliedPaymentsPurchaseOrdersContactCompanyEmployee + - value: >- + applied_payments,purchase_orders,contact,company,employee,accounting_period + name: AppliedPaymentsPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,contact,company,employee,payment_term + name: AppliedPaymentsPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: applied_payments,purchase_orders,contact,company,payment_term + name: AppliedPaymentsPurchaseOrdersContactCompanyPaymentTerm + - value: applied_payments,purchase_orders,contact,employee + name: AppliedPaymentsPurchaseOrdersContactEmployee + - value: applied_payments,purchase_orders,contact,employee,accounting_period + name: AppliedPaymentsPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,contact,employee,payment_term + name: AppliedPaymentsPurchaseOrdersContactEmployeePaymentTerm + - value: applied_payments,purchase_orders,contact,payment_term + name: AppliedPaymentsPurchaseOrdersContactPaymentTerm + - value: applied_payments,purchase_orders,employee + name: AppliedPaymentsPurchaseOrdersEmployee + - value: applied_payments,purchase_orders,employee,accounting_period + name: AppliedPaymentsPurchaseOrdersEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,employee,accounting_period,payment_term + name: AppliedPaymentsPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,employee,payment_term + name: AppliedPaymentsPurchaseOrdersEmployeePaymentTerm + - value: applied_payments,purchase_orders,payment_term + name: AppliedPaymentsPurchaseOrdersPaymentTerm + - value: applied_payments,tracking_categories + name: AppliedPaymentsTrackingCategories + - value: applied_payments,tracking_categories,accounting_period + name: AppliedPaymentsTrackingCategoriesAccountingPeriod + - value: applied_payments,tracking_categories,accounting_period,payment_term + name: AppliedPaymentsTrackingCategoriesAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,applied_credit_notes + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotes + - value: >- + applied_payments,tracking_categories,applied_credit_notes,accounting_period + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCredits + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: applied_payments,tracking_categories,applied_credit_notes,company + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesCompany + - value: >- + applied_payments,tracking_categories,applied_credit_notes,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,company,employee + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployee + - value: >- + applied_payments,tracking_categories,applied_credit_notes,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,company,payment_term + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyPaymentTerm + - value: applied_payments,tracking_categories,applied_credit_notes,contact + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesContact + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,company + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompany + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,company,employee + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployee + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,employee + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactEmployee + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,payment_term + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactPaymentTerm + - value: applied_payments,tracking_categories,applied_credit_notes,employee + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesEmployee + - value: >- + applied_payments,tracking_categories,applied_credit_notes,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,employee,payment_term + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesEmployeePaymentTerm + - value: applied_payments,tracking_categories,applied_credit_notes,payment_term + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesPaymentTerm + - value: applied_payments,tracking_categories,applied_vendor_credits + name: AppliedPaymentsTrackingCategoriesAppliedVendorCredits + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,accounting_period + name: AppliedPaymentsTrackingCategoriesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,applied_vendor_credits,company + name: AppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompany + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,company,employee + name: AppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyPaymentTerm + - value: applied_payments,tracking_categories,applied_vendor_credits,contact + name: AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContact + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,company + name: AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,employee + name: AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactPaymentTerm + - value: applied_payments,tracking_categories,applied_vendor_credits,employee + name: AppliedPaymentsTrackingCategoriesAppliedVendorCreditsEmployee + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,payment_term + name: AppliedPaymentsTrackingCategoriesAppliedVendorCreditsPaymentTerm + - value: applied_payments,tracking_categories,company + name: AppliedPaymentsTrackingCategoriesCompany + - value: applied_payments,tracking_categories,company,accounting_period + name: AppliedPaymentsTrackingCategoriesCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,company,accounting_period,payment_term + name: AppliedPaymentsTrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,company,employee + name: AppliedPaymentsTrackingCategoriesCompanyEmployee + - value: >- + applied_payments,tracking_categories,company,employee,accounting_period + name: AppliedPaymentsTrackingCategoriesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,company,employee,payment_term + name: AppliedPaymentsTrackingCategoriesCompanyEmployeePaymentTerm + - value: applied_payments,tracking_categories,company,payment_term + name: AppliedPaymentsTrackingCategoriesCompanyPaymentTerm + - value: applied_payments,tracking_categories,contact + name: AppliedPaymentsTrackingCategoriesContact + - value: applied_payments,tracking_categories,contact,accounting_period + name: AppliedPaymentsTrackingCategoriesContactAccountingPeriod + - value: >- + applied_payments,tracking_categories,contact,accounting_period,payment_term + name: AppliedPaymentsTrackingCategoriesContactAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,contact,company + name: AppliedPaymentsTrackingCategoriesContactCompany + - value: applied_payments,tracking_categories,contact,company,accounting_period + name: AppliedPaymentsTrackingCategoriesContactCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesContactCompanyAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,contact,company,employee + name: AppliedPaymentsTrackingCategoriesContactCompanyEmployee + - value: >- + applied_payments,tracking_categories,contact,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,contact,company,employee,payment_term + name: AppliedPaymentsTrackingCategoriesContactCompanyEmployeePaymentTerm + - value: applied_payments,tracking_categories,contact,company,payment_term + name: AppliedPaymentsTrackingCategoriesContactCompanyPaymentTerm + - value: applied_payments,tracking_categories,contact,employee + name: AppliedPaymentsTrackingCategoriesContactEmployee + - value: >- + applied_payments,tracking_categories,contact,employee,accounting_period + name: AppliedPaymentsTrackingCategoriesContactEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesContactEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,contact,employee,payment_term + name: AppliedPaymentsTrackingCategoriesContactEmployeePaymentTerm + - value: applied_payments,tracking_categories,contact,payment_term + name: AppliedPaymentsTrackingCategoriesContactPaymentTerm + - value: applied_payments,tracking_categories,employee + name: AppliedPaymentsTrackingCategoriesEmployee + - value: applied_payments,tracking_categories,employee,accounting_period + name: AppliedPaymentsTrackingCategoriesEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,employee,accounting_period,payment_term + name: AppliedPaymentsTrackingCategoriesEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,employee,payment_term + name: AppliedPaymentsTrackingCategoriesEmployeePaymentTerm + - value: applied_payments,tracking_categories,payment_term + name: AppliedPaymentsTrackingCategoriesPaymentTerm + - value: applied_payments,tracking_categories,purchase_orders + name: AppliedPaymentsTrackingCategoriesPurchaseOrders + - value: applied_payments,tracking_categories,purchase_orders,accounting_period + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotes + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompany + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContact + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCredits + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContact + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: applied_payments,tracking_categories,purchase_orders,company + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersCompany + - value: >- + applied_payments,tracking_categories,purchase_orders,company,accounting_period + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,purchase_orders,company,employee + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,company,payment_term + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyPaymentTerm + - value: applied_payments,tracking_categories,purchase_orders,contact + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersContact + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,accounting_period + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersContactAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,purchase_orders,contact,company + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompany + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,company,employee + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyPaymentTerm + - value: applied_payments,tracking_categories,purchase_orders,contact,employee + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersContactEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,payment_term + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersContactPaymentTerm + - value: applied_payments,tracking_categories,purchase_orders,employee + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,employee,payment_term + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersEmployeePaymentTerm + - value: applied_payments,tracking_categories,purchase_orders,payment_term + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersPaymentTerm + - applied_vendor_credits + - value: applied_vendor_credits,accounting_period + name: AppliedVendorCreditsAccountingPeriod + - value: applied_vendor_credits,accounting_period,payment_term + name: AppliedVendorCreditsAccountingPeriodPaymentTerm + - value: applied_vendor_credits,company + name: AppliedVendorCreditsCompany + - value: applied_vendor_credits,company,accounting_period + name: AppliedVendorCreditsCompanyAccountingPeriod + - value: applied_vendor_credits,company,accounting_period,payment_term + name: AppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: applied_vendor_credits,company,employee + name: AppliedVendorCreditsCompanyEmployee + - value: applied_vendor_credits,company,employee,accounting_period + name: AppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: applied_vendor_credits,company,employee,accounting_period,payment_term + name: AppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_vendor_credits,company,employee,payment_term + name: AppliedVendorCreditsCompanyEmployeePaymentTerm + - value: applied_vendor_credits,company,payment_term + name: AppliedVendorCreditsCompanyPaymentTerm + - value: applied_vendor_credits,contact + name: AppliedVendorCreditsContact + - value: applied_vendor_credits,contact,accounting_period + name: AppliedVendorCreditsContactAccountingPeriod + - value: applied_vendor_credits,contact,accounting_period,payment_term + name: AppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: applied_vendor_credits,contact,company + name: AppliedVendorCreditsContactCompany + - value: applied_vendor_credits,contact,company,accounting_period + name: AppliedVendorCreditsContactCompanyAccountingPeriod + - value: applied_vendor_credits,contact,company,accounting_period,payment_term + name: AppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: applied_vendor_credits,contact,company,employee + name: AppliedVendorCreditsContactCompanyEmployee + - value: applied_vendor_credits,contact,company,employee,accounting_period + name: AppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: AppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_vendor_credits,contact,company,employee,payment_term + name: AppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: applied_vendor_credits,contact,company,payment_term + name: AppliedVendorCreditsContactCompanyPaymentTerm + - value: applied_vendor_credits,contact,employee + name: AppliedVendorCreditsContactEmployee + - value: applied_vendor_credits,contact,employee,accounting_period + name: AppliedVendorCreditsContactEmployeeAccountingPeriod + - value: applied_vendor_credits,contact,employee,accounting_period,payment_term + name: AppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: applied_vendor_credits,contact,employee,payment_term + name: AppliedVendorCreditsContactEmployeePaymentTerm + - value: applied_vendor_credits,contact,payment_term + name: AppliedVendorCreditsContactPaymentTerm + - value: applied_vendor_credits,employee + name: AppliedVendorCreditsEmployee + - value: applied_vendor_credits,employee,accounting_period + name: AppliedVendorCreditsEmployeeAccountingPeriod + - value: applied_vendor_credits,employee,accounting_period,payment_term + name: AppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: applied_vendor_credits,employee,payment_term + name: AppliedVendorCreditsEmployeePaymentTerm + - value: applied_vendor_credits,payment_term + name: AppliedVendorCreditsPaymentTerm + - company + - value: company,accounting_period + name: CompanyAccountingPeriod + - value: company,accounting_period,payment_term + name: CompanyAccountingPeriodPaymentTerm + - value: company,employee + name: CompanyEmployee + - value: company,employee,accounting_period + name: CompanyEmployeeAccountingPeriod + - value: company,employee,accounting_period,payment_term + name: CompanyEmployeeAccountingPeriodPaymentTerm + - value: company,employee,payment_term + name: CompanyEmployeePaymentTerm + - value: company,payment_term + name: CompanyPaymentTerm + - contact + - value: contact,accounting_period + name: ContactAccountingPeriod + - value: contact,accounting_period,payment_term + name: ContactAccountingPeriodPaymentTerm + - value: contact,company + name: ContactCompany + - value: contact,company,accounting_period + name: ContactCompanyAccountingPeriod + - value: contact,company,accounting_period,payment_term + name: ContactCompanyAccountingPeriodPaymentTerm + - value: contact,company,employee + name: ContactCompanyEmployee + - value: contact,company,employee,accounting_period + name: ContactCompanyEmployeeAccountingPeriod + - value: contact,company,employee,accounting_period,payment_term + name: ContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: contact,company,employee,payment_term + name: ContactCompanyEmployeePaymentTerm + - value: contact,company,payment_term + name: ContactCompanyPaymentTerm + - value: contact,employee + name: ContactEmployee + - value: contact,employee,accounting_period + name: ContactEmployeeAccountingPeriod + - value: contact,employee,accounting_period,payment_term + name: ContactEmployeeAccountingPeriodPaymentTerm + - value: contact,employee,payment_term + name: ContactEmployeePaymentTerm + - value: contact,payment_term + name: ContactPaymentTerm + - employee + - value: employee,accounting_period + name: EmployeeAccountingPeriod + - value: employee,accounting_period,payment_term + name: EmployeeAccountingPeriodPaymentTerm + - value: employee,payment_term + name: EmployeePaymentTerm + - line_items + - value: line_items,accounting_period + name: LineItemsAccountingPeriod + - value: line_items,accounting_period,payment_term + name: LineItemsAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes + name: LineItemsAppliedCreditNotes + - value: line_items,applied_credit_notes,accounting_period + name: LineItemsAppliedCreditNotesAccountingPeriod + - value: line_items,applied_credit_notes,accounting_period,payment_term + name: LineItemsAppliedCreditNotesAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,applied_vendor_credits + name: LineItemsAppliedCreditNotesAppliedVendorCredits + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,accounting_period + name: LineItemsAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,applied_vendor_credits,company + name: LineItemsAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: LineItemsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,company,employee + name: LineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,company,payment_term + name: LineItemsAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: line_items,applied_credit_notes,applied_vendor_credits,contact + name: LineItemsAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: LineItemsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,applied_vendor_credits,contact,company + name: LineItemsAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: LineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,employee + name: LineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: LineItemsAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: line_items,applied_credit_notes,applied_vendor_credits,employee + name: LineItemsAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: LineItemsAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: line_items,applied_credit_notes,applied_vendor_credits,payment_term + name: LineItemsAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: line_items,applied_credit_notes,company + name: LineItemsAppliedCreditNotesCompany + - value: line_items,applied_credit_notes,company,accounting_period + name: LineItemsAppliedCreditNotesCompanyAccountingPeriod + - value: line_items,applied_credit_notes,company,accounting_period,payment_term + name: LineItemsAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,company,employee + name: LineItemsAppliedCreditNotesCompanyEmployee + - value: line_items,applied_credit_notes,company,employee,accounting_period + name: LineItemsAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + line_items,applied_credit_notes,company,employee,accounting_period,payment_term + name: LineItemsAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,company,employee,payment_term + name: LineItemsAppliedCreditNotesCompanyEmployeePaymentTerm + - value: line_items,applied_credit_notes,company,payment_term + name: LineItemsAppliedCreditNotesCompanyPaymentTerm + - value: line_items,applied_credit_notes,contact + name: LineItemsAppliedCreditNotesContact + - value: line_items,applied_credit_notes,contact,accounting_period + name: LineItemsAppliedCreditNotesContactAccountingPeriod + - value: line_items,applied_credit_notes,contact,accounting_period,payment_term + name: LineItemsAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,contact,company + name: LineItemsAppliedCreditNotesContactCompany + - value: line_items,applied_credit_notes,contact,company,accounting_period + name: LineItemsAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + line_items,applied_credit_notes,contact,company,accounting_period,payment_term + name: LineItemsAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,contact,company,employee + name: LineItemsAppliedCreditNotesContactCompanyEmployee + - value: >- + line_items,applied_credit_notes,contact,company,employee,accounting_period + name: LineItemsAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,contact,company,employee,payment_term + name: LineItemsAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: line_items,applied_credit_notes,contact,company,payment_term + name: LineItemsAppliedCreditNotesContactCompanyPaymentTerm + - value: line_items,applied_credit_notes,contact,employee + name: LineItemsAppliedCreditNotesContactEmployee + - value: line_items,applied_credit_notes,contact,employee,accounting_period + name: LineItemsAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + line_items,applied_credit_notes,contact,employee,accounting_period,payment_term + name: LineItemsAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,contact,employee,payment_term + name: LineItemsAppliedCreditNotesContactEmployeePaymentTerm + - value: line_items,applied_credit_notes,contact,payment_term + name: LineItemsAppliedCreditNotesContactPaymentTerm + - value: line_items,applied_credit_notes,employee + name: LineItemsAppliedCreditNotesEmployee + - value: line_items,applied_credit_notes,employee,accounting_period + name: LineItemsAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + line_items,applied_credit_notes,employee,accounting_period,payment_term + name: LineItemsAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,employee,payment_term + name: LineItemsAppliedCreditNotesEmployeePaymentTerm + - value: line_items,applied_credit_notes,payment_term + name: LineItemsAppliedCreditNotesPaymentTerm + - value: line_items,applied_vendor_credits + name: LineItemsAppliedVendorCredits + - value: line_items,applied_vendor_credits,accounting_period + name: LineItemsAppliedVendorCreditsAccountingPeriod + - value: line_items,applied_vendor_credits,accounting_period,payment_term + name: LineItemsAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: line_items,applied_vendor_credits,company + name: LineItemsAppliedVendorCreditsCompany + - value: line_items,applied_vendor_credits,company,accounting_period + name: LineItemsAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + line_items,applied_vendor_credits,company,accounting_period,payment_term + name: LineItemsAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: line_items,applied_vendor_credits,company,employee + name: LineItemsAppliedVendorCreditsCompanyEmployee + - value: line_items,applied_vendor_credits,company,employee,accounting_period + name: LineItemsAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + line_items,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + LineItemsAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: line_items,applied_vendor_credits,company,employee,payment_term + name: LineItemsAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: line_items,applied_vendor_credits,company,payment_term + name: LineItemsAppliedVendorCreditsCompanyPaymentTerm + - value: line_items,applied_vendor_credits,contact + name: LineItemsAppliedVendorCreditsContact + - value: line_items,applied_vendor_credits,contact,accounting_period + name: LineItemsAppliedVendorCreditsContactAccountingPeriod + - value: >- + line_items,applied_vendor_credits,contact,accounting_period,payment_term + name: LineItemsAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: line_items,applied_vendor_credits,contact,company + name: LineItemsAppliedVendorCreditsContactCompany + - value: line_items,applied_vendor_credits,contact,company,accounting_period + name: LineItemsAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + line_items,applied_vendor_credits,contact,company,accounting_period,payment_term + name: LineItemsAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: line_items,applied_vendor_credits,contact,company,employee + name: LineItemsAppliedVendorCreditsContactCompanyEmployee + - value: >- + line_items,applied_vendor_credits,contact,company,employee,accounting_period + name: LineItemsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,applied_vendor_credits,contact,company,employee,payment_term + name: LineItemsAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: line_items,applied_vendor_credits,contact,company,payment_term + name: LineItemsAppliedVendorCreditsContactCompanyPaymentTerm + - value: line_items,applied_vendor_credits,contact,employee + name: LineItemsAppliedVendorCreditsContactEmployee + - value: line_items,applied_vendor_credits,contact,employee,accounting_period + name: LineItemsAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + line_items,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + LineItemsAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: line_items,applied_vendor_credits,contact,employee,payment_term + name: LineItemsAppliedVendorCreditsContactEmployeePaymentTerm + - value: line_items,applied_vendor_credits,contact,payment_term + name: LineItemsAppliedVendorCreditsContactPaymentTerm + - value: line_items,applied_vendor_credits,employee + name: LineItemsAppliedVendorCreditsEmployee + - value: line_items,applied_vendor_credits,employee,accounting_period + name: LineItemsAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + line_items,applied_vendor_credits,employee,accounting_period,payment_term + name: LineItemsAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: line_items,applied_vendor_credits,employee,payment_term + name: LineItemsAppliedVendorCreditsEmployeePaymentTerm + - value: line_items,applied_vendor_credits,payment_term + name: LineItemsAppliedVendorCreditsPaymentTerm + - value: line_items,company + name: LineItemsCompany + - value: line_items,company,accounting_period + name: LineItemsCompanyAccountingPeriod + - value: line_items,company,accounting_period,payment_term + name: LineItemsCompanyAccountingPeriodPaymentTerm + - value: line_items,company,employee + name: LineItemsCompanyEmployee + - value: line_items,company,employee,accounting_period + name: LineItemsCompanyEmployeeAccountingPeriod + - value: line_items,company,employee,accounting_period,payment_term + name: LineItemsCompanyEmployeeAccountingPeriodPaymentTerm + - value: line_items,company,employee,payment_term + name: LineItemsCompanyEmployeePaymentTerm + - value: line_items,company,payment_term + name: LineItemsCompanyPaymentTerm + - value: line_items,contact + name: LineItemsContact + - value: line_items,contact,accounting_period + name: LineItemsContactAccountingPeriod + - value: line_items,contact,accounting_period,payment_term + name: LineItemsContactAccountingPeriodPaymentTerm + - value: line_items,contact,company + name: LineItemsContactCompany + - value: line_items,contact,company,accounting_period + name: LineItemsContactCompanyAccountingPeriod + - value: line_items,contact,company,accounting_period,payment_term + name: LineItemsContactCompanyAccountingPeriodPaymentTerm + - value: line_items,contact,company,employee + name: LineItemsContactCompanyEmployee + - value: line_items,contact,company,employee,accounting_period + name: LineItemsContactCompanyEmployeeAccountingPeriod + - value: line_items,contact,company,employee,accounting_period,payment_term + name: LineItemsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: line_items,contact,company,employee,payment_term + name: LineItemsContactCompanyEmployeePaymentTerm + - value: line_items,contact,company,payment_term + name: LineItemsContactCompanyPaymentTerm + - value: line_items,contact,employee + name: LineItemsContactEmployee + - value: line_items,contact,employee,accounting_period + name: LineItemsContactEmployeeAccountingPeriod + - value: line_items,contact,employee,accounting_period,payment_term + name: LineItemsContactEmployeeAccountingPeriodPaymentTerm + - value: line_items,contact,employee,payment_term + name: LineItemsContactEmployeePaymentTerm + - value: line_items,contact,payment_term + name: LineItemsContactPaymentTerm + - value: line_items,employee + name: LineItemsEmployee + - value: line_items,employee,accounting_period + name: LineItemsEmployeeAccountingPeriod + - value: line_items,employee,accounting_period,payment_term + name: LineItemsEmployeeAccountingPeriodPaymentTerm + - value: line_items,employee,payment_term + name: LineItemsEmployeePaymentTerm + - value: line_items,payment_term + name: LineItemsPaymentTerm + - value: line_items,purchase_orders + name: LineItemsPurchaseOrders + - value: line_items,purchase_orders,accounting_period + name: LineItemsPurchaseOrdersAccountingPeriod + - value: line_items,purchase_orders,accounting_period,payment_term + name: LineItemsPurchaseOrdersAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,applied_credit_notes + name: LineItemsPurchaseOrdersAppliedCreditNotes + - value: line_items,purchase_orders,applied_credit_notes,accounting_period + name: LineItemsPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: LineItemsPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,applied_vendor_credits + name: LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,company + name: LineItemsPurchaseOrdersAppliedCreditNotesCompany + - value: >- + line_items,purchase_orders,applied_credit_notes,company,accounting_period + name: LineItemsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,company,employee + name: LineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,company,employee,payment_term + name: LineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,company,payment_term + name: LineItemsPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,contact + name: LineItemsPurchaseOrdersAppliedCreditNotesContact + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,accounting_period + name: LineItemsPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,contact,company + name: LineItemsPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,company,employee + name: LineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,company,payment_term + name: LineItemsPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,contact,employee + name: LineItemsPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: LineItemsPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,contact,payment_term + name: LineItemsPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,employee + name: LineItemsPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + line_items,purchase_orders,applied_credit_notes,employee,accounting_period + name: LineItemsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,employee,payment_term + name: LineItemsPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,payment_term + name: LineItemsPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits + name: LineItemsPurchaseOrdersAppliedVendorCredits + - value: line_items,purchase_orders,applied_vendor_credits,accounting_period + name: LineItemsPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + line_items,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: LineItemsPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits,company + name: LineItemsPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + line_items,purchase_orders,applied_vendor_credits,company,accounting_period + name: LineItemsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + line_items,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits,company,employee + name: LineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: LineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits,company,payment_term + name: LineItemsPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits,contact + name: LineItemsPurchaseOrdersAppliedVendorCreditsContact + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,accounting_period + name: LineItemsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits,contact,company + name: LineItemsPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,company,employee + name: LineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: LineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits,contact,employee + name: LineItemsPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: LineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits,contact,payment_term + name: LineItemsPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits,employee + name: LineItemsPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + line_items,purchase_orders,applied_vendor_credits,employee,accounting_period + name: LineItemsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_vendor_credits,employee,payment_term + name: LineItemsPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits,payment_term + name: LineItemsPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: line_items,purchase_orders,company + name: LineItemsPurchaseOrdersCompany + - value: line_items,purchase_orders,company,accounting_period + name: LineItemsPurchaseOrdersCompanyAccountingPeriod + - value: line_items,purchase_orders,company,accounting_period,payment_term + name: LineItemsPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,company,employee + name: LineItemsPurchaseOrdersCompanyEmployee + - value: line_items,purchase_orders,company,employee,accounting_period + name: LineItemsPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,company,employee,accounting_period,payment_term + name: LineItemsPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,company,employee,payment_term + name: LineItemsPurchaseOrdersCompanyEmployeePaymentTerm + - value: line_items,purchase_orders,company,payment_term + name: LineItemsPurchaseOrdersCompanyPaymentTerm + - value: line_items,purchase_orders,contact + name: LineItemsPurchaseOrdersContact + - value: line_items,purchase_orders,contact,accounting_period + name: LineItemsPurchaseOrdersContactAccountingPeriod + - value: line_items,purchase_orders,contact,accounting_period,payment_term + name: LineItemsPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,contact,company + name: LineItemsPurchaseOrdersContactCompany + - value: line_items,purchase_orders,contact,company,accounting_period + name: LineItemsPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + line_items,purchase_orders,contact,company,accounting_period,payment_term + name: LineItemsPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,contact,company,employee + name: LineItemsPurchaseOrdersContactCompanyEmployee + - value: line_items,purchase_orders,contact,company,employee,accounting_period + name: LineItemsPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,contact,company,employee,payment_term + name: LineItemsPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: line_items,purchase_orders,contact,company,payment_term + name: LineItemsPurchaseOrdersContactCompanyPaymentTerm + - value: line_items,purchase_orders,contact,employee + name: LineItemsPurchaseOrdersContactEmployee + - value: line_items,purchase_orders,contact,employee,accounting_period + name: LineItemsPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,contact,employee,accounting_period,payment_term + name: LineItemsPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,contact,employee,payment_term + name: LineItemsPurchaseOrdersContactEmployeePaymentTerm + - value: line_items,purchase_orders,contact,payment_term + name: LineItemsPurchaseOrdersContactPaymentTerm + - value: line_items,purchase_orders,employee + name: LineItemsPurchaseOrdersEmployee + - value: line_items,purchase_orders,employee,accounting_period + name: LineItemsPurchaseOrdersEmployeeAccountingPeriod + - value: line_items,purchase_orders,employee,accounting_period,payment_term + name: LineItemsPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,employee,payment_term + name: LineItemsPurchaseOrdersEmployeePaymentTerm + - value: line_items,purchase_orders,payment_term + name: LineItemsPurchaseOrdersPaymentTerm + - value: line_items,tracking_categories + name: LineItemsTrackingCategories + - value: line_items,tracking_categories,accounting_period + name: LineItemsTrackingCategoriesAccountingPeriod + - value: line_items,tracking_categories,accounting_period,payment_term + name: LineItemsTrackingCategoriesAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,applied_credit_notes + name: LineItemsTrackingCategoriesAppliedCreditNotes + - value: line_items,tracking_categories,applied_credit_notes,accounting_period + name: LineItemsTrackingCategoriesAppliedCreditNotesAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits + name: LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCredits + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: line_items,tracking_categories,applied_credit_notes,company + name: LineItemsTrackingCategoriesAppliedCreditNotesCompany + - value: >- + line_items,tracking_categories,applied_credit_notes,company,accounting_period + name: LineItemsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,applied_credit_notes,company,employee + name: LineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployee + - value: >- + line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,company,payment_term + name: LineItemsTrackingCategoriesAppliedCreditNotesCompanyPaymentTerm + - value: line_items,tracking_categories,applied_credit_notes,contact + name: LineItemsTrackingCategoriesAppliedCreditNotesContact + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,accounting_period + name: LineItemsTrackingCategoriesAppliedCreditNotesContactAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,applied_credit_notes,contact,company + name: LineItemsTrackingCategoriesAppliedCreditNotesContactCompany + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,company,employee + name: LineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployee + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,company,payment_term + name: LineItemsTrackingCategoriesAppliedCreditNotesContactCompanyPaymentTerm + - value: line_items,tracking_categories,applied_credit_notes,contact,employee + name: LineItemsTrackingCategoriesAppliedCreditNotesContactEmployee + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,payment_term + name: LineItemsTrackingCategoriesAppliedCreditNotesContactPaymentTerm + - value: line_items,tracking_categories,applied_credit_notes,employee + name: LineItemsTrackingCategoriesAppliedCreditNotesEmployee + - value: >- + line_items,tracking_categories,applied_credit_notes,employee,accounting_period + name: LineItemsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,employee,payment_term + name: LineItemsTrackingCategoriesAppliedCreditNotesEmployeePaymentTerm + - value: line_items,tracking_categories,applied_credit_notes,payment_term + name: LineItemsTrackingCategoriesAppliedCreditNotesPaymentTerm + - value: line_items,tracking_categories,applied_vendor_credits + name: LineItemsTrackingCategoriesAppliedVendorCredits + - value: >- + line_items,tracking_categories,applied_vendor_credits,accounting_period + name: LineItemsTrackingCategoriesAppliedVendorCreditsAccountingPeriod + - value: >- + line_items,tracking_categories,applied_vendor_credits,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,applied_vendor_credits,company + name: LineItemsTrackingCategoriesAppliedVendorCreditsCompany + - value: >- + line_items,tracking_categories,applied_vendor_credits,company,accounting_period + name: LineItemsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,applied_vendor_credits,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,applied_vendor_credits,company,employee + name: LineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployee + - value: >- + line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_vendor_credits,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_vendor_credits,company,payment_term + name: LineItemsTrackingCategoriesAppliedVendorCreditsCompanyPaymentTerm + - value: line_items,tracking_categories,applied_vendor_credits,contact + name: LineItemsTrackingCategoriesAppliedVendorCreditsContact + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,accounting_period + name: LineItemsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriod + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,applied_vendor_credits,contact,company + name: LineItemsTrackingCategoriesAppliedVendorCreditsContactCompany + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,company,employee + name: LineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployee + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,company,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyPaymentTerm + - value: line_items,tracking_categories,applied_vendor_credits,contact,employee + name: LineItemsTrackingCategoriesAppliedVendorCreditsContactEmployee + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,payment_term + name: LineItemsTrackingCategoriesAppliedVendorCreditsContactPaymentTerm + - value: line_items,tracking_categories,applied_vendor_credits,employee + name: LineItemsTrackingCategoriesAppliedVendorCreditsEmployee + - value: >- + line_items,tracking_categories,applied_vendor_credits,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_vendor_credits,employee,payment_term + name: LineItemsTrackingCategoriesAppliedVendorCreditsEmployeePaymentTerm + - value: line_items,tracking_categories,applied_vendor_credits,payment_term + name: LineItemsTrackingCategoriesAppliedVendorCreditsPaymentTerm + - value: line_items,tracking_categories,company + name: LineItemsTrackingCategoriesCompany + - value: line_items,tracking_categories,company,accounting_period + name: LineItemsTrackingCategoriesCompanyAccountingPeriod + - value: line_items,tracking_categories,company,accounting_period,payment_term + name: LineItemsTrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,company,employee + name: LineItemsTrackingCategoriesCompanyEmployee + - value: line_items,tracking_categories,company,employee,accounting_period + name: LineItemsTrackingCategoriesCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,company,employee,accounting_period,payment_term + name: LineItemsTrackingCategoriesCompanyEmployeeAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,company,employee,payment_term + name: LineItemsTrackingCategoriesCompanyEmployeePaymentTerm + - value: line_items,tracking_categories,company,payment_term + name: LineItemsTrackingCategoriesCompanyPaymentTerm + - value: line_items,tracking_categories,contact + name: LineItemsTrackingCategoriesContact + - value: line_items,tracking_categories,contact,accounting_period + name: LineItemsTrackingCategoriesContactAccountingPeriod + - value: line_items,tracking_categories,contact,accounting_period,payment_term + name: LineItemsTrackingCategoriesContactAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,contact,company + name: LineItemsTrackingCategoriesContactCompany + - value: line_items,tracking_categories,contact,company,accounting_period + name: LineItemsTrackingCategoriesContactCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,contact,company,accounting_period,payment_term + name: LineItemsTrackingCategoriesContactCompanyAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,contact,company,employee + name: LineItemsTrackingCategoriesContactCompanyEmployee + - value: >- + line_items,tracking_categories,contact,company,employee,accounting_period + name: LineItemsTrackingCategoriesContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,contact,company,employee,payment_term + name: LineItemsTrackingCategoriesContactCompanyEmployeePaymentTerm + - value: line_items,tracking_categories,contact,company,payment_term + name: LineItemsTrackingCategoriesContactCompanyPaymentTerm + - value: line_items,tracking_categories,contact,employee + name: LineItemsTrackingCategoriesContactEmployee + - value: line_items,tracking_categories,contact,employee,accounting_period + name: LineItemsTrackingCategoriesContactEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,contact,employee,accounting_period,payment_term + name: LineItemsTrackingCategoriesContactEmployeeAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,contact,employee,payment_term + name: LineItemsTrackingCategoriesContactEmployeePaymentTerm + - value: line_items,tracking_categories,contact,payment_term + name: LineItemsTrackingCategoriesContactPaymentTerm + - value: line_items,tracking_categories,employee + name: LineItemsTrackingCategoriesEmployee + - value: line_items,tracking_categories,employee,accounting_period + name: LineItemsTrackingCategoriesEmployeeAccountingPeriod + - value: line_items,tracking_categories,employee,accounting_period,payment_term + name: LineItemsTrackingCategoriesEmployeeAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,employee,payment_term + name: LineItemsTrackingCategoriesEmployeePaymentTerm + - value: line_items,tracking_categories,payment_term + name: LineItemsTrackingCategoriesPaymentTerm + - value: line_items,tracking_categories,purchase_orders + name: LineItemsTrackingCategoriesPurchaseOrders + - value: line_items,tracking_categories,purchase_orders,accounting_period + name: LineItemsTrackingCategoriesPurchaseOrdersAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,accounting_period,payment_term + name: LineItemsTrackingCategoriesPurchaseOrdersAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,purchase_orders,applied_credit_notes + name: LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotes + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,company + name: LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompany + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,company,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact + name: LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContact + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,employee + name: LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,payment_term + name: LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: line_items,tracking_categories,purchase_orders,applied_vendor_credits + name: LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCredits + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,company + name: LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact + name: LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContact + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee + name: LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: line_items,tracking_categories,purchase_orders,company + name: LineItemsTrackingCategoriesPurchaseOrdersCompany + - value: >- + line_items,tracking_categories,purchase_orders,company,accounting_period + name: LineItemsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,purchase_orders,company,employee + name: LineItemsTrackingCategoriesPurchaseOrdersCompanyEmployee + - value: >- + line_items,tracking_categories,purchase_orders,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,company,employee,payment_term + name: LineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeePaymentTerm + - value: line_items,tracking_categories,purchase_orders,company,payment_term + name: LineItemsTrackingCategoriesPurchaseOrdersCompanyPaymentTerm + - value: line_items,tracking_categories,purchase_orders,contact + name: LineItemsTrackingCategoriesPurchaseOrdersContact + - value: >- + line_items,tracking_categories,purchase_orders,contact,accounting_period + name: LineItemsTrackingCategoriesPurchaseOrdersContactAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,contact,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,purchase_orders,contact,company + name: LineItemsTrackingCategoriesPurchaseOrdersContactCompany + - value: >- + line_items,tracking_categories,purchase_orders,contact,company,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,contact,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,contact,company,employee + name: LineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployee + - value: >- + line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,contact,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,contact,company,payment_term + name: LineItemsTrackingCategoriesPurchaseOrdersContactCompanyPaymentTerm + - value: line_items,tracking_categories,purchase_orders,contact,employee + name: LineItemsTrackingCategoriesPurchaseOrdersContactEmployee + - value: >- + line_items,tracking_categories,purchase_orders,contact,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,contact,employee,payment_term + name: LineItemsTrackingCategoriesPurchaseOrdersContactEmployeePaymentTerm + - value: line_items,tracking_categories,purchase_orders,contact,payment_term + name: LineItemsTrackingCategoriesPurchaseOrdersContactPaymentTerm + - value: line_items,tracking_categories,purchase_orders,employee + name: LineItemsTrackingCategoriesPurchaseOrdersEmployee + - value: >- + line_items,tracking_categories,purchase_orders,employee,accounting_period + name: LineItemsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,purchase_orders,employee,payment_term + name: LineItemsTrackingCategoriesPurchaseOrdersEmployeePaymentTerm + - value: line_items,tracking_categories,purchase_orders,payment_term + name: LineItemsTrackingCategoriesPurchaseOrdersPaymentTerm + - payment_term + - payments + - value: payments,accounting_period + name: PaymentsAccountingPeriod + - value: payments,accounting_period,payment_term + name: PaymentsAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes + name: PaymentsAppliedCreditNotes + - value: payments,applied_credit_notes,accounting_period + name: PaymentsAppliedCreditNotesAccountingPeriod + - value: payments,applied_credit_notes,accounting_period,payment_term + name: PaymentsAppliedCreditNotesAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,applied_vendor_credits + name: PaymentsAppliedCreditNotesAppliedVendorCredits + - value: payments,applied_credit_notes,applied_vendor_credits,accounting_period + name: PaymentsAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,applied_vendor_credits,company + name: PaymentsAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: PaymentsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,applied_vendor_credits,company,employee + name: PaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_credit_notes,applied_vendor_credits,company,payment_term + name: PaymentsAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: payments,applied_credit_notes,applied_vendor_credits,contact + name: PaymentsAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: PaymentsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,applied_vendor_credits,contact,company + name: PaymentsAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: PaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: payments,applied_credit_notes,applied_vendor_credits,contact,employee + name: PaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: PaymentsAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: payments,applied_credit_notes,applied_vendor_credits,employee + name: PaymentsAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: PaymentsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: PaymentsAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: payments,applied_credit_notes,applied_vendor_credits,payment_term + name: PaymentsAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: payments,applied_credit_notes,company + name: PaymentsAppliedCreditNotesCompany + - value: payments,applied_credit_notes,company,accounting_period + name: PaymentsAppliedCreditNotesCompanyAccountingPeriod + - value: payments,applied_credit_notes,company,accounting_period,payment_term + name: PaymentsAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,company,employee + name: PaymentsAppliedCreditNotesCompanyEmployee + - value: payments,applied_credit_notes,company,employee,accounting_period + name: PaymentsAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_credit_notes,company,employee,accounting_period,payment_term + name: PaymentsAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,company,employee,payment_term + name: PaymentsAppliedCreditNotesCompanyEmployeePaymentTerm + - value: payments,applied_credit_notes,company,payment_term + name: PaymentsAppliedCreditNotesCompanyPaymentTerm + - value: payments,applied_credit_notes,contact + name: PaymentsAppliedCreditNotesContact + - value: payments,applied_credit_notes,contact,accounting_period + name: PaymentsAppliedCreditNotesContactAccountingPeriod + - value: payments,applied_credit_notes,contact,accounting_period,payment_term + name: PaymentsAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,contact,company + name: PaymentsAppliedCreditNotesContactCompany + - value: payments,applied_credit_notes,contact,company,accounting_period + name: PaymentsAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,applied_credit_notes,contact,company,accounting_period,payment_term + name: PaymentsAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,contact,company,employee + name: PaymentsAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,applied_credit_notes,contact,company,employee,accounting_period + name: PaymentsAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,contact,company,employee,payment_term + name: PaymentsAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: payments,applied_credit_notes,contact,company,payment_term + name: PaymentsAppliedCreditNotesContactCompanyPaymentTerm + - value: payments,applied_credit_notes,contact,employee + name: PaymentsAppliedCreditNotesContactEmployee + - value: payments,applied_credit_notes,contact,employee,accounting_period + name: PaymentsAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,applied_credit_notes,contact,employee,accounting_period,payment_term + name: PaymentsAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,contact,employee,payment_term + name: PaymentsAppliedCreditNotesContactEmployeePaymentTerm + - value: payments,applied_credit_notes,contact,payment_term + name: PaymentsAppliedCreditNotesContactPaymentTerm + - value: payments,applied_credit_notes,employee + name: PaymentsAppliedCreditNotesEmployee + - value: payments,applied_credit_notes,employee,accounting_period + name: PaymentsAppliedCreditNotesEmployeeAccountingPeriod + - value: payments,applied_credit_notes,employee,accounting_period,payment_term + name: PaymentsAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,employee,payment_term + name: PaymentsAppliedCreditNotesEmployeePaymentTerm + - value: payments,applied_credit_notes,payment_term + name: PaymentsAppliedCreditNotesPaymentTerm + - value: payments,applied_payments + name: PaymentsAppliedPayments + - value: payments,applied_payments,accounting_period + name: PaymentsAppliedPaymentsAccountingPeriod + - value: payments,applied_payments,accounting_period,payment_term + name: PaymentsAppliedPaymentsAccountingPeriodPaymentTerm + - value: payments,applied_payments,applied_credit_notes + name: PaymentsAppliedPaymentsAppliedCreditNotes + - value: payments,applied_payments,applied_credit_notes,accounting_period + name: PaymentsAppliedPaymentsAppliedCreditNotesAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,accounting_period,payment_term + name: PaymentsAppliedPaymentsAppliedCreditNotesAccountingPeriodPaymentTerm + - value: payments,applied_payments,applied_credit_notes,applied_vendor_credits + name: PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,company + name: PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact + name: PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,employee + name: PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,applied_credit_notes,company + name: PaymentsAppliedPaymentsAppliedCreditNotesCompany + - value: >- + payments,applied_payments,applied_credit_notes,company,accounting_period + name: PaymentsAppliedPaymentsAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,applied_credit_notes,company,employee + name: PaymentsAppliedPaymentsAppliedCreditNotesCompanyEmployee + - value: >- + payments,applied_payments,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,company,employee,payment_term + name: PaymentsAppliedPaymentsAppliedCreditNotesCompanyEmployeePaymentTerm + - value: payments,applied_payments,applied_credit_notes,company,payment_term + name: PaymentsAppliedPaymentsAppliedCreditNotesCompanyPaymentTerm + - value: payments,applied_payments,applied_credit_notes,contact + name: PaymentsAppliedPaymentsAppliedCreditNotesContact + - value: >- + payments,applied_payments,applied_credit_notes,contact,accounting_period + name: PaymentsAppliedPaymentsAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: payments,applied_payments,applied_credit_notes,contact,company + name: PaymentsAppliedPaymentsAppliedCreditNotesContactCompany + - value: >- + payments,applied_payments,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,contact,company,employee + name: PaymentsAppliedPaymentsAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,applied_payments,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,contact,company,payment_term + name: PaymentsAppliedPaymentsAppliedCreditNotesContactCompanyPaymentTerm + - value: payments,applied_payments,applied_credit_notes,contact,employee + name: PaymentsAppliedPaymentsAppliedCreditNotesContactEmployee + - value: >- + payments,applied_payments,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,contact,employee,payment_term + name: PaymentsAppliedPaymentsAppliedCreditNotesContactEmployeePaymentTerm + - value: payments,applied_payments,applied_credit_notes,contact,payment_term + name: PaymentsAppliedPaymentsAppliedCreditNotesContactPaymentTerm + - value: payments,applied_payments,applied_credit_notes,employee + name: PaymentsAppliedPaymentsAppliedCreditNotesEmployee + - value: >- + payments,applied_payments,applied_credit_notes,employee,accounting_period + name: PaymentsAppliedPaymentsAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,applied_credit_notes,employee,payment_term + name: PaymentsAppliedPaymentsAppliedCreditNotesEmployeePaymentTerm + - value: payments,applied_payments,applied_credit_notes,payment_term + name: PaymentsAppliedPaymentsAppliedCreditNotesPaymentTerm + - value: payments,applied_payments,applied_vendor_credits + name: PaymentsAppliedPaymentsAppliedVendorCredits + - value: payments,applied_payments,applied_vendor_credits,accounting_period + name: PaymentsAppliedPaymentsAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,applied_vendor_credits,accounting_period,payment_term + name: PaymentsAppliedPaymentsAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: payments,applied_payments,applied_vendor_credits,company + name: PaymentsAppliedPaymentsAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,applied_vendor_credits,company,accounting_period + name: PaymentsAppliedPaymentsAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,applied_vendor_credits,company,employee + name: PaymentsAppliedPaymentsAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_vendor_credits,company,employee,payment_term + name: PaymentsAppliedPaymentsAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: payments,applied_payments,applied_vendor_credits,company,payment_term + name: PaymentsAppliedPaymentsAppliedVendorCreditsCompanyPaymentTerm + - value: payments,applied_payments,applied_vendor_credits,contact + name: PaymentsAppliedPaymentsAppliedVendorCreditsContact + - value: >- + payments,applied_payments,applied_vendor_credits,contact,accounting_period + name: PaymentsAppliedPaymentsAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: payments,applied_payments,applied_vendor_credits,contact,company + name: PaymentsAppliedPaymentsAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_vendor_credits,contact,company,employee + name: PaymentsAppliedPaymentsAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,applied_vendor_credits,contact,company,payment_term + name: PaymentsAppliedPaymentsAppliedVendorCreditsContactCompanyPaymentTerm + - value: payments,applied_payments,applied_vendor_credits,contact,employee + name: PaymentsAppliedPaymentsAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_vendor_credits,contact,employee,payment_term + name: PaymentsAppliedPaymentsAppliedVendorCreditsContactEmployeePaymentTerm + - value: payments,applied_payments,applied_vendor_credits,contact,payment_term + name: PaymentsAppliedPaymentsAppliedVendorCreditsContactPaymentTerm + - value: payments,applied_payments,applied_vendor_credits,employee + name: PaymentsAppliedPaymentsAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,applied_vendor_credits,employee,accounting_period + name: PaymentsAppliedPaymentsAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,applied_vendor_credits,employee,payment_term + name: PaymentsAppliedPaymentsAppliedVendorCreditsEmployeePaymentTerm + - value: payments,applied_payments,applied_vendor_credits,payment_term + name: PaymentsAppliedPaymentsAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,company + name: PaymentsAppliedPaymentsCompany + - value: payments,applied_payments,company,accounting_period + name: PaymentsAppliedPaymentsCompanyAccountingPeriod + - value: payments,applied_payments,company,accounting_period,payment_term + name: PaymentsAppliedPaymentsCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,company,employee + name: PaymentsAppliedPaymentsCompanyEmployee + - value: payments,applied_payments,company,employee,accounting_period + name: PaymentsAppliedPaymentsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,company,employee,accounting_period,payment_term + name: PaymentsAppliedPaymentsCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,company,employee,payment_term + name: PaymentsAppliedPaymentsCompanyEmployeePaymentTerm + - value: payments,applied_payments,company,payment_term + name: PaymentsAppliedPaymentsCompanyPaymentTerm + - value: payments,applied_payments,contact + name: PaymentsAppliedPaymentsContact + - value: payments,applied_payments,contact,accounting_period + name: PaymentsAppliedPaymentsContactAccountingPeriod + - value: payments,applied_payments,contact,accounting_period,payment_term + name: PaymentsAppliedPaymentsContactAccountingPeriodPaymentTerm + - value: payments,applied_payments,contact,company + name: PaymentsAppliedPaymentsContactCompany + - value: payments,applied_payments,contact,company,accounting_period + name: PaymentsAppliedPaymentsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,contact,company,accounting_period,payment_term + name: PaymentsAppliedPaymentsContactCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,contact,company,employee + name: PaymentsAppliedPaymentsContactCompanyEmployee + - value: payments,applied_payments,contact,company,employee,accounting_period + name: PaymentsAppliedPaymentsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,contact,company,employee,payment_term + name: PaymentsAppliedPaymentsContactCompanyEmployeePaymentTerm + - value: payments,applied_payments,contact,company,payment_term + name: PaymentsAppliedPaymentsContactCompanyPaymentTerm + - value: payments,applied_payments,contact,employee + name: PaymentsAppliedPaymentsContactEmployee + - value: payments,applied_payments,contact,employee,accounting_period + name: PaymentsAppliedPaymentsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,contact,employee,accounting_period,payment_term + name: PaymentsAppliedPaymentsContactEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,contact,employee,payment_term + name: PaymentsAppliedPaymentsContactEmployeePaymentTerm + - value: payments,applied_payments,contact,payment_term + name: PaymentsAppliedPaymentsContactPaymentTerm + - value: payments,applied_payments,employee + name: PaymentsAppliedPaymentsEmployee + - value: payments,applied_payments,employee,accounting_period + name: PaymentsAppliedPaymentsEmployeeAccountingPeriod + - value: payments,applied_payments,employee,accounting_period,payment_term + name: PaymentsAppliedPaymentsEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,employee,payment_term + name: PaymentsAppliedPaymentsEmployeePaymentTerm + - value: payments,applied_payments,line_items + name: PaymentsAppliedPaymentsLineItems + - value: payments,applied_payments,line_items,accounting_period + name: PaymentsAppliedPaymentsLineItemsAccountingPeriod + - value: payments,applied_payments,line_items,accounting_period,payment_term + name: PaymentsAppliedPaymentsLineItemsAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,applied_credit_notes + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotes + - value: >- + payments,applied_payments,line_items,applied_credit_notes,accounting_period + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,line_items,applied_credit_notes,company + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesCompany + - value: >- + payments,applied_payments,line_items,applied_credit_notes,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,company,employee + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesCompanyEmployee + - value: >- + payments,applied_payments,line_items,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,company,payment_term + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesCompanyPaymentTerm + - value: payments,applied_payments,line_items,applied_credit_notes,contact + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContact + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,company + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactCompany + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,employee + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactEmployee + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,payment_term + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactPaymentTerm + - value: payments,applied_payments,line_items,applied_credit_notes,employee + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesEmployee + - value: >- + payments,applied_payments,line_items,applied_credit_notes,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,employee,payment_term + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesEmployeePaymentTerm + - value: payments,applied_payments,line_items,applied_credit_notes,payment_term + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesPaymentTerm + - value: payments,applied_payments,line_items,applied_vendor_credits + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCredits + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,accounting_period + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,applied_vendor_credits,company + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,company,employee + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,company,payment_term + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsCompanyPaymentTerm + - value: payments,applied_payments,line_items,applied_vendor_credits,contact + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContact + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,company + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,employee + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,payment_term + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactPaymentTerm + - value: payments,applied_payments,line_items,applied_vendor_credits,employee + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,payment_term + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,line_items,company + name: PaymentsAppliedPaymentsLineItemsCompany + - value: payments,applied_payments,line_items,company,accounting_period + name: PaymentsAppliedPaymentsLineItemsCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,company,accounting_period,payment_term + name: PaymentsAppliedPaymentsLineItemsCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,company,employee + name: PaymentsAppliedPaymentsLineItemsCompanyEmployee + - value: >- + payments,applied_payments,line_items,company,employee,accounting_period + name: PaymentsAppliedPaymentsLineItemsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,company,employee,payment_term + name: PaymentsAppliedPaymentsLineItemsCompanyEmployeePaymentTerm + - value: payments,applied_payments,line_items,company,payment_term + name: PaymentsAppliedPaymentsLineItemsCompanyPaymentTerm + - value: payments,applied_payments,line_items,contact + name: PaymentsAppliedPaymentsLineItemsContact + - value: payments,applied_payments,line_items,contact,accounting_period + name: PaymentsAppliedPaymentsLineItemsContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,contact,accounting_period,payment_term + name: PaymentsAppliedPaymentsLineItemsContactAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,contact,company + name: PaymentsAppliedPaymentsLineItemsContactCompany + - value: payments,applied_payments,line_items,contact,company,accounting_period + name: PaymentsAppliedPaymentsLineItemsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsContactCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,contact,company,employee + name: PaymentsAppliedPaymentsLineItemsContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,contact,company,employee,accounting_period + name: PaymentsAppliedPaymentsLineItemsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,contact,company,employee,payment_term + name: PaymentsAppliedPaymentsLineItemsContactCompanyEmployeePaymentTerm + - value: payments,applied_payments,line_items,contact,company,payment_term + name: PaymentsAppliedPaymentsLineItemsContactCompanyPaymentTerm + - value: payments,applied_payments,line_items,contact,employee + name: PaymentsAppliedPaymentsLineItemsContactEmployee + - value: >- + payments,applied_payments,line_items,contact,employee,accounting_period + name: PaymentsAppliedPaymentsLineItemsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsContactEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,contact,employee,payment_term + name: PaymentsAppliedPaymentsLineItemsContactEmployeePaymentTerm + - value: payments,applied_payments,line_items,contact,payment_term + name: PaymentsAppliedPaymentsLineItemsContactPaymentTerm + - value: payments,applied_payments,line_items,employee + name: PaymentsAppliedPaymentsLineItemsEmployee + - value: payments,applied_payments,line_items,employee,accounting_period + name: PaymentsAppliedPaymentsLineItemsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,employee,accounting_period,payment_term + name: PaymentsAppliedPaymentsLineItemsEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,employee,payment_term + name: PaymentsAppliedPaymentsLineItemsEmployeePaymentTerm + - value: payments,applied_payments,line_items,payment_term + name: PaymentsAppliedPaymentsLineItemsPaymentTerm + - value: payments,applied_payments,line_items,purchase_orders + name: PaymentsAppliedPaymentsLineItemsPurchaseOrders + - value: payments,applied_payments,line_items,purchase_orders,accounting_period + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotes + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompany + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContact + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCredits + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContact + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,line_items,purchase_orders,company + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersCompany + - value: >- + payments,applied_payments,line_items,purchase_orders,company,accounting_period + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,purchase_orders,company,employee + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersCompanyEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,company,payment_term + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersCompanyPaymentTerm + - value: payments,applied_payments,line_items,purchase_orders,contact + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersContact + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,accounting_period + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,purchase_orders,contact,company + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactCompany + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,company,employee + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactCompanyPaymentTerm + - value: payments,applied_payments,line_items,purchase_orders,contact,employee + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,payment_term + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactPaymentTerm + - value: payments,applied_payments,line_items,purchase_orders,employee + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,employee,accounting_period + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,employee,payment_term + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersEmployeePaymentTerm + - value: payments,applied_payments,line_items,purchase_orders,payment_term + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersPaymentTerm + - value: payments,applied_payments,line_items,tracking_categories + name: PaymentsAppliedPaymentsLineItemsTrackingCategories + - value: >- + payments,applied_payments,line_items,tracking_categories,accounting_period + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotes + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContact + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCredits + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,line_items,tracking_categories,company + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,company,employee + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,company,payment_term + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompanyPaymentTerm + - value: payments,applied_payments,line_items,tracking_categories,contact + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesContact + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,employee + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,payment_term + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactPaymentTerm + - value: payments,applied_payments,line_items,tracking_categories,employee + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,employee,payment_term + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesEmployeePaymentTerm + - value: payments,applied_payments,line_items,tracking_categories,payment_term + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrders + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotes + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContact + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCredits + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContact + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContact + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersPaymentTerm + - value: payments,applied_payments,payment_term + name: PaymentsAppliedPaymentsPaymentTerm + - value: payments,applied_payments,purchase_orders + name: PaymentsAppliedPaymentsPurchaseOrders + - value: payments,applied_payments,purchase_orders,accounting_period + name: PaymentsAppliedPaymentsPurchaseOrdersAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,accounting_period,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersAccountingPeriodPaymentTerm + - value: payments,applied_payments,purchase_orders,applied_credit_notes + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotes + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,purchase_orders,applied_credit_notes,company + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesCompany + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,company,employee + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,company,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: payments,applied_payments,purchase_orders,applied_credit_notes,contact + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContact + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,company + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,employee + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,employee + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: payments,applied_payments,purchase_orders,applied_vendor_credits + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCredits + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,company + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContact + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,employee + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,purchase_orders,company + name: PaymentsAppliedPaymentsPurchaseOrdersCompany + - value: payments,applied_payments,purchase_orders,company,accounting_period + name: PaymentsAppliedPaymentsPurchaseOrdersCompanyAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,purchase_orders,company,employee + name: PaymentsAppliedPaymentsPurchaseOrdersCompanyEmployee + - value: >- + payments,applied_payments,purchase_orders,company,employee,accounting_period + name: PaymentsAppliedPaymentsPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,company,employee,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersCompanyEmployeePaymentTerm + - value: payments,applied_payments,purchase_orders,company,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersCompanyPaymentTerm + - value: payments,applied_payments,purchase_orders,contact + name: PaymentsAppliedPaymentsPurchaseOrdersContact + - value: payments,applied_payments,purchase_orders,contact,accounting_period + name: PaymentsAppliedPaymentsPurchaseOrdersContactAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: payments,applied_payments,purchase_orders,contact,company + name: PaymentsAppliedPaymentsPurchaseOrdersContactCompany + - value: >- + payments,applied_payments,purchase_orders,contact,company,accounting_period + name: PaymentsAppliedPaymentsPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,purchase_orders,contact,company,employee + name: PaymentsAppliedPaymentsPurchaseOrdersContactCompanyEmployee + - value: >- + payments,applied_payments,purchase_orders,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,contact,company,employee,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: payments,applied_payments,purchase_orders,contact,company,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersContactCompanyPaymentTerm + - value: payments,applied_payments,purchase_orders,contact,employee + name: PaymentsAppliedPaymentsPurchaseOrdersContactEmployee + - value: >- + payments,applied_payments,purchase_orders,contact,employee,accounting_period + name: PaymentsAppliedPaymentsPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,contact,employee,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersContactEmployeePaymentTerm + - value: payments,applied_payments,purchase_orders,contact,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersContactPaymentTerm + - value: payments,applied_payments,purchase_orders,employee + name: PaymentsAppliedPaymentsPurchaseOrdersEmployee + - value: payments,applied_payments,purchase_orders,employee,accounting_period + name: PaymentsAppliedPaymentsPurchaseOrdersEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,purchase_orders,employee,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersEmployeePaymentTerm + - value: payments,applied_payments,purchase_orders,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersPaymentTerm + - value: payments,applied_payments,tracking_categories + name: PaymentsAppliedPaymentsTrackingCategories + - value: payments,applied_payments,tracking_categories,accounting_period + name: PaymentsAppliedPaymentsTrackingCategoriesAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,accounting_period,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesAccountingPeriodPaymentTerm + - value: payments,applied_payments,tracking_categories,applied_credit_notes + name: PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotes + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,company + name: PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesCompany + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact + name: PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContact + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompany + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,employee + name: PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesPaymentTerm + - value: payments,applied_payments,tracking_categories,applied_vendor_credits + name: PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCredits + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,company + name: PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact + name: PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,employee + name: PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,tracking_categories,company + name: PaymentsAppliedPaymentsTrackingCategoriesCompany + - value: >- + payments,applied_payments,tracking_categories,company,accounting_period + name: PaymentsAppliedPaymentsTrackingCategoriesCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,tracking_categories,company,employee + name: PaymentsAppliedPaymentsTrackingCategoriesCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,company,employee,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesCompanyEmployeePaymentTerm + - value: payments,applied_payments,tracking_categories,company,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesCompanyPaymentTerm + - value: payments,applied_payments,tracking_categories,contact + name: PaymentsAppliedPaymentsTrackingCategoriesContact + - value: >- + payments,applied_payments,tracking_categories,contact,accounting_period + name: PaymentsAppliedPaymentsTrackingCategoriesContactAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesContactAccountingPeriodPaymentTerm + - value: payments,applied_payments,tracking_categories,contact,company + name: PaymentsAppliedPaymentsTrackingCategoriesContactCompany + - value: >- + payments,applied_payments,tracking_categories,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesContactCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,tracking_categories,contact,company,employee + name: PaymentsAppliedPaymentsTrackingCategoriesContactCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,contact,company,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesContactCompanyPaymentTerm + - value: payments,applied_payments,tracking_categories,contact,employee + name: PaymentsAppliedPaymentsTrackingCategoriesContactEmployee + - value: >- + payments,applied_payments,tracking_categories,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,contact,employee,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesContactEmployeePaymentTerm + - value: payments,applied_payments,tracking_categories,contact,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesContactPaymentTerm + - value: payments,applied_payments,tracking_categories,employee + name: PaymentsAppliedPaymentsTrackingCategoriesEmployee + - value: >- + payments,applied_payments,tracking_categories,employee,accounting_period + name: PaymentsAppliedPaymentsTrackingCategoriesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,tracking_categories,employee,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesEmployeePaymentTerm + - value: payments,applied_payments,tracking_categories,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesPaymentTerm + - value: payments,applied_payments,tracking_categories,purchase_orders + name: PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrders + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotes + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompany + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContact + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCredits + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContact + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,tracking_categories,purchase_orders,company + name: PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersCompany + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,company,employee + name: PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyPaymentTerm + - value: payments,applied_payments,tracking_categories,purchase_orders,contact + name: PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContact + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,company + name: PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompany + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,employee + name: PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactPaymentTerm + - value: payments,applied_payments,tracking_categories,purchase_orders,employee + name: PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersPaymentTerm + - value: payments,applied_vendor_credits + name: PaymentsAppliedVendorCredits + - value: payments,applied_vendor_credits,accounting_period + name: PaymentsAppliedVendorCreditsAccountingPeriod + - value: payments,applied_vendor_credits,accounting_period,payment_term + name: PaymentsAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: payments,applied_vendor_credits,company + name: PaymentsAppliedVendorCreditsCompany + - value: payments,applied_vendor_credits,company,accounting_period + name: PaymentsAppliedVendorCreditsCompanyAccountingPeriod + - value: payments,applied_vendor_credits,company,accounting_period,payment_term + name: PaymentsAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: payments,applied_vendor_credits,company,employee + name: PaymentsAppliedVendorCreditsCompanyEmployee + - value: payments,applied_vendor_credits,company,employee,accounting_period + name: PaymentsAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_vendor_credits,company,employee,accounting_period,payment_term + name: PaymentsAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_vendor_credits,company,employee,payment_term + name: PaymentsAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: payments,applied_vendor_credits,company,payment_term + name: PaymentsAppliedVendorCreditsCompanyPaymentTerm + - value: payments,applied_vendor_credits,contact + name: PaymentsAppliedVendorCreditsContact + - value: payments,applied_vendor_credits,contact,accounting_period + name: PaymentsAppliedVendorCreditsContactAccountingPeriod + - value: payments,applied_vendor_credits,contact,accounting_period,payment_term + name: PaymentsAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: payments,applied_vendor_credits,contact,company + name: PaymentsAppliedVendorCreditsContactCompany + - value: payments,applied_vendor_credits,contact,company,accounting_period + name: PaymentsAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_vendor_credits,contact,company,accounting_period,payment_term + name: PaymentsAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: payments,applied_vendor_credits,contact,company,employee + name: PaymentsAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_vendor_credits,contact,company,employee,accounting_period + name: PaymentsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_vendor_credits,contact,company,employee,payment_term + name: PaymentsAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: payments,applied_vendor_credits,contact,company,payment_term + name: PaymentsAppliedVendorCreditsContactCompanyPaymentTerm + - value: payments,applied_vendor_credits,contact,employee + name: PaymentsAppliedVendorCreditsContactEmployee + - value: payments,applied_vendor_credits,contact,employee,accounting_period + name: PaymentsAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: PaymentsAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_vendor_credits,contact,employee,payment_term + name: PaymentsAppliedVendorCreditsContactEmployeePaymentTerm + - value: payments,applied_vendor_credits,contact,payment_term + name: PaymentsAppliedVendorCreditsContactPaymentTerm + - value: payments,applied_vendor_credits,employee + name: PaymentsAppliedVendorCreditsEmployee + - value: payments,applied_vendor_credits,employee,accounting_period + name: PaymentsAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_vendor_credits,employee,accounting_period,payment_term + name: PaymentsAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_vendor_credits,employee,payment_term + name: PaymentsAppliedVendorCreditsEmployeePaymentTerm + - value: payments,applied_vendor_credits,payment_term + name: PaymentsAppliedVendorCreditsPaymentTerm + - value: payments,company + name: PaymentsCompany + - value: payments,company,accounting_period + name: PaymentsCompanyAccountingPeriod + - value: payments,company,accounting_period,payment_term + name: PaymentsCompanyAccountingPeriodPaymentTerm + - value: payments,company,employee + name: PaymentsCompanyEmployee + - value: payments,company,employee,accounting_period + name: PaymentsCompanyEmployeeAccountingPeriod + - value: payments,company,employee,accounting_period,payment_term + name: PaymentsCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,company,employee,payment_term + name: PaymentsCompanyEmployeePaymentTerm + - value: payments,company,payment_term + name: PaymentsCompanyPaymentTerm + - value: payments,contact + name: PaymentsContact + - value: payments,contact,accounting_period + name: PaymentsContactAccountingPeriod + - value: payments,contact,accounting_period,payment_term + name: PaymentsContactAccountingPeriodPaymentTerm + - value: payments,contact,company + name: PaymentsContactCompany + - value: payments,contact,company,accounting_period + name: PaymentsContactCompanyAccountingPeriod + - value: payments,contact,company,accounting_period,payment_term + name: PaymentsContactCompanyAccountingPeriodPaymentTerm + - value: payments,contact,company,employee + name: PaymentsContactCompanyEmployee + - value: payments,contact,company,employee,accounting_period + name: PaymentsContactCompanyEmployeeAccountingPeriod + - value: payments,contact,company,employee,accounting_period,payment_term + name: PaymentsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,contact,company,employee,payment_term + name: PaymentsContactCompanyEmployeePaymentTerm + - value: payments,contact,company,payment_term + name: PaymentsContactCompanyPaymentTerm + - value: payments,contact,employee + name: PaymentsContactEmployee + - value: payments,contact,employee,accounting_period + name: PaymentsContactEmployeeAccountingPeriod + - value: payments,contact,employee,accounting_period,payment_term + name: PaymentsContactEmployeeAccountingPeriodPaymentTerm + - value: payments,contact,employee,payment_term + name: PaymentsContactEmployeePaymentTerm + - value: payments,contact,payment_term + name: PaymentsContactPaymentTerm + - value: payments,employee + name: PaymentsEmployee + - value: payments,employee,accounting_period + name: PaymentsEmployeeAccountingPeriod + - value: payments,employee,accounting_period,payment_term + name: PaymentsEmployeeAccountingPeriodPaymentTerm + - value: payments,employee,payment_term + name: PaymentsEmployeePaymentTerm + - value: payments,line_items + name: PaymentsLineItems + - value: payments,line_items,accounting_period + name: PaymentsLineItemsAccountingPeriod + - value: payments,line_items,accounting_period,payment_term + name: PaymentsLineItemsAccountingPeriodPaymentTerm + - value: payments,line_items,applied_credit_notes + name: PaymentsLineItemsAppliedCreditNotes + - value: payments,line_items,applied_credit_notes,accounting_period + name: PaymentsLineItemsAppliedCreditNotesAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,accounting_period,payment_term + name: PaymentsLineItemsAppliedCreditNotesAccountingPeriodPaymentTerm + - value: payments,line_items,applied_credit_notes,applied_vendor_credits + name: PaymentsLineItemsAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,company + name: PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee + name: PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact + name: PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company + name: PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee + name: PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,employee + name: PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,payment_term + name: PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: payments,line_items,applied_credit_notes,company + name: PaymentsLineItemsAppliedCreditNotesCompany + - value: payments,line_items,applied_credit_notes,company,accounting_period + name: PaymentsLineItemsAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,company,accounting_period,payment_term + name: PaymentsLineItemsAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,applied_credit_notes,company,employee + name: PaymentsLineItemsAppliedCreditNotesCompanyEmployee + - value: >- + payments,line_items,applied_credit_notes,company,employee,accounting_period + name: PaymentsLineItemsAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,applied_credit_notes,company,employee,payment_term + name: PaymentsLineItemsAppliedCreditNotesCompanyEmployeePaymentTerm + - value: payments,line_items,applied_credit_notes,company,payment_term + name: PaymentsLineItemsAppliedCreditNotesCompanyPaymentTerm + - value: payments,line_items,applied_credit_notes,contact + name: PaymentsLineItemsAppliedCreditNotesContact + - value: payments,line_items,applied_credit_notes,contact,accounting_period + name: PaymentsLineItemsAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,contact,accounting_period,payment_term + name: PaymentsLineItemsAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: payments,line_items,applied_credit_notes,contact,company + name: PaymentsLineItemsAppliedCreditNotesContactCompany + - value: >- + payments,line_items,applied_credit_notes,contact,company,accounting_period + name: PaymentsLineItemsAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,applied_credit_notes,contact,company,employee + name: PaymentsLineItemsAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,line_items,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,contact,company,employee,payment_term + name: PaymentsLineItemsAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: payments,line_items,applied_credit_notes,contact,company,payment_term + name: PaymentsLineItemsAppliedCreditNotesContactCompanyPaymentTerm + - value: payments,line_items,applied_credit_notes,contact,employee + name: PaymentsLineItemsAppliedCreditNotesContactEmployee + - value: >- + payments,line_items,applied_credit_notes,contact,employee,accounting_period + name: PaymentsLineItemsAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,applied_credit_notes,contact,employee,payment_term + name: PaymentsLineItemsAppliedCreditNotesContactEmployeePaymentTerm + - value: payments,line_items,applied_credit_notes,contact,payment_term + name: PaymentsLineItemsAppliedCreditNotesContactPaymentTerm + - value: payments,line_items,applied_credit_notes,employee + name: PaymentsLineItemsAppliedCreditNotesEmployee + - value: payments,line_items,applied_credit_notes,employee,accounting_period + name: PaymentsLineItemsAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,employee,accounting_period,payment_term + name: PaymentsLineItemsAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,applied_credit_notes,employee,payment_term + name: PaymentsLineItemsAppliedCreditNotesEmployeePaymentTerm + - value: payments,line_items,applied_credit_notes,payment_term + name: PaymentsLineItemsAppliedCreditNotesPaymentTerm + - value: payments,line_items,applied_vendor_credits + name: PaymentsLineItemsAppliedVendorCredits + - value: payments,line_items,applied_vendor_credits,accounting_period + name: PaymentsLineItemsAppliedVendorCreditsAccountingPeriod + - value: >- + payments,line_items,applied_vendor_credits,accounting_period,payment_term + name: PaymentsLineItemsAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: payments,line_items,applied_vendor_credits,company + name: PaymentsLineItemsAppliedVendorCreditsCompany + - value: payments,line_items,applied_vendor_credits,company,accounting_period + name: PaymentsLineItemsAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,line_items,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,applied_vendor_credits,company,employee + name: PaymentsLineItemsAppliedVendorCreditsCompanyEmployee + - value: >- + payments,line_items,applied_vendor_credits,company,employee,accounting_period + name: PaymentsLineItemsAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_vendor_credits,company,employee,payment_term + name: PaymentsLineItemsAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: payments,line_items,applied_vendor_credits,company,payment_term + name: PaymentsLineItemsAppliedVendorCreditsCompanyPaymentTerm + - value: payments,line_items,applied_vendor_credits,contact + name: PaymentsLineItemsAppliedVendorCreditsContact + - value: payments,line_items,applied_vendor_credits,contact,accounting_period + name: PaymentsLineItemsAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,line_items,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: payments,line_items,applied_vendor_credits,contact,company + name: PaymentsLineItemsAppliedVendorCreditsContactCompany + - value: >- + payments,line_items,applied_vendor_credits,contact,company,accounting_period + name: PaymentsLineItemsAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,line_items,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,applied_vendor_credits,contact,company,employee + name: PaymentsLineItemsAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,line_items,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_vendor_credits,contact,company,employee,payment_term + name: PaymentsLineItemsAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,applied_vendor_credits,contact,company,payment_term + name: PaymentsLineItemsAppliedVendorCreditsContactCompanyPaymentTerm + - value: payments,line_items,applied_vendor_credits,contact,employee + name: PaymentsLineItemsAppliedVendorCreditsContactEmployee + - value: >- + payments,line_items,applied_vendor_credits,contact,employee,accounting_period + name: PaymentsLineItemsAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_vendor_credits,contact,employee,payment_term + name: PaymentsLineItemsAppliedVendorCreditsContactEmployeePaymentTerm + - value: payments,line_items,applied_vendor_credits,contact,payment_term + name: PaymentsLineItemsAppliedVendorCreditsContactPaymentTerm + - value: payments,line_items,applied_vendor_credits,employee + name: PaymentsLineItemsAppliedVendorCreditsEmployee + - value: payments,line_items,applied_vendor_credits,employee,accounting_period + name: PaymentsLineItemsAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,applied_vendor_credits,employee,payment_term + name: PaymentsLineItemsAppliedVendorCreditsEmployeePaymentTerm + - value: payments,line_items,applied_vendor_credits,payment_term + name: PaymentsLineItemsAppliedVendorCreditsPaymentTerm + - value: payments,line_items,company + name: PaymentsLineItemsCompany + - value: payments,line_items,company,accounting_period + name: PaymentsLineItemsCompanyAccountingPeriod + - value: payments,line_items,company,accounting_period,payment_term + name: PaymentsLineItemsCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,company,employee + name: PaymentsLineItemsCompanyEmployee + - value: payments,line_items,company,employee,accounting_period + name: PaymentsLineItemsCompanyEmployeeAccountingPeriod + - value: payments,line_items,company,employee,accounting_period,payment_term + name: PaymentsLineItemsCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,company,employee,payment_term + name: PaymentsLineItemsCompanyEmployeePaymentTerm + - value: payments,line_items,company,payment_term + name: PaymentsLineItemsCompanyPaymentTerm + - value: payments,line_items,contact + name: PaymentsLineItemsContact + - value: payments,line_items,contact,accounting_period + name: PaymentsLineItemsContactAccountingPeriod + - value: payments,line_items,contact,accounting_period,payment_term + name: PaymentsLineItemsContactAccountingPeriodPaymentTerm + - value: payments,line_items,contact,company + name: PaymentsLineItemsContactCompany + - value: payments,line_items,contact,company,accounting_period + name: PaymentsLineItemsContactCompanyAccountingPeriod + - value: payments,line_items,contact,company,accounting_period,payment_term + name: PaymentsLineItemsContactCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,contact,company,employee + name: PaymentsLineItemsContactCompanyEmployee + - value: payments,line_items,contact,company,employee,accounting_period + name: PaymentsLineItemsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,contact,company,employee,accounting_period,payment_term + name: PaymentsLineItemsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,contact,company,employee,payment_term + name: PaymentsLineItemsContactCompanyEmployeePaymentTerm + - value: payments,line_items,contact,company,payment_term + name: PaymentsLineItemsContactCompanyPaymentTerm + - value: payments,line_items,contact,employee + name: PaymentsLineItemsContactEmployee + - value: payments,line_items,contact,employee,accounting_period + name: PaymentsLineItemsContactEmployeeAccountingPeriod + - value: payments,line_items,contact,employee,accounting_period,payment_term + name: PaymentsLineItemsContactEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,contact,employee,payment_term + name: PaymentsLineItemsContactEmployeePaymentTerm + - value: payments,line_items,contact,payment_term + name: PaymentsLineItemsContactPaymentTerm + - value: payments,line_items,employee + name: PaymentsLineItemsEmployee + - value: payments,line_items,employee,accounting_period + name: PaymentsLineItemsEmployeeAccountingPeriod + - value: payments,line_items,employee,accounting_period,payment_term + name: PaymentsLineItemsEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,employee,payment_term + name: PaymentsLineItemsEmployeePaymentTerm + - value: payments,line_items,payment_term + name: PaymentsLineItemsPaymentTerm + - value: payments,line_items,purchase_orders + name: PaymentsLineItemsPurchaseOrders + - value: payments,line_items,purchase_orders,accounting_period + name: PaymentsLineItemsPurchaseOrdersAccountingPeriod + - value: payments,line_items,purchase_orders,accounting_period,payment_term + name: PaymentsLineItemsPurchaseOrdersAccountingPeriodPaymentTerm + - value: payments,line_items,purchase_orders,applied_credit_notes + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotes + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,accounting_period + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: payments,line_items,purchase_orders,applied_credit_notes,company + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompany + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,company,employee + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,company,payment_term + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: payments,line_items,purchase_orders,applied_credit_notes,contact + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContact + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,company + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,employee + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,payment_term + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: payments,line_items,purchase_orders,applied_credit_notes,employee + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,employee,payment_term + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: payments,line_items,purchase_orders,applied_credit_notes,payment_term + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: payments,line_items,purchase_orders,applied_vendor_credits + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCredits + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,accounting_period + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: payments,line_items,purchase_orders,applied_vendor_credits,company + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,company,employee + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,company,payment_term + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: payments,line_items,purchase_orders,applied_vendor_credits,contact + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContact + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,company + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,employee + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,payment_term + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: payments,line_items,purchase_orders,applied_vendor_credits,employee + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,employee,payment_term + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,payment_term + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: payments,line_items,purchase_orders,company + name: PaymentsLineItemsPurchaseOrdersCompany + - value: payments,line_items,purchase_orders,company,accounting_period + name: PaymentsLineItemsPurchaseOrdersCompanyAccountingPeriod + - value: >- + payments,line_items,purchase_orders,company,accounting_period,payment_term + name: PaymentsLineItemsPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,purchase_orders,company,employee + name: PaymentsLineItemsPurchaseOrdersCompanyEmployee + - value: payments,line_items,purchase_orders,company,employee,accounting_period + name: PaymentsLineItemsPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,purchase_orders,company,employee,payment_term + name: PaymentsLineItemsPurchaseOrdersCompanyEmployeePaymentTerm + - value: payments,line_items,purchase_orders,company,payment_term + name: PaymentsLineItemsPurchaseOrdersCompanyPaymentTerm + - value: payments,line_items,purchase_orders,contact + name: PaymentsLineItemsPurchaseOrdersContact + - value: payments,line_items,purchase_orders,contact,accounting_period + name: PaymentsLineItemsPurchaseOrdersContactAccountingPeriod + - value: >- + payments,line_items,purchase_orders,contact,accounting_period,payment_term + name: PaymentsLineItemsPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: payments,line_items,purchase_orders,contact,company + name: PaymentsLineItemsPurchaseOrdersContactCompany + - value: payments,line_items,purchase_orders,contact,company,accounting_period + name: PaymentsLineItemsPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + payments,line_items,purchase_orders,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,purchase_orders,contact,company,employee + name: PaymentsLineItemsPurchaseOrdersContactCompanyEmployee + - value: >- + payments,line_items,purchase_orders,contact,company,employee,accounting_period + name: PaymentsLineItemsPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,contact,company,employee,payment_term + name: PaymentsLineItemsPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: payments,line_items,purchase_orders,contact,company,payment_term + name: PaymentsLineItemsPurchaseOrdersContactCompanyPaymentTerm + - value: payments,line_items,purchase_orders,contact,employee + name: PaymentsLineItemsPurchaseOrdersContactEmployee + - value: payments,line_items,purchase_orders,contact,employee,accounting_period + name: PaymentsLineItemsPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,purchase_orders,contact,employee,payment_term + name: PaymentsLineItemsPurchaseOrdersContactEmployeePaymentTerm + - value: payments,line_items,purchase_orders,contact,payment_term + name: PaymentsLineItemsPurchaseOrdersContactPaymentTerm + - value: payments,line_items,purchase_orders,employee + name: PaymentsLineItemsPurchaseOrdersEmployee + - value: payments,line_items,purchase_orders,employee,accounting_period + name: PaymentsLineItemsPurchaseOrdersEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,employee,accounting_period,payment_term + name: PaymentsLineItemsPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,purchase_orders,employee,payment_term + name: PaymentsLineItemsPurchaseOrdersEmployeePaymentTerm + - value: payments,line_items,purchase_orders,payment_term + name: PaymentsLineItemsPurchaseOrdersPaymentTerm + - value: payments,line_items,tracking_categories + name: PaymentsLineItemsTrackingCategories + - value: payments,line_items,tracking_categories,accounting_period + name: PaymentsLineItemsTrackingCategoriesAccountingPeriod + - value: payments,line_items,tracking_categories,accounting_period,payment_term + name: PaymentsLineItemsTrackingCategoriesAccountingPeriodPaymentTerm + - value: payments,line_items,tracking_categories,applied_credit_notes + name: PaymentsLineItemsTrackingCategoriesAppliedCreditNotes + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,accounting_period + name: PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: payments,line_items,tracking_categories,applied_credit_notes,company + name: PaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompany + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,company,employee + name: PaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployee + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyPaymentTerm + - value: payments,line_items,tracking_categories,applied_credit_notes,contact + name: PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContact + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,company + name: PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompany + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,employee + name: PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployee + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactPaymentTerm + - value: payments,line_items,tracking_categories,applied_credit_notes,employee + name: PaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployee + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,payment_term + name: PaymentsLineItemsTrackingCategoriesAppliedCreditNotesPaymentTerm + - value: payments,line_items,tracking_categories,applied_vendor_credits + name: PaymentsLineItemsTrackingCategoriesAppliedVendorCredits + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: payments,line_items,tracking_categories,applied_vendor_credits,company + name: PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompany + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,company,employee + name: PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyPaymentTerm + - value: payments,line_items,tracking_categories,applied_vendor_credits,contact + name: PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContact + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,company + name: PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompany + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,employee + name: PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployee + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,employee + name: PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployee + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,payment_term + name: PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsPaymentTerm + - value: payments,line_items,tracking_categories,company + name: PaymentsLineItemsTrackingCategoriesCompany + - value: payments,line_items,tracking_categories,company,accounting_period + name: PaymentsLineItemsTrackingCategoriesCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,company,accounting_period,payment_term + name: PaymentsLineItemsTrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,tracking_categories,company,employee + name: PaymentsLineItemsTrackingCategoriesCompanyEmployee + - value: >- + payments,line_items,tracking_categories,company,employee,accounting_period + name: PaymentsLineItemsTrackingCategoriesCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,tracking_categories,company,employee,payment_term + name: PaymentsLineItemsTrackingCategoriesCompanyEmployeePaymentTerm + - value: payments,line_items,tracking_categories,company,payment_term + name: PaymentsLineItemsTrackingCategoriesCompanyPaymentTerm + - value: payments,line_items,tracking_categories,contact + name: PaymentsLineItemsTrackingCategoriesContact + - value: payments,line_items,tracking_categories,contact,accounting_period + name: PaymentsLineItemsTrackingCategoriesContactAccountingPeriod + - value: >- + payments,line_items,tracking_categories,contact,accounting_period,payment_term + name: PaymentsLineItemsTrackingCategoriesContactAccountingPeriodPaymentTerm + - value: payments,line_items,tracking_categories,contact,company + name: PaymentsLineItemsTrackingCategoriesContactCompany + - value: >- + payments,line_items,tracking_categories,contact,company,accounting_period + name: PaymentsLineItemsTrackingCategoriesContactCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesContactCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,tracking_categories,contact,company,employee + name: PaymentsLineItemsTrackingCategoriesContactCompanyEmployee + - value: >- + payments,line_items,tracking_categories,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,contact,company,employee,payment_term + name: PaymentsLineItemsTrackingCategoriesContactCompanyEmployeePaymentTerm + - value: payments,line_items,tracking_categories,contact,company,payment_term + name: PaymentsLineItemsTrackingCategoriesContactCompanyPaymentTerm + - value: payments,line_items,tracking_categories,contact,employee + name: PaymentsLineItemsTrackingCategoriesContactEmployee + - value: >- + payments,line_items,tracking_categories,contact,employee,accounting_period + name: PaymentsLineItemsTrackingCategoriesContactEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesContactEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,tracking_categories,contact,employee,payment_term + name: PaymentsLineItemsTrackingCategoriesContactEmployeePaymentTerm + - value: payments,line_items,tracking_categories,contact,payment_term + name: PaymentsLineItemsTrackingCategoriesContactPaymentTerm + - value: payments,line_items,tracking_categories,employee + name: PaymentsLineItemsTrackingCategoriesEmployee + - value: payments,line_items,tracking_categories,employee,accounting_period + name: PaymentsLineItemsTrackingCategoriesEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,employee,accounting_period,payment_term + name: PaymentsLineItemsTrackingCategoriesEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,tracking_categories,employee,payment_term + name: PaymentsLineItemsTrackingCategoriesEmployeePaymentTerm + - value: payments,line_items,tracking_categories,payment_term + name: PaymentsLineItemsTrackingCategoriesPaymentTerm + - value: payments,line_items,tracking_categories,purchase_orders + name: PaymentsLineItemsTrackingCategoriesPurchaseOrders + - value: >- + payments,line_items,tracking_categories,purchase_orders,accounting_period + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotes + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompany + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContact + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCredits + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContact + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: payments,line_items,tracking_categories,purchase_orders,company + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersCompany + - value: >- + payments,line_items,tracking_categories,purchase_orders,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,company,employee + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,company,payment_term + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyPaymentTerm + - value: payments,line_items,tracking_categories,purchase_orders,contact + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersContact + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,company + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompany + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,employee + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,payment_term + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactPaymentTerm + - value: payments,line_items,tracking_categories,purchase_orders,employee + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,employee,payment_term + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployeePaymentTerm + - value: payments,line_items,tracking_categories,purchase_orders,payment_term + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersPaymentTerm + - value: payments,payment_term + name: PaymentsPaymentTerm + - value: payments,purchase_orders + name: PaymentsPurchaseOrders + - value: payments,purchase_orders,accounting_period + name: PaymentsPurchaseOrdersAccountingPeriod + - value: payments,purchase_orders,accounting_period,payment_term + name: PaymentsPurchaseOrdersAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_credit_notes + name: PaymentsPurchaseOrdersAppliedCreditNotes + - value: payments,purchase_orders,applied_credit_notes,accounting_period + name: PaymentsPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: PaymentsPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_credit_notes,applied_vendor_credits + name: PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: payments,purchase_orders,applied_credit_notes,company + name: PaymentsPurchaseOrdersAppliedCreditNotesCompany + - value: >- + payments,purchase_orders,applied_credit_notes,company,accounting_period + name: PaymentsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_credit_notes,company,employee + name: PaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + payments,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,company,employee,payment_term + name: PaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: payments,purchase_orders,applied_credit_notes,company,payment_term + name: PaymentsPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: payments,purchase_orders,applied_credit_notes,contact + name: PaymentsPurchaseOrdersAppliedCreditNotesContact + - value: >- + payments,purchase_orders,applied_credit_notes,contact,accounting_period + name: PaymentsPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_credit_notes,contact,company + name: PaymentsPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + payments,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: PaymentsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_credit_notes,contact,company,employee + name: PaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,contact,company,payment_term + name: PaymentsPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: payments,purchase_orders,applied_credit_notes,contact,employee + name: PaymentsPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + payments,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: PaymentsPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: payments,purchase_orders,applied_credit_notes,contact,payment_term + name: PaymentsPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: payments,purchase_orders,applied_credit_notes,employee + name: PaymentsPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + payments,purchase_orders,applied_credit_notes,employee,accounting_period + name: PaymentsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_credit_notes,employee,payment_term + name: PaymentsPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: payments,purchase_orders,applied_credit_notes,payment_term + name: PaymentsPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: payments,purchase_orders,applied_vendor_credits + name: PaymentsPurchaseOrdersAppliedVendorCredits + - value: payments,purchase_orders,applied_vendor_credits,accounting_period + name: PaymentsPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + payments,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: PaymentsPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,company + name: PaymentsPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + payments,purchase_orders,applied_vendor_credits,company,accounting_period + name: PaymentsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,company,employee + name: PaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + payments,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: PaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,company,payment_term + name: PaymentsPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,contact + name: PaymentsPurchaseOrdersAppliedVendorCreditsContact + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,accounting_period + name: PaymentsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,contact,company + name: PaymentsPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,company,employee + name: PaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: PaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,contact,employee + name: PaymentsPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: PaymentsPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,contact,payment_term + name: PaymentsPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,employee + name: PaymentsPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + payments,purchase_orders,applied_vendor_credits,employee,accounting_period + name: PaymentsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,employee,payment_term + name: PaymentsPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,payment_term + name: PaymentsPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: payments,purchase_orders,company + name: PaymentsPurchaseOrdersCompany + - value: payments,purchase_orders,company,accounting_period + name: PaymentsPurchaseOrdersCompanyAccountingPeriod + - value: payments,purchase_orders,company,accounting_period,payment_term + name: PaymentsPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: payments,purchase_orders,company,employee + name: PaymentsPurchaseOrdersCompanyEmployee + - value: payments,purchase_orders,company,employee,accounting_period + name: PaymentsPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,company,employee,accounting_period,payment_term + name: PaymentsPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,purchase_orders,company,employee,payment_term + name: PaymentsPurchaseOrdersCompanyEmployeePaymentTerm + - value: payments,purchase_orders,company,payment_term + name: PaymentsPurchaseOrdersCompanyPaymentTerm + - value: payments,purchase_orders,contact + name: PaymentsPurchaseOrdersContact + - value: payments,purchase_orders,contact,accounting_period + name: PaymentsPurchaseOrdersContactAccountingPeriod + - value: payments,purchase_orders,contact,accounting_period,payment_term + name: PaymentsPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: payments,purchase_orders,contact,company + name: PaymentsPurchaseOrdersContactCompany + - value: payments,purchase_orders,contact,company,accounting_period + name: PaymentsPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + payments,purchase_orders,contact,company,accounting_period,payment_term + name: PaymentsPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: payments,purchase_orders,contact,company,employee + name: PaymentsPurchaseOrdersContactCompanyEmployee + - value: payments,purchase_orders,contact,company,employee,accounting_period + name: PaymentsPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,purchase_orders,contact,company,employee,payment_term + name: PaymentsPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: payments,purchase_orders,contact,company,payment_term + name: PaymentsPurchaseOrdersContactCompanyPaymentTerm + - value: payments,purchase_orders,contact,employee + name: PaymentsPurchaseOrdersContactEmployee + - value: payments,purchase_orders,contact,employee,accounting_period + name: PaymentsPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,contact,employee,accounting_period,payment_term + name: PaymentsPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: payments,purchase_orders,contact,employee,payment_term + name: PaymentsPurchaseOrdersContactEmployeePaymentTerm + - value: payments,purchase_orders,contact,payment_term + name: PaymentsPurchaseOrdersContactPaymentTerm + - value: payments,purchase_orders,employee + name: PaymentsPurchaseOrdersEmployee + - value: payments,purchase_orders,employee,accounting_period + name: PaymentsPurchaseOrdersEmployeeAccountingPeriod + - value: payments,purchase_orders,employee,accounting_period,payment_term + name: PaymentsPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: payments,purchase_orders,employee,payment_term + name: PaymentsPurchaseOrdersEmployeePaymentTerm + - value: payments,purchase_orders,payment_term + name: PaymentsPurchaseOrdersPaymentTerm + - value: payments,tracking_categories + name: PaymentsTrackingCategories + - value: payments,tracking_categories,accounting_period + name: PaymentsTrackingCategoriesAccountingPeriod + - value: payments,tracking_categories,accounting_period,payment_term + name: PaymentsTrackingCategoriesAccountingPeriodPaymentTerm + - value: payments,tracking_categories,applied_credit_notes + name: PaymentsTrackingCategoriesAppliedCreditNotes + - value: payments,tracking_categories,applied_credit_notes,accounting_period + name: PaymentsTrackingCategoriesAppliedCreditNotesAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits + name: PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: payments,tracking_categories,applied_credit_notes,company + name: PaymentsTrackingCategoriesAppliedCreditNotesCompany + - value: >- + payments,tracking_categories,applied_credit_notes,company,accounting_period + name: PaymentsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: payments,tracking_categories,applied_credit_notes,company,employee + name: PaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployee + - value: >- + payments,tracking_categories,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,company,employee,payment_term + name: PaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployeePaymentTerm + - value: payments,tracking_categories,applied_credit_notes,company,payment_term + name: PaymentsTrackingCategoriesAppliedCreditNotesCompanyPaymentTerm + - value: payments,tracking_categories,applied_credit_notes,contact + name: PaymentsTrackingCategoriesAppliedCreditNotesContact + - value: >- + payments,tracking_categories,applied_credit_notes,contact,accounting_period + name: PaymentsTrackingCategoriesAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: payments,tracking_categories,applied_credit_notes,contact,company + name: PaymentsTrackingCategoriesAppliedCreditNotesContactCompany + - value: >- + payments,tracking_categories,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,contact,company,employee + name: PaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,contact,company,payment_term + name: PaymentsTrackingCategoriesAppliedCreditNotesContactCompanyPaymentTerm + - value: payments,tracking_categories,applied_credit_notes,contact,employee + name: PaymentsTrackingCategoriesAppliedCreditNotesContactEmployee + - value: >- + payments,tracking_categories,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,contact,employee,payment_term + name: PaymentsTrackingCategoriesAppliedCreditNotesContactEmployeePaymentTerm + - value: payments,tracking_categories,applied_credit_notes,contact,payment_term + name: PaymentsTrackingCategoriesAppliedCreditNotesContactPaymentTerm + - value: payments,tracking_categories,applied_credit_notes,employee + name: PaymentsTrackingCategoriesAppliedCreditNotesEmployee + - value: >- + payments,tracking_categories,applied_credit_notes,employee,accounting_period + name: PaymentsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,employee,payment_term + name: PaymentsTrackingCategoriesAppliedCreditNotesEmployeePaymentTerm + - value: payments,tracking_categories,applied_credit_notes,payment_term + name: PaymentsTrackingCategoriesAppliedCreditNotesPaymentTerm + - value: payments,tracking_categories,applied_vendor_credits + name: PaymentsTrackingCategoriesAppliedVendorCredits + - value: payments,tracking_categories,applied_vendor_credits,accounting_period + name: PaymentsTrackingCategoriesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,tracking_categories,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: payments,tracking_categories,applied_vendor_credits,company + name: PaymentsTrackingCategoriesAppliedVendorCreditsCompany + - value: >- + payments,tracking_categories,applied_vendor_credits,company,accounting_period + name: PaymentsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,tracking_categories,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: payments,tracking_categories,applied_vendor_credits,company,employee + name: PaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,tracking_categories,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,applied_vendor_credits,company,payment_term + name: PaymentsTrackingCategoriesAppliedVendorCreditsCompanyPaymentTerm + - value: payments,tracking_categories,applied_vendor_credits,contact + name: PaymentsTrackingCategoriesAppliedVendorCreditsContact + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,accounting_period + name: PaymentsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: payments,tracking_categories,applied_vendor_credits,contact,company + name: PaymentsTrackingCategoriesAppliedVendorCreditsContactCompany + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,company,employee + name: PaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyPaymentTerm + - value: payments,tracking_categories,applied_vendor_credits,contact,employee + name: PaymentsTrackingCategoriesAppliedVendorCreditsContactEmployee + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,payment_term + name: PaymentsTrackingCategoriesAppliedVendorCreditsContactPaymentTerm + - value: payments,tracking_categories,applied_vendor_credits,employee + name: PaymentsTrackingCategoriesAppliedVendorCreditsEmployee + - value: >- + payments,tracking_categories,applied_vendor_credits,employee,accounting_period + name: PaymentsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_vendor_credits,employee,payment_term + name: PaymentsTrackingCategoriesAppliedVendorCreditsEmployeePaymentTerm + - value: payments,tracking_categories,applied_vendor_credits,payment_term + name: PaymentsTrackingCategoriesAppliedVendorCreditsPaymentTerm + - value: payments,tracking_categories,company + name: PaymentsTrackingCategoriesCompany + - value: payments,tracking_categories,company,accounting_period + name: PaymentsTrackingCategoriesCompanyAccountingPeriod + - value: payments,tracking_categories,company,accounting_period,payment_term + name: PaymentsTrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: payments,tracking_categories,company,employee + name: PaymentsTrackingCategoriesCompanyEmployee + - value: payments,tracking_categories,company,employee,accounting_period + name: PaymentsTrackingCategoriesCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,company,employee,accounting_period,payment_term + name: PaymentsTrackingCategoriesCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,tracking_categories,company,employee,payment_term + name: PaymentsTrackingCategoriesCompanyEmployeePaymentTerm + - value: payments,tracking_categories,company,payment_term + name: PaymentsTrackingCategoriesCompanyPaymentTerm + - value: payments,tracking_categories,contact + name: PaymentsTrackingCategoriesContact + - value: payments,tracking_categories,contact,accounting_period + name: PaymentsTrackingCategoriesContactAccountingPeriod + - value: payments,tracking_categories,contact,accounting_period,payment_term + name: PaymentsTrackingCategoriesContactAccountingPeriodPaymentTerm + - value: payments,tracking_categories,contact,company + name: PaymentsTrackingCategoriesContactCompany + - value: payments,tracking_categories,contact,company,accounting_period + name: PaymentsTrackingCategoriesContactCompanyAccountingPeriod + - value: >- + payments,tracking_categories,contact,company,accounting_period,payment_term + name: PaymentsTrackingCategoriesContactCompanyAccountingPeriodPaymentTerm + - value: payments,tracking_categories,contact,company,employee + name: PaymentsTrackingCategoriesContactCompanyEmployee + - value: >- + payments,tracking_categories,contact,company,employee,accounting_period + name: PaymentsTrackingCategoriesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,tracking_categories,contact,company,employee,payment_term + name: PaymentsTrackingCategoriesContactCompanyEmployeePaymentTerm + - value: payments,tracking_categories,contact,company,payment_term + name: PaymentsTrackingCategoriesContactCompanyPaymentTerm + - value: payments,tracking_categories,contact,employee + name: PaymentsTrackingCategoriesContactEmployee + - value: payments,tracking_categories,contact,employee,accounting_period + name: PaymentsTrackingCategoriesContactEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,contact,employee,accounting_period,payment_term + name: PaymentsTrackingCategoriesContactEmployeeAccountingPeriodPaymentTerm + - value: payments,tracking_categories,contact,employee,payment_term + name: PaymentsTrackingCategoriesContactEmployeePaymentTerm + - value: payments,tracking_categories,contact,payment_term + name: PaymentsTrackingCategoriesContactPaymentTerm + - value: payments,tracking_categories,employee + name: PaymentsTrackingCategoriesEmployee + - value: payments,tracking_categories,employee,accounting_period + name: PaymentsTrackingCategoriesEmployeeAccountingPeriod + - value: payments,tracking_categories,employee,accounting_period,payment_term + name: PaymentsTrackingCategoriesEmployeeAccountingPeriodPaymentTerm + - value: payments,tracking_categories,employee,payment_term + name: PaymentsTrackingCategoriesEmployeePaymentTerm + - value: payments,tracking_categories,payment_term + name: PaymentsTrackingCategoriesPaymentTerm + - value: payments,tracking_categories,purchase_orders + name: PaymentsTrackingCategoriesPurchaseOrders + - value: payments,tracking_categories,purchase_orders,accounting_period + name: PaymentsTrackingCategoriesPurchaseOrdersAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,accounting_period,payment_term + name: PaymentsTrackingCategoriesPurchaseOrdersAccountingPeriodPaymentTerm + - value: payments,tracking_categories,purchase_orders,applied_credit_notes + name: PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotes + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,company + name: PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompany + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,company,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact + name: PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContact + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,employee + name: PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,payment_term + name: PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: payments,tracking_categories,purchase_orders,applied_vendor_credits + name: PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCredits + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,company + name: PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact + name: PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContact + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,employee + name: PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: payments,tracking_categories,purchase_orders,company + name: PaymentsTrackingCategoriesPurchaseOrdersCompany + - value: payments,tracking_categories,purchase_orders,company,accounting_period + name: PaymentsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: payments,tracking_categories,purchase_orders,company,employee + name: PaymentsTrackingCategoriesPurchaseOrdersCompanyEmployee + - value: >- + payments,tracking_categories,purchase_orders,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,company,employee,payment_term + name: PaymentsTrackingCategoriesPurchaseOrdersCompanyEmployeePaymentTerm + - value: payments,tracking_categories,purchase_orders,company,payment_term + name: PaymentsTrackingCategoriesPurchaseOrdersCompanyPaymentTerm + - value: payments,tracking_categories,purchase_orders,contact + name: PaymentsTrackingCategoriesPurchaseOrdersContact + - value: payments,tracking_categories,purchase_orders,contact,accounting_period + name: PaymentsTrackingCategoriesPurchaseOrdersContactAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,contact,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: payments,tracking_categories,purchase_orders,contact,company + name: PaymentsTrackingCategoriesPurchaseOrdersContactCompany + - value: >- + payments,tracking_categories,purchase_orders,contact,company,accounting_period + name: PaymentsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,contact,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: payments,tracking_categories,purchase_orders,contact,company,employee + name: PaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployee + - value: >- + payments,tracking_categories,purchase_orders,contact,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,contact,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,contact,company,payment_term + name: PaymentsTrackingCategoriesPurchaseOrdersContactCompanyPaymentTerm + - value: payments,tracking_categories,purchase_orders,contact,employee + name: PaymentsTrackingCategoriesPurchaseOrdersContactEmployee + - value: >- + payments,tracking_categories,purchase_orders,contact,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,contact,employee,payment_term + name: PaymentsTrackingCategoriesPurchaseOrdersContactEmployeePaymentTerm + - value: payments,tracking_categories,purchase_orders,contact,payment_term + name: PaymentsTrackingCategoriesPurchaseOrdersContactPaymentTerm + - value: payments,tracking_categories,purchase_orders,employee + name: PaymentsTrackingCategoriesPurchaseOrdersEmployee + - value: >- + payments,tracking_categories,purchase_orders,employee,accounting_period + name: PaymentsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: payments,tracking_categories,purchase_orders,employee,payment_term + name: PaymentsTrackingCategoriesPurchaseOrdersEmployeePaymentTerm + - value: payments,tracking_categories,purchase_orders,payment_term + name: PaymentsTrackingCategoriesPurchaseOrdersPaymentTerm + - purchase_orders + - value: purchase_orders,accounting_period + name: PurchaseOrdersAccountingPeriod + - value: purchase_orders,accounting_period,payment_term + name: PurchaseOrdersAccountingPeriodPaymentTerm + - value: purchase_orders,applied_credit_notes + name: PurchaseOrdersAppliedCreditNotes + - value: purchase_orders,applied_credit_notes,accounting_period + name: PurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: purchase_orders,applied_credit_notes,accounting_period,payment_term + name: PurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: purchase_orders,applied_credit_notes,applied_vendor_credits + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: purchase_orders,applied_credit_notes,company + name: PurchaseOrdersAppliedCreditNotesCompany + - value: purchase_orders,applied_credit_notes,company,accounting_period + name: PurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: PurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: purchase_orders,applied_credit_notes,company,employee + name: PurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + purchase_orders,applied_credit_notes,company,employee,accounting_period + name: PurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,applied_credit_notes,company,employee,payment_term + name: PurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: purchase_orders,applied_credit_notes,company,payment_term + name: PurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: purchase_orders,applied_credit_notes,contact + name: PurchaseOrdersAppliedCreditNotesContact + - value: purchase_orders,applied_credit_notes,contact,accounting_period + name: PurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: PurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: purchase_orders,applied_credit_notes,contact,company + name: PurchaseOrdersAppliedCreditNotesContactCompany + - value: purchase_orders,applied_credit_notes,contact,company,accounting_period + name: PurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: purchase_orders,applied_credit_notes,contact,company,employee + name: PurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: PurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: PurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: purchase_orders,applied_credit_notes,contact,company,payment_term + name: PurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: purchase_orders,applied_credit_notes,contact,employee + name: PurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: PurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,applied_credit_notes,contact,employee,payment_term + name: PurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: purchase_orders,applied_credit_notes,contact,payment_term + name: PurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: purchase_orders,applied_credit_notes,employee + name: PurchaseOrdersAppliedCreditNotesEmployee + - value: purchase_orders,applied_credit_notes,employee,accounting_period + name: PurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: PurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,applied_credit_notes,employee,payment_term + name: PurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: purchase_orders,applied_credit_notes,payment_term + name: PurchaseOrdersAppliedCreditNotesPaymentTerm + - value: purchase_orders,applied_vendor_credits + name: PurchaseOrdersAppliedVendorCredits + - value: purchase_orders,applied_vendor_credits,accounting_period + name: PurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: PurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: purchase_orders,applied_vendor_credits,company + name: PurchaseOrdersAppliedVendorCreditsCompany + - value: purchase_orders,applied_vendor_credits,company,accounting_period + name: PurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: PurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: purchase_orders,applied_vendor_credits,company,employee + name: PurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: PurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,applied_vendor_credits,company,employee,payment_term + name: PurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: purchase_orders,applied_vendor_credits,company,payment_term + name: PurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: purchase_orders,applied_vendor_credits,contact + name: PurchaseOrdersAppliedVendorCreditsContact + - value: purchase_orders,applied_vendor_credits,contact,accounting_period + name: PurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: PurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: purchase_orders,applied_vendor_credits,contact,company + name: PurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: PurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: purchase_orders,applied_vendor_credits,contact,company,employee + name: PurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: PurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: purchase_orders,applied_vendor_credits,contact,company,payment_term + name: PurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: purchase_orders,applied_vendor_credits,contact,employee + name: PurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: PurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: PurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: purchase_orders,applied_vendor_credits,contact,payment_term + name: PurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: purchase_orders,applied_vendor_credits,employee + name: PurchaseOrdersAppliedVendorCreditsEmployee + - value: purchase_orders,applied_vendor_credits,employee,accounting_period + name: PurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: PurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,applied_vendor_credits,employee,payment_term + name: PurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: purchase_orders,applied_vendor_credits,payment_term + name: PurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: purchase_orders,company + name: PurchaseOrdersCompany + - value: purchase_orders,company,accounting_period + name: PurchaseOrdersCompanyAccountingPeriod + - value: purchase_orders,company,accounting_period,payment_term + name: PurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: purchase_orders,company,employee + name: PurchaseOrdersCompanyEmployee + - value: purchase_orders,company,employee,accounting_period + name: PurchaseOrdersCompanyEmployeeAccountingPeriod + - value: purchase_orders,company,employee,accounting_period,payment_term + name: PurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,company,employee,payment_term + name: PurchaseOrdersCompanyEmployeePaymentTerm + - value: purchase_orders,company,payment_term + name: PurchaseOrdersCompanyPaymentTerm + - value: purchase_orders,contact + name: PurchaseOrdersContact + - value: purchase_orders,contact,accounting_period + name: PurchaseOrdersContactAccountingPeriod + - value: purchase_orders,contact,accounting_period,payment_term + name: PurchaseOrdersContactAccountingPeriodPaymentTerm + - value: purchase_orders,contact,company + name: PurchaseOrdersContactCompany + - value: purchase_orders,contact,company,accounting_period + name: PurchaseOrdersContactCompanyAccountingPeriod + - value: purchase_orders,contact,company,accounting_period,payment_term + name: PurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: purchase_orders,contact,company,employee + name: PurchaseOrdersContactCompanyEmployee + - value: purchase_orders,contact,company,employee,accounting_period + name: PurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + purchase_orders,contact,company,employee,accounting_period,payment_term + name: PurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,contact,company,employee,payment_term + name: PurchaseOrdersContactCompanyEmployeePaymentTerm + - value: purchase_orders,contact,company,payment_term + name: PurchaseOrdersContactCompanyPaymentTerm + - value: purchase_orders,contact,employee + name: PurchaseOrdersContactEmployee + - value: purchase_orders,contact,employee,accounting_period + name: PurchaseOrdersContactEmployeeAccountingPeriod + - value: purchase_orders,contact,employee,accounting_period,payment_term + name: PurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,contact,employee,payment_term + name: PurchaseOrdersContactEmployeePaymentTerm + - value: purchase_orders,contact,payment_term + name: PurchaseOrdersContactPaymentTerm + - value: purchase_orders,employee + name: PurchaseOrdersEmployee + - value: purchase_orders,employee,accounting_period + name: PurchaseOrdersEmployeeAccountingPeriod + - value: purchase_orders,employee,accounting_period,payment_term + name: PurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,employee,payment_term + name: PurchaseOrdersEmployeePaymentTerm + - value: purchase_orders,payment_term + name: PurchaseOrdersPaymentTerm + - tracking_categories + - value: tracking_categories,accounting_period + name: TrackingCategoriesAccountingPeriod + - value: tracking_categories,accounting_period,payment_term + name: TrackingCategoriesAccountingPeriodPaymentTerm + - value: tracking_categories,applied_credit_notes + name: TrackingCategoriesAppliedCreditNotes + - value: tracking_categories,applied_credit_notes,accounting_period + name: TrackingCategoriesAppliedCreditNotesAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,accounting_period,payment_term + name: TrackingCategoriesAppliedCreditNotesAccountingPeriodPaymentTerm + - value: tracking_categories,applied_credit_notes,applied_vendor_credits + name: TrackingCategoriesAppliedCreditNotesAppliedVendorCredits + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,company + name: TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact + name: TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company + name: TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,employee + name: TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,payment_term + name: TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: tracking_categories,applied_credit_notes,company + name: TrackingCategoriesAppliedCreditNotesCompany + - value: tracking_categories,applied_credit_notes,company,accounting_period + name: TrackingCategoriesAppliedCreditNotesCompanyAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,company,accounting_period,payment_term + name: TrackingCategoriesAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,applied_credit_notes,company,employee + name: TrackingCategoriesAppliedCreditNotesCompanyEmployee + - value: >- + tracking_categories,applied_credit_notes,company,employee,accounting_period + name: TrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,applied_credit_notes,company,employee,payment_term + name: TrackingCategoriesAppliedCreditNotesCompanyEmployeePaymentTerm + - value: tracking_categories,applied_credit_notes,company,payment_term + name: TrackingCategoriesAppliedCreditNotesCompanyPaymentTerm + - value: tracking_categories,applied_credit_notes,contact + name: TrackingCategoriesAppliedCreditNotesContact + - value: tracking_categories,applied_credit_notes,contact,accounting_period + name: TrackingCategoriesAppliedCreditNotesContactAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,contact,accounting_period,payment_term + name: TrackingCategoriesAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: tracking_categories,applied_credit_notes,contact,company + name: TrackingCategoriesAppliedCreditNotesContactCompany + - value: >- + tracking_categories,applied_credit_notes,contact,company,accounting_period + name: TrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,applied_credit_notes,contact,company,employee + name: TrackingCategoriesAppliedCreditNotesContactCompanyEmployee + - value: >- + tracking_categories,applied_credit_notes,contact,company,employee,accounting_period + name: >- + TrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,contact,company,employee,payment_term + name: TrackingCategoriesAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: tracking_categories,applied_credit_notes,contact,company,payment_term + name: TrackingCategoriesAppliedCreditNotesContactCompanyPaymentTerm + - value: tracking_categories,applied_credit_notes,contact,employee + name: TrackingCategoriesAppliedCreditNotesContactEmployee + - value: >- + tracking_categories,applied_credit_notes,contact,employee,accounting_period + name: TrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,applied_credit_notes,contact,employee,payment_term + name: TrackingCategoriesAppliedCreditNotesContactEmployeePaymentTerm + - value: tracking_categories,applied_credit_notes,contact,payment_term + name: TrackingCategoriesAppliedCreditNotesContactPaymentTerm + - value: tracking_categories,applied_credit_notes,employee + name: TrackingCategoriesAppliedCreditNotesEmployee + - value: tracking_categories,applied_credit_notes,employee,accounting_period + name: TrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,applied_credit_notes,employee,payment_term + name: TrackingCategoriesAppliedCreditNotesEmployeePaymentTerm + - value: tracking_categories,applied_credit_notes,payment_term + name: TrackingCategoriesAppliedCreditNotesPaymentTerm + - value: tracking_categories,applied_vendor_credits + name: TrackingCategoriesAppliedVendorCredits + - value: tracking_categories,applied_vendor_credits,accounting_period + name: TrackingCategoriesAppliedVendorCreditsAccountingPeriod + - value: >- + tracking_categories,applied_vendor_credits,accounting_period,payment_term + name: TrackingCategoriesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: tracking_categories,applied_vendor_credits,company + name: TrackingCategoriesAppliedVendorCreditsCompany + - value: tracking_categories,applied_vendor_credits,company,accounting_period + name: TrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + tracking_categories,applied_vendor_credits,company,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,applied_vendor_credits,company,employee + name: TrackingCategoriesAppliedVendorCreditsCompanyEmployee + - value: >- + tracking_categories,applied_vendor_credits,company,employee,accounting_period + name: TrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_vendor_credits,company,employee,payment_term + name: TrackingCategoriesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: tracking_categories,applied_vendor_credits,company,payment_term + name: TrackingCategoriesAppliedVendorCreditsCompanyPaymentTerm + - value: tracking_categories,applied_vendor_credits,contact + name: TrackingCategoriesAppliedVendorCreditsContact + - value: tracking_categories,applied_vendor_credits,contact,accounting_period + name: TrackingCategoriesAppliedVendorCreditsContactAccountingPeriod + - value: >- + tracking_categories,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: tracking_categories,applied_vendor_credits,contact,company + name: TrackingCategoriesAppliedVendorCreditsContactCompany + - value: >- + tracking_categories,applied_vendor_credits,contact,company,accounting_period + name: TrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + tracking_categories,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,applied_vendor_credits,contact,company,employee + name: TrackingCategoriesAppliedVendorCreditsContactCompanyEmployee + - value: >- + tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + TrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_vendor_credits,contact,company,employee,payment_term + name: >- + TrackingCategoriesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + tracking_categories,applied_vendor_credits,contact,company,payment_term + name: TrackingCategoriesAppliedVendorCreditsContactCompanyPaymentTerm + - value: tracking_categories,applied_vendor_credits,contact,employee + name: TrackingCategoriesAppliedVendorCreditsContactEmployee + - value: >- + tracking_categories,applied_vendor_credits,contact,employee,accounting_period + name: TrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_vendor_credits,contact,employee,payment_term + name: TrackingCategoriesAppliedVendorCreditsContactEmployeePaymentTerm + - value: tracking_categories,applied_vendor_credits,contact,payment_term + name: TrackingCategoriesAppliedVendorCreditsContactPaymentTerm + - value: tracking_categories,applied_vendor_credits,employee + name: TrackingCategoriesAppliedVendorCreditsEmployee + - value: tracking_categories,applied_vendor_credits,employee,accounting_period + name: TrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,applied_vendor_credits,employee,payment_term + name: TrackingCategoriesAppliedVendorCreditsEmployeePaymentTerm + - value: tracking_categories,applied_vendor_credits,payment_term + name: TrackingCategoriesAppliedVendorCreditsPaymentTerm + - value: tracking_categories,company + name: TrackingCategoriesCompany + - value: tracking_categories,company,accounting_period + name: TrackingCategoriesCompanyAccountingPeriod + - value: tracking_categories,company,accounting_period,payment_term + name: TrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,company,employee + name: TrackingCategoriesCompanyEmployee + - value: tracking_categories,company,employee,accounting_period + name: TrackingCategoriesCompanyEmployeeAccountingPeriod + - value: tracking_categories,company,employee,accounting_period,payment_term + name: TrackingCategoriesCompanyEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,company,employee,payment_term + name: TrackingCategoriesCompanyEmployeePaymentTerm + - value: tracking_categories,company,payment_term + name: TrackingCategoriesCompanyPaymentTerm + - value: tracking_categories,contact + name: TrackingCategoriesContact + - value: tracking_categories,contact,accounting_period + name: TrackingCategoriesContactAccountingPeriod + - value: tracking_categories,contact,accounting_period,payment_term + name: TrackingCategoriesContactAccountingPeriodPaymentTerm + - value: tracking_categories,contact,company + name: TrackingCategoriesContactCompany + - value: tracking_categories,contact,company,accounting_period + name: TrackingCategoriesContactCompanyAccountingPeriod + - value: tracking_categories,contact,company,accounting_period,payment_term + name: TrackingCategoriesContactCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,contact,company,employee + name: TrackingCategoriesContactCompanyEmployee + - value: tracking_categories,contact,company,employee,accounting_period + name: TrackingCategoriesContactCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,contact,company,employee,accounting_period,payment_term + name: TrackingCategoriesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,contact,company,employee,payment_term + name: TrackingCategoriesContactCompanyEmployeePaymentTerm + - value: tracking_categories,contact,company,payment_term + name: TrackingCategoriesContactCompanyPaymentTerm + - value: tracking_categories,contact,employee + name: TrackingCategoriesContactEmployee + - value: tracking_categories,contact,employee,accounting_period + name: TrackingCategoriesContactEmployeeAccountingPeriod + - value: tracking_categories,contact,employee,accounting_period,payment_term + name: TrackingCategoriesContactEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,contact,employee,payment_term + name: TrackingCategoriesContactEmployeePaymentTerm + - value: tracking_categories,contact,payment_term + name: TrackingCategoriesContactPaymentTerm + - value: tracking_categories,employee + name: TrackingCategoriesEmployee + - value: tracking_categories,employee,accounting_period + name: TrackingCategoriesEmployeeAccountingPeriod + - value: tracking_categories,employee,accounting_period,payment_term + name: TrackingCategoriesEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,employee,payment_term + name: TrackingCategoriesEmployeePaymentTerm + - value: tracking_categories,payment_term + name: TrackingCategoriesPaymentTerm + - value: tracking_categories,purchase_orders + name: TrackingCategoriesPurchaseOrders + - value: tracking_categories,purchase_orders,accounting_period + name: TrackingCategoriesPurchaseOrdersAccountingPeriod + - value: tracking_categories,purchase_orders,accounting_period,payment_term + name: TrackingCategoriesPurchaseOrdersAccountingPeriodPaymentTerm + - value: tracking_categories,purchase_orders,applied_credit_notes + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotes + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,accounting_period + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: tracking_categories,purchase_orders,applied_credit_notes,company + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesCompany + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,company,employee + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,company,payment_term + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: tracking_categories,purchase_orders,applied_credit_notes,contact + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesContact + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,company + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,employee + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,payment_term + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: tracking_categories,purchase_orders,applied_credit_notes,employee + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,employee,payment_term + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: tracking_categories,purchase_orders,applied_credit_notes,payment_term + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: tracking_categories,purchase_orders,applied_vendor_credits + name: TrackingCategoriesPurchaseOrdersAppliedVendorCredits + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,accounting_period + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: tracking_categories,purchase_orders,applied_vendor_credits,company + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,company,employee + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,company,payment_term + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: tracking_categories,purchase_orders,applied_vendor_credits,contact + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContact + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,company + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,employee + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,payment_term + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: tracking_categories,purchase_orders,applied_vendor_credits,employee + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,payment_term + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: tracking_categories,purchase_orders,company + name: TrackingCategoriesPurchaseOrdersCompany + - value: tracking_categories,purchase_orders,company,accounting_period + name: TrackingCategoriesPurchaseOrdersCompanyAccountingPeriod + - value: >- + tracking_categories,purchase_orders,company,accounting_period,payment_term + name: TrackingCategoriesPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,purchase_orders,company,employee + name: TrackingCategoriesPurchaseOrdersCompanyEmployee + - value: tracking_categories,purchase_orders,company,employee,accounting_period + name: TrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,purchase_orders,company,employee,payment_term + name: TrackingCategoriesPurchaseOrdersCompanyEmployeePaymentTerm + - value: tracking_categories,purchase_orders,company,payment_term + name: TrackingCategoriesPurchaseOrdersCompanyPaymentTerm + - value: tracking_categories,purchase_orders,contact + name: TrackingCategoriesPurchaseOrdersContact + - value: tracking_categories,purchase_orders,contact,accounting_period + name: TrackingCategoriesPurchaseOrdersContactAccountingPeriod + - value: >- + tracking_categories,purchase_orders,contact,accounting_period,payment_term + name: TrackingCategoriesPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: tracking_categories,purchase_orders,contact,company + name: TrackingCategoriesPurchaseOrdersContactCompany + - value: tracking_categories,purchase_orders,contact,company,accounting_period + name: TrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + tracking_categories,purchase_orders,contact,company,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,purchase_orders,contact,company,employee + name: TrackingCategoriesPurchaseOrdersContactCompanyEmployee + - value: >- + tracking_categories,purchase_orders,contact,company,employee,accounting_period + name: TrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,contact,company,employee,payment_term + name: TrackingCategoriesPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: tracking_categories,purchase_orders,contact,company,payment_term + name: TrackingCategoriesPurchaseOrdersContactCompanyPaymentTerm + - value: tracking_categories,purchase_orders,contact,employee + name: TrackingCategoriesPurchaseOrdersContactEmployee + - value: tracking_categories,purchase_orders,contact,employee,accounting_period + name: TrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,purchase_orders,contact,employee,payment_term + name: TrackingCategoriesPurchaseOrdersContactEmployeePaymentTerm + - value: tracking_categories,purchase_orders,contact,payment_term + name: TrackingCategoriesPurchaseOrdersContactPaymentTerm + - value: tracking_categories,purchase_orders,employee + name: TrackingCategoriesPurchaseOrdersEmployee + - value: tracking_categories,purchase_orders,employee,accounting_period + name: TrackingCategoriesPurchaseOrdersEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,employee,accounting_period,payment_term + name: TrackingCategoriesPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,purchase_orders,employee,payment_term + name: TrackingCategoriesPurchaseOrdersEmployeePaymentTerm + - value: tracking_categories,purchase_orders,payment_term + name: TrackingCategoriesPurchaseOrdersPaymentTerm + source: + openapi: openapi/openapi.yml + InvoicesListRequestStatus: + enum: + - DRAFT + - OPEN + - PAID + - PARTIALLY_PAID + - SUBMITTED + - VOID + source: + openapi: openapi/openapi.yml + InvoicesListRequestType: + enum: + - ACCOUNTS_PAYABLE + - ACCOUNTS_RECEIVABLE + source: + openapi: openapi/openapi.yml + InvoicesRetrieveRequestExpand: + enum: + - accounting_period + - value: accounting_period,payment_term + name: AccountingPeriodPaymentTerm + - applied_credit_notes + - value: applied_credit_notes,accounting_period + name: AppliedCreditNotesAccountingPeriod + - value: applied_credit_notes,accounting_period,payment_term + name: AppliedCreditNotesAccountingPeriodPaymentTerm + - value: applied_credit_notes,applied_vendor_credits + name: AppliedCreditNotesAppliedVendorCredits + - value: applied_credit_notes,applied_vendor_credits,accounting_period + name: AppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: AppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: applied_credit_notes,applied_vendor_credits,company + name: AppliedCreditNotesAppliedVendorCreditsCompany + - value: applied_credit_notes,applied_vendor_credits,company,accounting_period + name: AppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: applied_credit_notes,applied_vendor_credits,company,employee + name: AppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: AppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: AppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: applied_credit_notes,applied_vendor_credits,company,payment_term + name: AppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: applied_credit_notes,applied_vendor_credits,contact + name: AppliedCreditNotesAppliedVendorCreditsContact + - value: applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: AppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: applied_credit_notes,applied_vendor_credits,contact,company + name: AppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: AppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: applied_credit_notes,applied_vendor_credits,contact,company,employee + name: AppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: AppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: applied_credit_notes,applied_vendor_credits,contact,employee + name: AppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: AppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: AppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: applied_credit_notes,applied_vendor_credits,contact,payment_term + name: AppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: applied_credit_notes,applied_vendor_credits,employee + name: AppliedCreditNotesAppliedVendorCreditsEmployee + - value: applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: AppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: applied_credit_notes,applied_vendor_credits,employee,payment_term + name: AppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: applied_credit_notes,applied_vendor_credits,payment_term + name: AppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: applied_credit_notes,company + name: AppliedCreditNotesCompany + - value: applied_credit_notes,company,accounting_period + name: AppliedCreditNotesCompanyAccountingPeriod + - value: applied_credit_notes,company,accounting_period,payment_term + name: AppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: applied_credit_notes,company,employee + name: AppliedCreditNotesCompanyEmployee + - value: applied_credit_notes,company,employee,accounting_period + name: AppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: applied_credit_notes,company,employee,accounting_period,payment_term + name: AppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_credit_notes,company,employee,payment_term + name: AppliedCreditNotesCompanyEmployeePaymentTerm + - value: applied_credit_notes,company,payment_term + name: AppliedCreditNotesCompanyPaymentTerm + - value: applied_credit_notes,contact + name: AppliedCreditNotesContact + - value: applied_credit_notes,contact,accounting_period + name: AppliedCreditNotesContactAccountingPeriod + - value: applied_credit_notes,contact,accounting_period,payment_term + name: AppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: applied_credit_notes,contact,company + name: AppliedCreditNotesContactCompany + - value: applied_credit_notes,contact,company,accounting_period + name: AppliedCreditNotesContactCompanyAccountingPeriod + - value: applied_credit_notes,contact,company,accounting_period,payment_term + name: AppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: applied_credit_notes,contact,company,employee + name: AppliedCreditNotesContactCompanyEmployee + - value: applied_credit_notes,contact,company,employee,accounting_period + name: AppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: AppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_credit_notes,contact,company,employee,payment_term + name: AppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: applied_credit_notes,contact,company,payment_term + name: AppliedCreditNotesContactCompanyPaymentTerm + - value: applied_credit_notes,contact,employee + name: AppliedCreditNotesContactEmployee + - value: applied_credit_notes,contact,employee,accounting_period + name: AppliedCreditNotesContactEmployeeAccountingPeriod + - value: applied_credit_notes,contact,employee,accounting_period,payment_term + name: AppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: applied_credit_notes,contact,employee,payment_term + name: AppliedCreditNotesContactEmployeePaymentTerm + - value: applied_credit_notes,contact,payment_term + name: AppliedCreditNotesContactPaymentTerm + - value: applied_credit_notes,employee + name: AppliedCreditNotesEmployee + - value: applied_credit_notes,employee,accounting_period + name: AppliedCreditNotesEmployeeAccountingPeriod + - value: applied_credit_notes,employee,accounting_period,payment_term + name: AppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: applied_credit_notes,employee,payment_term + name: AppliedCreditNotesEmployeePaymentTerm + - value: applied_credit_notes,payment_term + name: AppliedCreditNotesPaymentTerm + - applied_payments + - value: applied_payments,accounting_period + name: AppliedPaymentsAccountingPeriod + - value: applied_payments,accounting_period,payment_term + name: AppliedPaymentsAccountingPeriodPaymentTerm + - value: applied_payments,applied_credit_notes + name: AppliedPaymentsAppliedCreditNotes + - value: applied_payments,applied_credit_notes,accounting_period + name: AppliedPaymentsAppliedCreditNotesAccountingPeriod + - value: applied_payments,applied_credit_notes,accounting_period,payment_term + name: AppliedPaymentsAppliedCreditNotesAccountingPeriodPaymentTerm + - value: applied_payments,applied_credit_notes,applied_vendor_credits + name: AppliedPaymentsAppliedCreditNotesAppliedVendorCredits + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,accounting_period + name: AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: applied_payments,applied_credit_notes,applied_vendor_credits,company + name: AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,company,employee + name: AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: applied_payments,applied_credit_notes,applied_vendor_credits,contact + name: AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,company + name: AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee + name: AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: applied_payments,applied_credit_notes,applied_vendor_credits,employee + name: AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,applied_credit_notes,applied_vendor_credits,payment_term + name: AppliedPaymentsAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: applied_payments,applied_credit_notes,company + name: AppliedPaymentsAppliedCreditNotesCompany + - value: applied_payments,applied_credit_notes,company,accounting_period + name: AppliedPaymentsAppliedCreditNotesCompanyAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,company,accounting_period,payment_term + name: AppliedPaymentsAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: applied_payments,applied_credit_notes,company,employee + name: AppliedPaymentsAppliedCreditNotesCompanyEmployee + - value: >- + applied_payments,applied_credit_notes,company,employee,accounting_period + name: AppliedPaymentsAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,applied_credit_notes,company,employee,payment_term + name: AppliedPaymentsAppliedCreditNotesCompanyEmployeePaymentTerm + - value: applied_payments,applied_credit_notes,company,payment_term + name: AppliedPaymentsAppliedCreditNotesCompanyPaymentTerm + - value: applied_payments,applied_credit_notes,contact + name: AppliedPaymentsAppliedCreditNotesContact + - value: applied_payments,applied_credit_notes,contact,accounting_period + name: AppliedPaymentsAppliedCreditNotesContactAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,contact,accounting_period,payment_term + name: AppliedPaymentsAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: applied_payments,applied_credit_notes,contact,company + name: AppliedPaymentsAppliedCreditNotesContactCompany + - value: >- + applied_payments,applied_credit_notes,contact,company,accounting_period + name: AppliedPaymentsAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: applied_payments,applied_credit_notes,contact,company,employee + name: AppliedPaymentsAppliedCreditNotesContactCompanyEmployee + - value: >- + applied_payments,applied_credit_notes,contact,company,employee,accounting_period + name: >- + AppliedPaymentsAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,applied_credit_notes,contact,company,employee,payment_term + name: AppliedPaymentsAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: applied_payments,applied_credit_notes,contact,company,payment_term + name: AppliedPaymentsAppliedCreditNotesContactCompanyPaymentTerm + - value: applied_payments,applied_credit_notes,contact,employee + name: AppliedPaymentsAppliedCreditNotesContactEmployee + - value: >- + applied_payments,applied_credit_notes,contact,employee,accounting_period + name: AppliedPaymentsAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,applied_credit_notes,contact,employee,payment_term + name: AppliedPaymentsAppliedCreditNotesContactEmployeePaymentTerm + - value: applied_payments,applied_credit_notes,contact,payment_term + name: AppliedPaymentsAppliedCreditNotesContactPaymentTerm + - value: applied_payments,applied_credit_notes,employee + name: AppliedPaymentsAppliedCreditNotesEmployee + - value: applied_payments,applied_credit_notes,employee,accounting_period + name: AppliedPaymentsAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + applied_payments,applied_credit_notes,employee,accounting_period,payment_term + name: AppliedPaymentsAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,applied_credit_notes,employee,payment_term + name: AppliedPaymentsAppliedCreditNotesEmployeePaymentTerm + - value: applied_payments,applied_credit_notes,payment_term + name: AppliedPaymentsAppliedCreditNotesPaymentTerm + - value: applied_payments,applied_vendor_credits + name: AppliedPaymentsAppliedVendorCredits + - value: applied_payments,applied_vendor_credits,accounting_period + name: AppliedPaymentsAppliedVendorCreditsAccountingPeriod + - value: applied_payments,applied_vendor_credits,accounting_period,payment_term + name: AppliedPaymentsAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: applied_payments,applied_vendor_credits,company + name: AppliedPaymentsAppliedVendorCreditsCompany + - value: applied_payments,applied_vendor_credits,company,accounting_period + name: AppliedPaymentsAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,applied_vendor_credits,company,accounting_period,payment_term + name: AppliedPaymentsAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: applied_payments,applied_vendor_credits,company,employee + name: AppliedPaymentsAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,applied_vendor_credits,company,employee,accounting_period + name: AppliedPaymentsAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,applied_vendor_credits,company,employee,payment_term + name: AppliedPaymentsAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: applied_payments,applied_vendor_credits,company,payment_term + name: AppliedPaymentsAppliedVendorCreditsCompanyPaymentTerm + - value: applied_payments,applied_vendor_credits,contact + name: AppliedPaymentsAppliedVendorCreditsContact + - value: applied_payments,applied_vendor_credits,contact,accounting_period + name: AppliedPaymentsAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,applied_vendor_credits,contact,accounting_period,payment_term + name: AppliedPaymentsAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: applied_payments,applied_vendor_credits,contact,company + name: AppliedPaymentsAppliedVendorCreditsContactCompany + - value: >- + applied_payments,applied_vendor_credits,contact,company,accounting_period + name: AppliedPaymentsAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: applied_payments,applied_vendor_credits,contact,company,employee + name: AppliedPaymentsAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,applied_vendor_credits,contact,company,employee,payment_term + name: AppliedPaymentsAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: applied_payments,applied_vendor_credits,contact,company,payment_term + name: AppliedPaymentsAppliedVendorCreditsContactCompanyPaymentTerm + - value: applied_payments,applied_vendor_credits,contact,employee + name: AppliedPaymentsAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,applied_vendor_credits,contact,employee,accounting_period + name: AppliedPaymentsAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,applied_vendor_credits,contact,employee,payment_term + name: AppliedPaymentsAppliedVendorCreditsContactEmployeePaymentTerm + - value: applied_payments,applied_vendor_credits,contact,payment_term + name: AppliedPaymentsAppliedVendorCreditsContactPaymentTerm + - value: applied_payments,applied_vendor_credits,employee + name: AppliedPaymentsAppliedVendorCreditsEmployee + - value: applied_payments,applied_vendor_credits,employee,accounting_period + name: AppliedPaymentsAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,applied_vendor_credits,employee,accounting_period,payment_term + name: AppliedPaymentsAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,applied_vendor_credits,employee,payment_term + name: AppliedPaymentsAppliedVendorCreditsEmployeePaymentTerm + - value: applied_payments,applied_vendor_credits,payment_term + name: AppliedPaymentsAppliedVendorCreditsPaymentTerm + - value: applied_payments,company + name: AppliedPaymentsCompany + - value: applied_payments,company,accounting_period + name: AppliedPaymentsCompanyAccountingPeriod + - value: applied_payments,company,accounting_period,payment_term + name: AppliedPaymentsCompanyAccountingPeriodPaymentTerm + - value: applied_payments,company,employee + name: AppliedPaymentsCompanyEmployee + - value: applied_payments,company,employee,accounting_period + name: AppliedPaymentsCompanyEmployeeAccountingPeriod + - value: applied_payments,company,employee,accounting_period,payment_term + name: AppliedPaymentsCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,company,employee,payment_term + name: AppliedPaymentsCompanyEmployeePaymentTerm + - value: applied_payments,company,payment_term + name: AppliedPaymentsCompanyPaymentTerm + - value: applied_payments,contact + name: AppliedPaymentsContact + - value: applied_payments,contact,accounting_period + name: AppliedPaymentsContactAccountingPeriod + - value: applied_payments,contact,accounting_period,payment_term + name: AppliedPaymentsContactAccountingPeriodPaymentTerm + - value: applied_payments,contact,company + name: AppliedPaymentsContactCompany + - value: applied_payments,contact,company,accounting_period + name: AppliedPaymentsContactCompanyAccountingPeriod + - value: applied_payments,contact,company,accounting_period,payment_term + name: AppliedPaymentsContactCompanyAccountingPeriodPaymentTerm + - value: applied_payments,contact,company,employee + name: AppliedPaymentsContactCompanyEmployee + - value: applied_payments,contact,company,employee,accounting_period + name: AppliedPaymentsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,contact,company,employee,accounting_period,payment_term + name: AppliedPaymentsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,contact,company,employee,payment_term + name: AppliedPaymentsContactCompanyEmployeePaymentTerm + - value: applied_payments,contact,company,payment_term + name: AppliedPaymentsContactCompanyPaymentTerm + - value: applied_payments,contact,employee + name: AppliedPaymentsContactEmployee + - value: applied_payments,contact,employee,accounting_period + name: AppliedPaymentsContactEmployeeAccountingPeriod + - value: applied_payments,contact,employee,accounting_period,payment_term + name: AppliedPaymentsContactEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,contact,employee,payment_term + name: AppliedPaymentsContactEmployeePaymentTerm + - value: applied_payments,contact,payment_term + name: AppliedPaymentsContactPaymentTerm + - value: applied_payments,employee + name: AppliedPaymentsEmployee + - value: applied_payments,employee,accounting_period + name: AppliedPaymentsEmployeeAccountingPeriod + - value: applied_payments,employee,accounting_period,payment_term + name: AppliedPaymentsEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,employee,payment_term + name: AppliedPaymentsEmployeePaymentTerm + - value: applied_payments,line_items + name: AppliedPaymentsLineItems + - value: applied_payments,line_items,accounting_period + name: AppliedPaymentsLineItemsAccountingPeriod + - value: applied_payments,line_items,accounting_period,payment_term + name: AppliedPaymentsLineItemsAccountingPeriodPaymentTerm + - value: applied_payments,line_items,applied_credit_notes + name: AppliedPaymentsLineItemsAppliedCreditNotes + - value: applied_payments,line_items,applied_credit_notes,accounting_period + name: AppliedPaymentsLineItemsAppliedCreditNotesAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,accounting_period,payment_term + name: AppliedPaymentsLineItemsAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits + name: AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCredits + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company + name: AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact + name: AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee + name: AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: applied_payments,line_items,applied_credit_notes,company + name: AppliedPaymentsLineItemsAppliedCreditNotesCompany + - value: >- + applied_payments,line_items,applied_credit_notes,company,accounting_period + name: AppliedPaymentsLineItemsAppliedCreditNotesCompanyAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: applied_payments,line_items,applied_credit_notes,company,employee + name: AppliedPaymentsLineItemsAppliedCreditNotesCompanyEmployee + - value: >- + applied_payments,line_items,applied_credit_notes,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,company,employee,payment_term + name: AppliedPaymentsLineItemsAppliedCreditNotesCompanyEmployeePaymentTerm + - value: applied_payments,line_items,applied_credit_notes,company,payment_term + name: AppliedPaymentsLineItemsAppliedCreditNotesCompanyPaymentTerm + - value: applied_payments,line_items,applied_credit_notes,contact + name: AppliedPaymentsLineItemsAppliedCreditNotesContact + - value: >- + applied_payments,line_items,applied_credit_notes,contact,accounting_period + name: AppliedPaymentsLineItemsAppliedCreditNotesContactAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: applied_payments,line_items,applied_credit_notes,contact,company + name: AppliedPaymentsLineItemsAppliedCreditNotesContactCompany + - value: >- + applied_payments,line_items,applied_credit_notes,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,contact,company,employee + name: AppliedPaymentsLineItemsAppliedCreditNotesContactCompanyEmployee + - value: >- + applied_payments,line_items,applied_credit_notes,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,contact,company,payment_term + name: AppliedPaymentsLineItemsAppliedCreditNotesContactCompanyPaymentTerm + - value: applied_payments,line_items,applied_credit_notes,contact,employee + name: AppliedPaymentsLineItemsAppliedCreditNotesContactEmployee + - value: >- + applied_payments,line_items,applied_credit_notes,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_credit_notes,contact,employee,payment_term + name: AppliedPaymentsLineItemsAppliedCreditNotesContactEmployeePaymentTerm + - value: applied_payments,line_items,applied_credit_notes,contact,payment_term + name: AppliedPaymentsLineItemsAppliedCreditNotesContactPaymentTerm + - value: applied_payments,line_items,applied_credit_notes,employee + name: AppliedPaymentsLineItemsAppliedCreditNotesEmployee + - value: >- + applied_payments,line_items,applied_credit_notes,employee,accounting_period + name: AppliedPaymentsLineItemsAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_credit_notes,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,line_items,applied_credit_notes,employee,payment_term + name: AppliedPaymentsLineItemsAppliedCreditNotesEmployeePaymentTerm + - value: applied_payments,line_items,applied_credit_notes,payment_term + name: AppliedPaymentsLineItemsAppliedCreditNotesPaymentTerm + - value: applied_payments,line_items,applied_vendor_credits + name: AppliedPaymentsLineItemsAppliedVendorCredits + - value: applied_payments,line_items,applied_vendor_credits,accounting_period + name: AppliedPaymentsLineItemsAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,line_items,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: applied_payments,line_items,applied_vendor_credits,company + name: AppliedPaymentsLineItemsAppliedVendorCreditsCompany + - value: >- + applied_payments,line_items,applied_vendor_credits,company,accounting_period + name: AppliedPaymentsLineItemsAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,line_items,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: applied_payments,line_items,applied_vendor_credits,company,employee + name: AppliedPaymentsLineItemsAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,line_items,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_vendor_credits,company,employee,payment_term + name: AppliedPaymentsLineItemsAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,applied_vendor_credits,company,payment_term + name: AppliedPaymentsLineItemsAppliedVendorCreditsCompanyPaymentTerm + - value: applied_payments,line_items,applied_vendor_credits,contact + name: AppliedPaymentsLineItemsAppliedVendorCreditsContact + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,accounting_period + name: AppliedPaymentsLineItemsAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: applied_payments,line_items,applied_vendor_credits,contact,company + name: AppliedPaymentsLineItemsAppliedVendorCreditsContactCompany + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,company,employee + name: AppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,company,payment_term + name: AppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyPaymentTerm + - value: applied_payments,line_items,applied_vendor_credits,contact,employee + name: AppliedPaymentsLineItemsAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,employee,payment_term + name: AppliedPaymentsLineItemsAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,applied_vendor_credits,contact,payment_term + name: AppliedPaymentsLineItemsAppliedVendorCreditsContactPaymentTerm + - value: applied_payments,line_items,applied_vendor_credits,employee + name: AppliedPaymentsLineItemsAppliedVendorCreditsEmployee + - value: >- + applied_payments,line_items,applied_vendor_credits,employee,accounting_period + name: AppliedPaymentsLineItemsAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,applied_vendor_credits,employee,payment_term + name: AppliedPaymentsLineItemsAppliedVendorCreditsEmployeePaymentTerm + - value: applied_payments,line_items,applied_vendor_credits,payment_term + name: AppliedPaymentsLineItemsAppliedVendorCreditsPaymentTerm + - value: applied_payments,line_items,company + name: AppliedPaymentsLineItemsCompany + - value: applied_payments,line_items,company,accounting_period + name: AppliedPaymentsLineItemsCompanyAccountingPeriod + - value: applied_payments,line_items,company,accounting_period,payment_term + name: AppliedPaymentsLineItemsCompanyAccountingPeriodPaymentTerm + - value: applied_payments,line_items,company,employee + name: AppliedPaymentsLineItemsCompanyEmployee + - value: applied_payments,line_items,company,employee,accounting_period + name: AppliedPaymentsLineItemsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,company,employee,accounting_period,payment_term + name: AppliedPaymentsLineItemsCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,line_items,company,employee,payment_term + name: AppliedPaymentsLineItemsCompanyEmployeePaymentTerm + - value: applied_payments,line_items,company,payment_term + name: AppliedPaymentsLineItemsCompanyPaymentTerm + - value: applied_payments,line_items,contact + name: AppliedPaymentsLineItemsContact + - value: applied_payments,line_items,contact,accounting_period + name: AppliedPaymentsLineItemsContactAccountingPeriod + - value: applied_payments,line_items,contact,accounting_period,payment_term + name: AppliedPaymentsLineItemsContactAccountingPeriodPaymentTerm + - value: applied_payments,line_items,contact,company + name: AppliedPaymentsLineItemsContactCompany + - value: applied_payments,line_items,contact,company,accounting_period + name: AppliedPaymentsLineItemsContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,contact,company,accounting_period,payment_term + name: AppliedPaymentsLineItemsContactCompanyAccountingPeriodPaymentTerm + - value: applied_payments,line_items,contact,company,employee + name: AppliedPaymentsLineItemsContactCompanyEmployee + - value: applied_payments,line_items,contact,company,employee,accounting_period + name: AppliedPaymentsLineItemsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,line_items,contact,company,employee,payment_term + name: AppliedPaymentsLineItemsContactCompanyEmployeePaymentTerm + - value: applied_payments,line_items,contact,company,payment_term + name: AppliedPaymentsLineItemsContactCompanyPaymentTerm + - value: applied_payments,line_items,contact,employee + name: AppliedPaymentsLineItemsContactEmployee + - value: applied_payments,line_items,contact,employee,accounting_period + name: AppliedPaymentsLineItemsContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,contact,employee,accounting_period,payment_term + name: AppliedPaymentsLineItemsContactEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,line_items,contact,employee,payment_term + name: AppliedPaymentsLineItemsContactEmployeePaymentTerm + - value: applied_payments,line_items,contact,payment_term + name: AppliedPaymentsLineItemsContactPaymentTerm + - value: applied_payments,line_items,employee + name: AppliedPaymentsLineItemsEmployee + - value: applied_payments,line_items,employee,accounting_period + name: AppliedPaymentsLineItemsEmployeeAccountingPeriod + - value: applied_payments,line_items,employee,accounting_period,payment_term + name: AppliedPaymentsLineItemsEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,line_items,employee,payment_term + name: AppliedPaymentsLineItemsEmployeePaymentTerm + - value: applied_payments,line_items,payment_term + name: AppliedPaymentsLineItemsPaymentTerm + - value: applied_payments,line_items,purchase_orders + name: AppliedPaymentsLineItemsPurchaseOrders + - value: applied_payments,line_items,purchase_orders,accounting_period + name: AppliedPaymentsLineItemsPurchaseOrdersAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,accounting_period,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersAccountingPeriodPaymentTerm + - value: applied_payments,line_items,purchase_orders,applied_credit_notes + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotes + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,company + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompany + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,company,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContact + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,employee + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_credit_notes,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: applied_payments,line_items,purchase_orders,applied_vendor_credits + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCredits + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,company + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContact + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,employee + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,applied_vendor_credits,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: applied_payments,line_items,purchase_orders,company + name: AppliedPaymentsLineItemsPurchaseOrdersCompany + - value: applied_payments,line_items,purchase_orders,company,accounting_period + name: AppliedPaymentsLineItemsPurchaseOrdersCompanyAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: applied_payments,line_items,purchase_orders,company,employee + name: AppliedPaymentsLineItemsPurchaseOrdersCompanyEmployee + - value: >- + applied_payments,line_items,purchase_orders,company,employee,accounting_period + name: AppliedPaymentsLineItemsPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,company,employee,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersCompanyEmployeePaymentTerm + - value: applied_payments,line_items,purchase_orders,company,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersCompanyPaymentTerm + - value: applied_payments,line_items,purchase_orders,contact + name: AppliedPaymentsLineItemsPurchaseOrdersContact + - value: applied_payments,line_items,purchase_orders,contact,accounting_period + name: AppliedPaymentsLineItemsPurchaseOrdersContactAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: applied_payments,line_items,purchase_orders,contact,company + name: AppliedPaymentsLineItemsPurchaseOrdersContactCompany + - value: >- + applied_payments,line_items,purchase_orders,contact,company,accounting_period + name: AppliedPaymentsLineItemsPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: applied_payments,line_items,purchase_orders,contact,company,employee + name: AppliedPaymentsLineItemsPurchaseOrdersContactCompanyEmployee + - value: >- + applied_payments,line_items,purchase_orders,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,contact,company,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersContactCompanyPaymentTerm + - value: applied_payments,line_items,purchase_orders,contact,employee + name: AppliedPaymentsLineItemsPurchaseOrdersContactEmployee + - value: >- + applied_payments,line_items,purchase_orders,contact,employee,accounting_period + name: AppliedPaymentsLineItemsPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,purchase_orders,contact,employee,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersContactEmployeePaymentTerm + - value: applied_payments,line_items,purchase_orders,contact,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersContactPaymentTerm + - value: applied_payments,line_items,purchase_orders,employee + name: AppliedPaymentsLineItemsPurchaseOrdersEmployee + - value: applied_payments,line_items,purchase_orders,employee,accounting_period + name: AppliedPaymentsLineItemsPurchaseOrdersEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,purchase_orders,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,line_items,purchase_orders,employee,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersEmployeePaymentTerm + - value: applied_payments,line_items,purchase_orders,payment_term + name: AppliedPaymentsLineItemsPurchaseOrdersPaymentTerm + - value: applied_payments,line_items,tracking_categories + name: AppliedPaymentsLineItemsTrackingCategories + - value: applied_payments,line_items,tracking_categories,accounting_period + name: AppliedPaymentsLineItemsTrackingCategoriesAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,accounting_period,payment_term + name: AppliedPaymentsLineItemsTrackingCategoriesAccountingPeriodPaymentTerm + - value: applied_payments,line_items,tracking_categories,applied_credit_notes + name: AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotes + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCredits + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,company + name: AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompany + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact + name: AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContact + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompany + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,contact,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,employee + name: AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_credit_notes,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesPaymentTerm + - value: applied_payments,line_items,tracking_categories,applied_vendor_credits + name: AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCredits + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,company + name: AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompany + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact + name: AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContact + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,employee + name: AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployee + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsPaymentTerm + - value: applied_payments,line_items,tracking_categories,company + name: AppliedPaymentsLineItemsTrackingCategoriesCompany + - value: >- + applied_payments,line_items,tracking_categories,company,accounting_period + name: AppliedPaymentsLineItemsTrackingCategoriesCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: applied_payments,line_items,tracking_categories,company,employee + name: AppliedPaymentsLineItemsTrackingCategoriesCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,company,employee,payment_term + name: AppliedPaymentsLineItemsTrackingCategoriesCompanyEmployeePaymentTerm + - value: applied_payments,line_items,tracking_categories,company,payment_term + name: AppliedPaymentsLineItemsTrackingCategoriesCompanyPaymentTerm + - value: applied_payments,line_items,tracking_categories,contact + name: AppliedPaymentsLineItemsTrackingCategoriesContact + - value: >- + applied_payments,line_items,tracking_categories,contact,accounting_period + name: AppliedPaymentsLineItemsTrackingCategoriesContactAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesContactAccountingPeriodPaymentTerm + - value: applied_payments,line_items,tracking_categories,contact,company + name: AppliedPaymentsLineItemsTrackingCategoriesContactCompany + - value: >- + applied_payments,line_items,tracking_categories,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,contact,company,employee + name: AppliedPaymentsLineItemsTrackingCategoriesContactCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,contact,company,payment_term + name: AppliedPaymentsLineItemsTrackingCategoriesContactCompanyPaymentTerm + - value: applied_payments,line_items,tracking_categories,contact,employee + name: AppliedPaymentsLineItemsTrackingCategoriesContactEmployee + - value: >- + applied_payments,line_items,tracking_categories,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,contact,employee,payment_term + name: AppliedPaymentsLineItemsTrackingCategoriesContactEmployeePaymentTerm + - value: applied_payments,line_items,tracking_categories,contact,payment_term + name: AppliedPaymentsLineItemsTrackingCategoriesContactPaymentTerm + - value: applied_payments,line_items,tracking_categories,employee + name: AppliedPaymentsLineItemsTrackingCategoriesEmployee + - value: >- + applied_payments,line_items,tracking_categories,employee,accounting_period + name: AppliedPaymentsLineItemsTrackingCategoriesEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,line_items,tracking_categories,employee,payment_term + name: AppliedPaymentsLineItemsTrackingCategoriesEmployeePaymentTerm + - value: applied_payments,line_items,tracking_categories,payment_term + name: AppliedPaymentsLineItemsTrackingCategoriesPaymentTerm + - value: applied_payments,line_items,tracking_categories,purchase_orders + name: AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrders + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotes + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompany + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContact + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCredits + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContact + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,company + name: AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompany + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact + name: AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContact + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,company + name: AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompany + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,company,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,company,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,employee + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,contact,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,employee + name: AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployee + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,employee,accounting_period + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriod + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,employee,accounting_period,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,employee,payment_term + name: >- + AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployeePaymentTerm + - value: >- + applied_payments,line_items,tracking_categories,purchase_orders,payment_term + name: AppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersPaymentTerm + - value: applied_payments,payment_term + name: AppliedPaymentsPaymentTerm + - value: applied_payments,purchase_orders + name: AppliedPaymentsPurchaseOrders + - value: applied_payments,purchase_orders,accounting_period + name: AppliedPaymentsPurchaseOrdersAccountingPeriod + - value: applied_payments,purchase_orders,accounting_period,payment_term + name: AppliedPaymentsPurchaseOrdersAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,applied_credit_notes + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotes + - value: >- + applied_payments,purchase_orders,applied_credit_notes,accounting_period + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: applied_payments,purchase_orders,applied_credit_notes,company + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesCompany + - value: >- + applied_payments,purchase_orders,applied_credit_notes,company,accounting_period + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,applied_credit_notes,company,employee + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + applied_payments,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,company,payment_term + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: applied_payments,purchase_orders,applied_credit_notes,contact + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesContact + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,accounting_period + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,applied_credit_notes,contact,company + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,company,employee + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: applied_payments,purchase_orders,applied_credit_notes,contact,employee + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,contact,payment_term + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: applied_payments,purchase_orders,applied_credit_notes,employee + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + applied_payments,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_credit_notes,employee,payment_term + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: applied_payments,purchase_orders,applied_credit_notes,payment_term + name: AppliedPaymentsPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: applied_payments,purchase_orders,applied_vendor_credits + name: AppliedPaymentsPurchaseOrdersAppliedVendorCredits + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,accounting_period + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,applied_vendor_credits,company + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,company,employee + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,company,payment_term + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: applied_payments,purchase_orders,applied_vendor_credits,contact + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContact + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,company + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,employee + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,contact,payment_term + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: applied_payments,purchase_orders,applied_vendor_credits,employee + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,purchase_orders,applied_vendor_credits,employee,payment_term + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: applied_payments,purchase_orders,applied_vendor_credits,payment_term + name: AppliedPaymentsPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: applied_payments,purchase_orders,company + name: AppliedPaymentsPurchaseOrdersCompany + - value: applied_payments,purchase_orders,company,accounting_period + name: AppliedPaymentsPurchaseOrdersCompanyAccountingPeriod + - value: >- + applied_payments,purchase_orders,company,accounting_period,payment_term + name: AppliedPaymentsPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,company,employee + name: AppliedPaymentsPurchaseOrdersCompanyEmployee + - value: applied_payments,purchase_orders,company,employee,accounting_period + name: AppliedPaymentsPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,company,employee,payment_term + name: AppliedPaymentsPurchaseOrdersCompanyEmployeePaymentTerm + - value: applied_payments,purchase_orders,company,payment_term + name: AppliedPaymentsPurchaseOrdersCompanyPaymentTerm + - value: applied_payments,purchase_orders,contact + name: AppliedPaymentsPurchaseOrdersContact + - value: applied_payments,purchase_orders,contact,accounting_period + name: AppliedPaymentsPurchaseOrdersContactAccountingPeriod + - value: >- + applied_payments,purchase_orders,contact,accounting_period,payment_term + name: AppliedPaymentsPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,contact,company + name: AppliedPaymentsPurchaseOrdersContactCompany + - value: applied_payments,purchase_orders,contact,company,accounting_period + name: AppliedPaymentsPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + applied_payments,purchase_orders,contact,company,accounting_period,payment_term + name: AppliedPaymentsPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,contact,company,employee + name: AppliedPaymentsPurchaseOrdersContactCompanyEmployee + - value: >- + applied_payments,purchase_orders,contact,company,employee,accounting_period + name: AppliedPaymentsPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,contact,company,employee,payment_term + name: AppliedPaymentsPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: applied_payments,purchase_orders,contact,company,payment_term + name: AppliedPaymentsPurchaseOrdersContactCompanyPaymentTerm + - value: applied_payments,purchase_orders,contact,employee + name: AppliedPaymentsPurchaseOrdersContactEmployee + - value: applied_payments,purchase_orders,contact,employee,accounting_period + name: AppliedPaymentsPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,contact,employee,payment_term + name: AppliedPaymentsPurchaseOrdersContactEmployeePaymentTerm + - value: applied_payments,purchase_orders,contact,payment_term + name: AppliedPaymentsPurchaseOrdersContactPaymentTerm + - value: applied_payments,purchase_orders,employee + name: AppliedPaymentsPurchaseOrdersEmployee + - value: applied_payments,purchase_orders,employee,accounting_period + name: AppliedPaymentsPurchaseOrdersEmployeeAccountingPeriod + - value: >- + applied_payments,purchase_orders,employee,accounting_period,payment_term + name: AppliedPaymentsPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,purchase_orders,employee,payment_term + name: AppliedPaymentsPurchaseOrdersEmployeePaymentTerm + - value: applied_payments,purchase_orders,payment_term + name: AppliedPaymentsPurchaseOrdersPaymentTerm + - value: applied_payments,tracking_categories + name: AppliedPaymentsTrackingCategories + - value: applied_payments,tracking_categories,accounting_period + name: AppliedPaymentsTrackingCategoriesAccountingPeriod + - value: applied_payments,tracking_categories,accounting_period,payment_term + name: AppliedPaymentsTrackingCategoriesAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,applied_credit_notes + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotes + - value: >- + applied_payments,tracking_categories,applied_credit_notes,accounting_period + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCredits + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: applied_payments,tracking_categories,applied_credit_notes,company + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesCompany + - value: >- + applied_payments,tracking_categories,applied_credit_notes,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,company,employee + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployee + - value: >- + applied_payments,tracking_categories,applied_credit_notes,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,company,payment_term + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyPaymentTerm + - value: applied_payments,tracking_categories,applied_credit_notes,contact + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesContact + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,company + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompany + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,company,employee + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployee + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,employee + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactEmployee + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,contact,payment_term + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesContactPaymentTerm + - value: applied_payments,tracking_categories,applied_credit_notes,employee + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesEmployee + - value: >- + applied_payments,tracking_categories,applied_credit_notes,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_credit_notes,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_credit_notes,employee,payment_term + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesEmployeePaymentTerm + - value: applied_payments,tracking_categories,applied_credit_notes,payment_term + name: AppliedPaymentsTrackingCategoriesAppliedCreditNotesPaymentTerm + - value: applied_payments,tracking_categories,applied_vendor_credits + name: AppliedPaymentsTrackingCategoriesAppliedVendorCredits + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,accounting_period + name: AppliedPaymentsTrackingCategoriesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,applied_vendor_credits,company + name: AppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompany + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,company,employee + name: AppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyPaymentTerm + - value: applied_payments,tracking_categories,applied_vendor_credits,contact + name: AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContact + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,company + name: AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,employee + name: AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactPaymentTerm + - value: applied_payments,tracking_categories,applied_vendor_credits,employee + name: AppliedPaymentsTrackingCategoriesAppliedVendorCreditsEmployee + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,applied_vendor_credits,payment_term + name: AppliedPaymentsTrackingCategoriesAppliedVendorCreditsPaymentTerm + - value: applied_payments,tracking_categories,company + name: AppliedPaymentsTrackingCategoriesCompany + - value: applied_payments,tracking_categories,company,accounting_period + name: AppliedPaymentsTrackingCategoriesCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,company,accounting_period,payment_term + name: AppliedPaymentsTrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,company,employee + name: AppliedPaymentsTrackingCategoriesCompanyEmployee + - value: >- + applied_payments,tracking_categories,company,employee,accounting_period + name: AppliedPaymentsTrackingCategoriesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,company,employee,payment_term + name: AppliedPaymentsTrackingCategoriesCompanyEmployeePaymentTerm + - value: applied_payments,tracking_categories,company,payment_term + name: AppliedPaymentsTrackingCategoriesCompanyPaymentTerm + - value: applied_payments,tracking_categories,contact + name: AppliedPaymentsTrackingCategoriesContact + - value: applied_payments,tracking_categories,contact,accounting_period + name: AppliedPaymentsTrackingCategoriesContactAccountingPeriod + - value: >- + applied_payments,tracking_categories,contact,accounting_period,payment_term + name: AppliedPaymentsTrackingCategoriesContactAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,contact,company + name: AppliedPaymentsTrackingCategoriesContactCompany + - value: applied_payments,tracking_categories,contact,company,accounting_period + name: AppliedPaymentsTrackingCategoriesContactCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesContactCompanyAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,contact,company,employee + name: AppliedPaymentsTrackingCategoriesContactCompanyEmployee + - value: >- + applied_payments,tracking_categories,contact,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,contact,company,employee,payment_term + name: AppliedPaymentsTrackingCategoriesContactCompanyEmployeePaymentTerm + - value: applied_payments,tracking_categories,contact,company,payment_term + name: AppliedPaymentsTrackingCategoriesContactCompanyPaymentTerm + - value: applied_payments,tracking_categories,contact,employee + name: AppliedPaymentsTrackingCategoriesContactEmployee + - value: >- + applied_payments,tracking_categories,contact,employee,accounting_period + name: AppliedPaymentsTrackingCategoriesContactEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesContactEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,contact,employee,payment_term + name: AppliedPaymentsTrackingCategoriesContactEmployeePaymentTerm + - value: applied_payments,tracking_categories,contact,payment_term + name: AppliedPaymentsTrackingCategoriesContactPaymentTerm + - value: applied_payments,tracking_categories,employee + name: AppliedPaymentsTrackingCategoriesEmployee + - value: applied_payments,tracking_categories,employee,accounting_period + name: AppliedPaymentsTrackingCategoriesEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,employee,accounting_period,payment_term + name: AppliedPaymentsTrackingCategoriesEmployeeAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,employee,payment_term + name: AppliedPaymentsTrackingCategoriesEmployeePaymentTerm + - value: applied_payments,tracking_categories,payment_term + name: AppliedPaymentsTrackingCategoriesPaymentTerm + - value: applied_payments,tracking_categories,purchase_orders + name: AppliedPaymentsTrackingCategoriesPurchaseOrders + - value: applied_payments,tracking_categories,purchase_orders,accounting_period + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotes + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompany + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContact + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_credit_notes,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCredits + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContact + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: applied_payments,tracking_categories,purchase_orders,company + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersCompany + - value: >- + applied_payments,tracking_categories,purchase_orders,company,accounting_period + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,purchase_orders,company,employee + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,company,payment_term + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyPaymentTerm + - value: applied_payments,tracking_categories,purchase_orders,contact + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersContact + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,accounting_period + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersContactAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: applied_payments,tracking_categories,purchase_orders,contact,company + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompany + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,company,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,company,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,company,employee + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,company,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,company,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,company,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyPaymentTerm + - value: applied_payments,tracking_categories,purchase_orders,contact,employee + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersContactEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,employee,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersContactEmployeePaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,contact,payment_term + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersContactPaymentTerm + - value: applied_payments,tracking_categories,purchase_orders,employee + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersEmployee + - value: >- + applied_payments,tracking_categories,purchase_orders,employee,accounting_period + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriod + - value: >- + applied_payments,tracking_categories,purchase_orders,employee,accounting_period,payment_term + name: >- + AppliedPaymentsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: >- + applied_payments,tracking_categories,purchase_orders,employee,payment_term + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersEmployeePaymentTerm + - value: applied_payments,tracking_categories,purchase_orders,payment_term + name: AppliedPaymentsTrackingCategoriesPurchaseOrdersPaymentTerm + - applied_vendor_credits + - value: applied_vendor_credits,accounting_period + name: AppliedVendorCreditsAccountingPeriod + - value: applied_vendor_credits,accounting_period,payment_term + name: AppliedVendorCreditsAccountingPeriodPaymentTerm + - value: applied_vendor_credits,company + name: AppliedVendorCreditsCompany + - value: applied_vendor_credits,company,accounting_period + name: AppliedVendorCreditsCompanyAccountingPeriod + - value: applied_vendor_credits,company,accounting_period,payment_term + name: AppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: applied_vendor_credits,company,employee + name: AppliedVendorCreditsCompanyEmployee + - value: applied_vendor_credits,company,employee,accounting_period + name: AppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: applied_vendor_credits,company,employee,accounting_period,payment_term + name: AppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_vendor_credits,company,employee,payment_term + name: AppliedVendorCreditsCompanyEmployeePaymentTerm + - value: applied_vendor_credits,company,payment_term + name: AppliedVendorCreditsCompanyPaymentTerm + - value: applied_vendor_credits,contact + name: AppliedVendorCreditsContact + - value: applied_vendor_credits,contact,accounting_period + name: AppliedVendorCreditsContactAccountingPeriod + - value: applied_vendor_credits,contact,accounting_period,payment_term + name: AppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: applied_vendor_credits,contact,company + name: AppliedVendorCreditsContactCompany + - value: applied_vendor_credits,contact,company,accounting_period + name: AppliedVendorCreditsContactCompanyAccountingPeriod + - value: applied_vendor_credits,contact,company,accounting_period,payment_term + name: AppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: applied_vendor_credits,contact,company,employee + name: AppliedVendorCreditsContactCompanyEmployee + - value: applied_vendor_credits,contact,company,employee,accounting_period + name: AppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: AppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: applied_vendor_credits,contact,company,employee,payment_term + name: AppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: applied_vendor_credits,contact,company,payment_term + name: AppliedVendorCreditsContactCompanyPaymentTerm + - value: applied_vendor_credits,contact,employee + name: AppliedVendorCreditsContactEmployee + - value: applied_vendor_credits,contact,employee,accounting_period + name: AppliedVendorCreditsContactEmployeeAccountingPeriod + - value: applied_vendor_credits,contact,employee,accounting_period,payment_term + name: AppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: applied_vendor_credits,contact,employee,payment_term + name: AppliedVendorCreditsContactEmployeePaymentTerm + - value: applied_vendor_credits,contact,payment_term + name: AppliedVendorCreditsContactPaymentTerm + - value: applied_vendor_credits,employee + name: AppliedVendorCreditsEmployee + - value: applied_vendor_credits,employee,accounting_period + name: AppliedVendorCreditsEmployeeAccountingPeriod + - value: applied_vendor_credits,employee,accounting_period,payment_term + name: AppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: applied_vendor_credits,employee,payment_term + name: AppliedVendorCreditsEmployeePaymentTerm + - value: applied_vendor_credits,payment_term + name: AppliedVendorCreditsPaymentTerm + - company + - value: company,accounting_period + name: CompanyAccountingPeriod + - value: company,accounting_period,payment_term + name: CompanyAccountingPeriodPaymentTerm + - value: company,employee + name: CompanyEmployee + - value: company,employee,accounting_period + name: CompanyEmployeeAccountingPeriod + - value: company,employee,accounting_period,payment_term + name: CompanyEmployeeAccountingPeriodPaymentTerm + - value: company,employee,payment_term + name: CompanyEmployeePaymentTerm + - value: company,payment_term + name: CompanyPaymentTerm + - contact + - value: contact,accounting_period + name: ContactAccountingPeriod + - value: contact,accounting_period,payment_term + name: ContactAccountingPeriodPaymentTerm + - value: contact,company + name: ContactCompany + - value: contact,company,accounting_period + name: ContactCompanyAccountingPeriod + - value: contact,company,accounting_period,payment_term + name: ContactCompanyAccountingPeriodPaymentTerm + - value: contact,company,employee + name: ContactCompanyEmployee + - value: contact,company,employee,accounting_period + name: ContactCompanyEmployeeAccountingPeriod + - value: contact,company,employee,accounting_period,payment_term + name: ContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: contact,company,employee,payment_term + name: ContactCompanyEmployeePaymentTerm + - value: contact,company,payment_term + name: ContactCompanyPaymentTerm + - value: contact,employee + name: ContactEmployee + - value: contact,employee,accounting_period + name: ContactEmployeeAccountingPeriod + - value: contact,employee,accounting_period,payment_term + name: ContactEmployeeAccountingPeriodPaymentTerm + - value: contact,employee,payment_term + name: ContactEmployeePaymentTerm + - value: contact,payment_term + name: ContactPaymentTerm + - employee + - value: employee,accounting_period + name: EmployeeAccountingPeriod + - value: employee,accounting_period,payment_term + name: EmployeeAccountingPeriodPaymentTerm + - value: employee,payment_term + name: EmployeePaymentTerm + - line_items + - value: line_items,accounting_period + name: LineItemsAccountingPeriod + - value: line_items,accounting_period,payment_term + name: LineItemsAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes + name: LineItemsAppliedCreditNotes + - value: line_items,applied_credit_notes,accounting_period + name: LineItemsAppliedCreditNotesAccountingPeriod + - value: line_items,applied_credit_notes,accounting_period,payment_term + name: LineItemsAppliedCreditNotesAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,applied_vendor_credits + name: LineItemsAppliedCreditNotesAppliedVendorCredits + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,accounting_period + name: LineItemsAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,applied_vendor_credits,company + name: LineItemsAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: LineItemsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,company,employee + name: LineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,company,payment_term + name: LineItemsAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: line_items,applied_credit_notes,applied_vendor_credits,contact + name: LineItemsAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: LineItemsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,applied_vendor_credits,contact,company + name: LineItemsAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: LineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,employee + name: LineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: LineItemsAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: line_items,applied_credit_notes,applied_vendor_credits,employee + name: LineItemsAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + LineItemsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: LineItemsAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: line_items,applied_credit_notes,applied_vendor_credits,payment_term + name: LineItemsAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: line_items,applied_credit_notes,company + name: LineItemsAppliedCreditNotesCompany + - value: line_items,applied_credit_notes,company,accounting_period + name: LineItemsAppliedCreditNotesCompanyAccountingPeriod + - value: line_items,applied_credit_notes,company,accounting_period,payment_term + name: LineItemsAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,company,employee + name: LineItemsAppliedCreditNotesCompanyEmployee + - value: line_items,applied_credit_notes,company,employee,accounting_period + name: LineItemsAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + line_items,applied_credit_notes,company,employee,accounting_period,payment_term + name: LineItemsAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,company,employee,payment_term + name: LineItemsAppliedCreditNotesCompanyEmployeePaymentTerm + - value: line_items,applied_credit_notes,company,payment_term + name: LineItemsAppliedCreditNotesCompanyPaymentTerm + - value: line_items,applied_credit_notes,contact + name: LineItemsAppliedCreditNotesContact + - value: line_items,applied_credit_notes,contact,accounting_period + name: LineItemsAppliedCreditNotesContactAccountingPeriod + - value: line_items,applied_credit_notes,contact,accounting_period,payment_term + name: LineItemsAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,contact,company + name: LineItemsAppliedCreditNotesContactCompany + - value: line_items,applied_credit_notes,contact,company,accounting_period + name: LineItemsAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + line_items,applied_credit_notes,contact,company,accounting_period,payment_term + name: LineItemsAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,contact,company,employee + name: LineItemsAppliedCreditNotesContactCompanyEmployee + - value: >- + line_items,applied_credit_notes,contact,company,employee,accounting_period + name: LineItemsAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,contact,company,employee,payment_term + name: LineItemsAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: line_items,applied_credit_notes,contact,company,payment_term + name: LineItemsAppliedCreditNotesContactCompanyPaymentTerm + - value: line_items,applied_credit_notes,contact,employee + name: LineItemsAppliedCreditNotesContactEmployee + - value: line_items,applied_credit_notes,contact,employee,accounting_period + name: LineItemsAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + line_items,applied_credit_notes,contact,employee,accounting_period,payment_term + name: LineItemsAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,contact,employee,payment_term + name: LineItemsAppliedCreditNotesContactEmployeePaymentTerm + - value: line_items,applied_credit_notes,contact,payment_term + name: LineItemsAppliedCreditNotesContactPaymentTerm + - value: line_items,applied_credit_notes,employee + name: LineItemsAppliedCreditNotesEmployee + - value: line_items,applied_credit_notes,employee,accounting_period + name: LineItemsAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + line_items,applied_credit_notes,employee,accounting_period,payment_term + name: LineItemsAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: line_items,applied_credit_notes,employee,payment_term + name: LineItemsAppliedCreditNotesEmployeePaymentTerm + - value: line_items,applied_credit_notes,payment_term + name: LineItemsAppliedCreditNotesPaymentTerm + - value: line_items,applied_vendor_credits + name: LineItemsAppliedVendorCredits + - value: line_items,applied_vendor_credits,accounting_period + name: LineItemsAppliedVendorCreditsAccountingPeriod + - value: line_items,applied_vendor_credits,accounting_period,payment_term + name: LineItemsAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: line_items,applied_vendor_credits,company + name: LineItemsAppliedVendorCreditsCompany + - value: line_items,applied_vendor_credits,company,accounting_period + name: LineItemsAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + line_items,applied_vendor_credits,company,accounting_period,payment_term + name: LineItemsAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: line_items,applied_vendor_credits,company,employee + name: LineItemsAppliedVendorCreditsCompanyEmployee + - value: line_items,applied_vendor_credits,company,employee,accounting_period + name: LineItemsAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + line_items,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + LineItemsAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: line_items,applied_vendor_credits,company,employee,payment_term + name: LineItemsAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: line_items,applied_vendor_credits,company,payment_term + name: LineItemsAppliedVendorCreditsCompanyPaymentTerm + - value: line_items,applied_vendor_credits,contact + name: LineItemsAppliedVendorCreditsContact + - value: line_items,applied_vendor_credits,contact,accounting_period + name: LineItemsAppliedVendorCreditsContactAccountingPeriod + - value: >- + line_items,applied_vendor_credits,contact,accounting_period,payment_term + name: LineItemsAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: line_items,applied_vendor_credits,contact,company + name: LineItemsAppliedVendorCreditsContactCompany + - value: line_items,applied_vendor_credits,contact,company,accounting_period + name: LineItemsAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + line_items,applied_vendor_credits,contact,company,accounting_period,payment_term + name: LineItemsAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: line_items,applied_vendor_credits,contact,company,employee + name: LineItemsAppliedVendorCreditsContactCompanyEmployee + - value: >- + line_items,applied_vendor_credits,contact,company,employee,accounting_period + name: LineItemsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,applied_vendor_credits,contact,company,employee,payment_term + name: LineItemsAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: line_items,applied_vendor_credits,contact,company,payment_term + name: LineItemsAppliedVendorCreditsContactCompanyPaymentTerm + - value: line_items,applied_vendor_credits,contact,employee + name: LineItemsAppliedVendorCreditsContactEmployee + - value: line_items,applied_vendor_credits,contact,employee,accounting_period + name: LineItemsAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + line_items,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + LineItemsAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: line_items,applied_vendor_credits,contact,employee,payment_term + name: LineItemsAppliedVendorCreditsContactEmployeePaymentTerm + - value: line_items,applied_vendor_credits,contact,payment_term + name: LineItemsAppliedVendorCreditsContactPaymentTerm + - value: line_items,applied_vendor_credits,employee + name: LineItemsAppliedVendorCreditsEmployee + - value: line_items,applied_vendor_credits,employee,accounting_period + name: LineItemsAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + line_items,applied_vendor_credits,employee,accounting_period,payment_term + name: LineItemsAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: line_items,applied_vendor_credits,employee,payment_term + name: LineItemsAppliedVendorCreditsEmployeePaymentTerm + - value: line_items,applied_vendor_credits,payment_term + name: LineItemsAppliedVendorCreditsPaymentTerm + - value: line_items,company + name: LineItemsCompany + - value: line_items,company,accounting_period + name: LineItemsCompanyAccountingPeriod + - value: line_items,company,accounting_period,payment_term + name: LineItemsCompanyAccountingPeriodPaymentTerm + - value: line_items,company,employee + name: LineItemsCompanyEmployee + - value: line_items,company,employee,accounting_period + name: LineItemsCompanyEmployeeAccountingPeriod + - value: line_items,company,employee,accounting_period,payment_term + name: LineItemsCompanyEmployeeAccountingPeriodPaymentTerm + - value: line_items,company,employee,payment_term + name: LineItemsCompanyEmployeePaymentTerm + - value: line_items,company,payment_term + name: LineItemsCompanyPaymentTerm + - value: line_items,contact + name: LineItemsContact + - value: line_items,contact,accounting_period + name: LineItemsContactAccountingPeriod + - value: line_items,contact,accounting_period,payment_term + name: LineItemsContactAccountingPeriodPaymentTerm + - value: line_items,contact,company + name: LineItemsContactCompany + - value: line_items,contact,company,accounting_period + name: LineItemsContactCompanyAccountingPeriod + - value: line_items,contact,company,accounting_period,payment_term + name: LineItemsContactCompanyAccountingPeriodPaymentTerm + - value: line_items,contact,company,employee + name: LineItemsContactCompanyEmployee + - value: line_items,contact,company,employee,accounting_period + name: LineItemsContactCompanyEmployeeAccountingPeriod + - value: line_items,contact,company,employee,accounting_period,payment_term + name: LineItemsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: line_items,contact,company,employee,payment_term + name: LineItemsContactCompanyEmployeePaymentTerm + - value: line_items,contact,company,payment_term + name: LineItemsContactCompanyPaymentTerm + - value: line_items,contact,employee + name: LineItemsContactEmployee + - value: line_items,contact,employee,accounting_period + name: LineItemsContactEmployeeAccountingPeriod + - value: line_items,contact,employee,accounting_period,payment_term + name: LineItemsContactEmployeeAccountingPeriodPaymentTerm + - value: line_items,contact,employee,payment_term + name: LineItemsContactEmployeePaymentTerm + - value: line_items,contact,payment_term + name: LineItemsContactPaymentTerm + - value: line_items,employee + name: LineItemsEmployee + - value: line_items,employee,accounting_period + name: LineItemsEmployeeAccountingPeriod + - value: line_items,employee,accounting_period,payment_term + name: LineItemsEmployeeAccountingPeriodPaymentTerm + - value: line_items,employee,payment_term + name: LineItemsEmployeePaymentTerm + - value: line_items,payment_term + name: LineItemsPaymentTerm + - value: line_items,purchase_orders + name: LineItemsPurchaseOrders + - value: line_items,purchase_orders,accounting_period + name: LineItemsPurchaseOrdersAccountingPeriod + - value: line_items,purchase_orders,accounting_period,payment_term + name: LineItemsPurchaseOrdersAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,applied_credit_notes + name: LineItemsPurchaseOrdersAppliedCreditNotes + - value: line_items,purchase_orders,applied_credit_notes,accounting_period + name: LineItemsPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: LineItemsPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,applied_vendor_credits + name: LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,company + name: LineItemsPurchaseOrdersAppliedCreditNotesCompany + - value: >- + line_items,purchase_orders,applied_credit_notes,company,accounting_period + name: LineItemsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,company,employee + name: LineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,company,employee,payment_term + name: LineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,company,payment_term + name: LineItemsPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,contact + name: LineItemsPurchaseOrdersAppliedCreditNotesContact + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,accounting_period + name: LineItemsPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,contact,company + name: LineItemsPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,company,employee + name: LineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,company,payment_term + name: LineItemsPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,contact,employee + name: LineItemsPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: LineItemsPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,contact,payment_term + name: LineItemsPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,employee + name: LineItemsPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + line_items,purchase_orders,applied_credit_notes,employee,accounting_period + name: LineItemsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,employee,payment_term + name: LineItemsPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: line_items,purchase_orders,applied_credit_notes,payment_term + name: LineItemsPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits + name: LineItemsPurchaseOrdersAppliedVendorCredits + - value: line_items,purchase_orders,applied_vendor_credits,accounting_period + name: LineItemsPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + line_items,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: LineItemsPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits,company + name: LineItemsPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + line_items,purchase_orders,applied_vendor_credits,company,accounting_period + name: LineItemsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + line_items,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits,company,employee + name: LineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: LineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits,company,payment_term + name: LineItemsPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits,contact + name: LineItemsPurchaseOrdersAppliedVendorCreditsContact + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,accounting_period + name: LineItemsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits,contact,company + name: LineItemsPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,company,employee + name: LineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: LineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits,contact,employee + name: LineItemsPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: LineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits,contact,payment_term + name: LineItemsPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits,employee + name: LineItemsPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + line_items,purchase_orders,applied_vendor_credits,employee,accounting_period + name: LineItemsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,purchase_orders,applied_vendor_credits,employee,payment_term + name: LineItemsPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: line_items,purchase_orders,applied_vendor_credits,payment_term + name: LineItemsPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: line_items,purchase_orders,company + name: LineItemsPurchaseOrdersCompany + - value: line_items,purchase_orders,company,accounting_period + name: LineItemsPurchaseOrdersCompanyAccountingPeriod + - value: line_items,purchase_orders,company,accounting_period,payment_term + name: LineItemsPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,company,employee + name: LineItemsPurchaseOrdersCompanyEmployee + - value: line_items,purchase_orders,company,employee,accounting_period + name: LineItemsPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,company,employee,accounting_period,payment_term + name: LineItemsPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,company,employee,payment_term + name: LineItemsPurchaseOrdersCompanyEmployeePaymentTerm + - value: line_items,purchase_orders,company,payment_term + name: LineItemsPurchaseOrdersCompanyPaymentTerm + - value: line_items,purchase_orders,contact + name: LineItemsPurchaseOrdersContact + - value: line_items,purchase_orders,contact,accounting_period + name: LineItemsPurchaseOrdersContactAccountingPeriod + - value: line_items,purchase_orders,contact,accounting_period,payment_term + name: LineItemsPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,contact,company + name: LineItemsPurchaseOrdersContactCompany + - value: line_items,purchase_orders,contact,company,accounting_period + name: LineItemsPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + line_items,purchase_orders,contact,company,accounting_period,payment_term + name: LineItemsPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,contact,company,employee + name: LineItemsPurchaseOrdersContactCompanyEmployee + - value: line_items,purchase_orders,contact,company,employee,accounting_period + name: LineItemsPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,contact,company,employee,payment_term + name: LineItemsPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: line_items,purchase_orders,contact,company,payment_term + name: LineItemsPurchaseOrdersContactCompanyPaymentTerm + - value: line_items,purchase_orders,contact,employee + name: LineItemsPurchaseOrdersContactEmployee + - value: line_items,purchase_orders,contact,employee,accounting_period + name: LineItemsPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + line_items,purchase_orders,contact,employee,accounting_period,payment_term + name: LineItemsPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,contact,employee,payment_term + name: LineItemsPurchaseOrdersContactEmployeePaymentTerm + - value: line_items,purchase_orders,contact,payment_term + name: LineItemsPurchaseOrdersContactPaymentTerm + - value: line_items,purchase_orders,employee + name: LineItemsPurchaseOrdersEmployee + - value: line_items,purchase_orders,employee,accounting_period + name: LineItemsPurchaseOrdersEmployeeAccountingPeriod + - value: line_items,purchase_orders,employee,accounting_period,payment_term + name: LineItemsPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: line_items,purchase_orders,employee,payment_term + name: LineItemsPurchaseOrdersEmployeePaymentTerm + - value: line_items,purchase_orders,payment_term + name: LineItemsPurchaseOrdersPaymentTerm + - value: line_items,tracking_categories + name: LineItemsTrackingCategories + - value: line_items,tracking_categories,accounting_period + name: LineItemsTrackingCategoriesAccountingPeriod + - value: line_items,tracking_categories,accounting_period,payment_term + name: LineItemsTrackingCategoriesAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,applied_credit_notes + name: LineItemsTrackingCategoriesAppliedCreditNotes + - value: line_items,tracking_categories,applied_credit_notes,accounting_period + name: LineItemsTrackingCategoriesAppliedCreditNotesAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits + name: LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCredits + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: line_items,tracking_categories,applied_credit_notes,company + name: LineItemsTrackingCategoriesAppliedCreditNotesCompany + - value: >- + line_items,tracking_categories,applied_credit_notes,company,accounting_period + name: LineItemsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,applied_credit_notes,company,employee + name: LineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployee + - value: >- + line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,company,payment_term + name: LineItemsTrackingCategoriesAppliedCreditNotesCompanyPaymentTerm + - value: line_items,tracking_categories,applied_credit_notes,contact + name: LineItemsTrackingCategoriesAppliedCreditNotesContact + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,accounting_period + name: LineItemsTrackingCategoriesAppliedCreditNotesContactAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,applied_credit_notes,contact,company + name: LineItemsTrackingCategoriesAppliedCreditNotesContactCompany + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,company,employee + name: LineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployee + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,company,payment_term + name: LineItemsTrackingCategoriesAppliedCreditNotesContactCompanyPaymentTerm + - value: line_items,tracking_categories,applied_credit_notes,contact,employee + name: LineItemsTrackingCategoriesAppliedCreditNotesContactEmployee + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,contact,payment_term + name: LineItemsTrackingCategoriesAppliedCreditNotesContactPaymentTerm + - value: line_items,tracking_categories,applied_credit_notes,employee + name: LineItemsTrackingCategoriesAppliedCreditNotesEmployee + - value: >- + line_items,tracking_categories,applied_credit_notes,employee,accounting_period + name: LineItemsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_credit_notes,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_credit_notes,employee,payment_term + name: LineItemsTrackingCategoriesAppliedCreditNotesEmployeePaymentTerm + - value: line_items,tracking_categories,applied_credit_notes,payment_term + name: LineItemsTrackingCategoriesAppliedCreditNotesPaymentTerm + - value: line_items,tracking_categories,applied_vendor_credits + name: LineItemsTrackingCategoriesAppliedVendorCredits + - value: >- + line_items,tracking_categories,applied_vendor_credits,accounting_period + name: LineItemsTrackingCategoriesAppliedVendorCreditsAccountingPeriod + - value: >- + line_items,tracking_categories,applied_vendor_credits,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,applied_vendor_credits,company + name: LineItemsTrackingCategoriesAppliedVendorCreditsCompany + - value: >- + line_items,tracking_categories,applied_vendor_credits,company,accounting_period + name: LineItemsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,applied_vendor_credits,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,applied_vendor_credits,company,employee + name: LineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployee + - value: >- + line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_vendor_credits,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_vendor_credits,company,payment_term + name: LineItemsTrackingCategoriesAppliedVendorCreditsCompanyPaymentTerm + - value: line_items,tracking_categories,applied_vendor_credits,contact + name: LineItemsTrackingCategoriesAppliedVendorCreditsContact + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,accounting_period + name: LineItemsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriod + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,applied_vendor_credits,contact,company + name: LineItemsTrackingCategoriesAppliedVendorCreditsContactCompany + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,company,employee + name: LineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployee + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,company,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyPaymentTerm + - value: line_items,tracking_categories,applied_vendor_credits,contact,employee + name: LineItemsTrackingCategoriesAppliedVendorCreditsContactEmployee + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,employee,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + line_items,tracking_categories,applied_vendor_credits,contact,payment_term + name: LineItemsTrackingCategoriesAppliedVendorCreditsContactPaymentTerm + - value: line_items,tracking_categories,applied_vendor_credits,employee + name: LineItemsTrackingCategoriesAppliedVendorCreditsEmployee + - value: >- + line_items,tracking_categories,applied_vendor_credits,employee,accounting_period + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,applied_vendor_credits,employee,payment_term + name: LineItemsTrackingCategoriesAppliedVendorCreditsEmployeePaymentTerm + - value: line_items,tracking_categories,applied_vendor_credits,payment_term + name: LineItemsTrackingCategoriesAppliedVendorCreditsPaymentTerm + - value: line_items,tracking_categories,company + name: LineItemsTrackingCategoriesCompany + - value: line_items,tracking_categories,company,accounting_period + name: LineItemsTrackingCategoriesCompanyAccountingPeriod + - value: line_items,tracking_categories,company,accounting_period,payment_term + name: LineItemsTrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,company,employee + name: LineItemsTrackingCategoriesCompanyEmployee + - value: line_items,tracking_categories,company,employee,accounting_period + name: LineItemsTrackingCategoriesCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,company,employee,accounting_period,payment_term + name: LineItemsTrackingCategoriesCompanyEmployeeAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,company,employee,payment_term + name: LineItemsTrackingCategoriesCompanyEmployeePaymentTerm + - value: line_items,tracking_categories,company,payment_term + name: LineItemsTrackingCategoriesCompanyPaymentTerm + - value: line_items,tracking_categories,contact + name: LineItemsTrackingCategoriesContact + - value: line_items,tracking_categories,contact,accounting_period + name: LineItemsTrackingCategoriesContactAccountingPeriod + - value: line_items,tracking_categories,contact,accounting_period,payment_term + name: LineItemsTrackingCategoriesContactAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,contact,company + name: LineItemsTrackingCategoriesContactCompany + - value: line_items,tracking_categories,contact,company,accounting_period + name: LineItemsTrackingCategoriesContactCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,contact,company,accounting_period,payment_term + name: LineItemsTrackingCategoriesContactCompanyAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,contact,company,employee + name: LineItemsTrackingCategoriesContactCompanyEmployee + - value: >- + line_items,tracking_categories,contact,company,employee,accounting_period + name: LineItemsTrackingCategoriesContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,contact,company,employee,payment_term + name: LineItemsTrackingCategoriesContactCompanyEmployeePaymentTerm + - value: line_items,tracking_categories,contact,company,payment_term + name: LineItemsTrackingCategoriesContactCompanyPaymentTerm + - value: line_items,tracking_categories,contact,employee + name: LineItemsTrackingCategoriesContactEmployee + - value: line_items,tracking_categories,contact,employee,accounting_period + name: LineItemsTrackingCategoriesContactEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,contact,employee,accounting_period,payment_term + name: LineItemsTrackingCategoriesContactEmployeeAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,contact,employee,payment_term + name: LineItemsTrackingCategoriesContactEmployeePaymentTerm + - value: line_items,tracking_categories,contact,payment_term + name: LineItemsTrackingCategoriesContactPaymentTerm + - value: line_items,tracking_categories,employee + name: LineItemsTrackingCategoriesEmployee + - value: line_items,tracking_categories,employee,accounting_period + name: LineItemsTrackingCategoriesEmployeeAccountingPeriod + - value: line_items,tracking_categories,employee,accounting_period,payment_term + name: LineItemsTrackingCategoriesEmployeeAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,employee,payment_term + name: LineItemsTrackingCategoriesEmployeePaymentTerm + - value: line_items,tracking_categories,payment_term + name: LineItemsTrackingCategoriesPaymentTerm + - value: line_items,tracking_categories,purchase_orders + name: LineItemsTrackingCategoriesPurchaseOrders + - value: line_items,tracking_categories,purchase_orders,accounting_period + name: LineItemsTrackingCategoriesPurchaseOrdersAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,accounting_period,payment_term + name: LineItemsTrackingCategoriesPurchaseOrdersAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,purchase_orders,applied_credit_notes + name: LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotes + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,company + name: LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompany + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,company,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact + name: LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContact + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,employee + name: LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_credit_notes,payment_term + name: LineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: line_items,tracking_categories,purchase_orders,applied_vendor_credits + name: LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCredits + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,company + name: LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact + name: LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContact + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee + name: LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,applied_vendor_credits,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: line_items,tracking_categories,purchase_orders,company + name: LineItemsTrackingCategoriesPurchaseOrdersCompany + - value: >- + line_items,tracking_categories,purchase_orders,company,accounting_period + name: LineItemsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,purchase_orders,company,employee + name: LineItemsTrackingCategoriesPurchaseOrdersCompanyEmployee + - value: >- + line_items,tracking_categories,purchase_orders,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,company,employee,payment_term + name: LineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeePaymentTerm + - value: line_items,tracking_categories,purchase_orders,company,payment_term + name: LineItemsTrackingCategoriesPurchaseOrdersCompanyPaymentTerm + - value: line_items,tracking_categories,purchase_orders,contact + name: LineItemsTrackingCategoriesPurchaseOrdersContact + - value: >- + line_items,tracking_categories,purchase_orders,contact,accounting_period + name: LineItemsTrackingCategoriesPurchaseOrdersContactAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,contact,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,purchase_orders,contact,company + name: LineItemsTrackingCategoriesPurchaseOrdersContactCompany + - value: >- + line_items,tracking_categories,purchase_orders,contact,company,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,contact,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,contact,company,employee + name: LineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployee + - value: >- + line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,contact,company,employee,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,contact,company,payment_term + name: LineItemsTrackingCategoriesPurchaseOrdersContactCompanyPaymentTerm + - value: line_items,tracking_categories,purchase_orders,contact,employee + name: LineItemsTrackingCategoriesPurchaseOrdersContactEmployee + - value: >- + line_items,tracking_categories,purchase_orders,contact,employee,accounting_period + name: >- + LineItemsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,purchase_orders,contact,employee,payment_term + name: LineItemsTrackingCategoriesPurchaseOrdersContactEmployeePaymentTerm + - value: line_items,tracking_categories,purchase_orders,contact,payment_term + name: LineItemsTrackingCategoriesPurchaseOrdersContactPaymentTerm + - value: line_items,tracking_categories,purchase_orders,employee + name: LineItemsTrackingCategoriesPurchaseOrdersEmployee + - value: >- + line_items,tracking_categories,purchase_orders,employee,accounting_period + name: LineItemsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriod + - value: >- + line_items,tracking_categories,purchase_orders,employee,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,purchase_orders,employee,payment_term + name: LineItemsTrackingCategoriesPurchaseOrdersEmployeePaymentTerm + - value: line_items,tracking_categories,purchase_orders,payment_term + name: LineItemsTrackingCategoriesPurchaseOrdersPaymentTerm + - payment_term + - payments + - value: payments,accounting_period + name: PaymentsAccountingPeriod + - value: payments,accounting_period,payment_term + name: PaymentsAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes + name: PaymentsAppliedCreditNotes + - value: payments,applied_credit_notes,accounting_period + name: PaymentsAppliedCreditNotesAccountingPeriod + - value: payments,applied_credit_notes,accounting_period,payment_term + name: PaymentsAppliedCreditNotesAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,applied_vendor_credits + name: PaymentsAppliedCreditNotesAppliedVendorCredits + - value: payments,applied_credit_notes,applied_vendor_credits,accounting_period + name: PaymentsAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,applied_vendor_credits,company + name: PaymentsAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: PaymentsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,applied_vendor_credits,company,employee + name: PaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_credit_notes,applied_vendor_credits,company,payment_term + name: PaymentsAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: payments,applied_credit_notes,applied_vendor_credits,contact + name: PaymentsAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: PaymentsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,applied_vendor_credits,contact,company + name: PaymentsAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: PaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: payments,applied_credit_notes,applied_vendor_credits,contact,employee + name: PaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: PaymentsAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: payments,applied_credit_notes,applied_vendor_credits,employee + name: PaymentsAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: PaymentsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: PaymentsAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: payments,applied_credit_notes,applied_vendor_credits,payment_term + name: PaymentsAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: payments,applied_credit_notes,company + name: PaymentsAppliedCreditNotesCompany + - value: payments,applied_credit_notes,company,accounting_period + name: PaymentsAppliedCreditNotesCompanyAccountingPeriod + - value: payments,applied_credit_notes,company,accounting_period,payment_term + name: PaymentsAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,company,employee + name: PaymentsAppliedCreditNotesCompanyEmployee + - value: payments,applied_credit_notes,company,employee,accounting_period + name: PaymentsAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_credit_notes,company,employee,accounting_period,payment_term + name: PaymentsAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,company,employee,payment_term + name: PaymentsAppliedCreditNotesCompanyEmployeePaymentTerm + - value: payments,applied_credit_notes,company,payment_term + name: PaymentsAppliedCreditNotesCompanyPaymentTerm + - value: payments,applied_credit_notes,contact + name: PaymentsAppliedCreditNotesContact + - value: payments,applied_credit_notes,contact,accounting_period + name: PaymentsAppliedCreditNotesContactAccountingPeriod + - value: payments,applied_credit_notes,contact,accounting_period,payment_term + name: PaymentsAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,contact,company + name: PaymentsAppliedCreditNotesContactCompany + - value: payments,applied_credit_notes,contact,company,accounting_period + name: PaymentsAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,applied_credit_notes,contact,company,accounting_period,payment_term + name: PaymentsAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,contact,company,employee + name: PaymentsAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,applied_credit_notes,contact,company,employee,accounting_period + name: PaymentsAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,contact,company,employee,payment_term + name: PaymentsAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: payments,applied_credit_notes,contact,company,payment_term + name: PaymentsAppliedCreditNotesContactCompanyPaymentTerm + - value: payments,applied_credit_notes,contact,employee + name: PaymentsAppliedCreditNotesContactEmployee + - value: payments,applied_credit_notes,contact,employee,accounting_period + name: PaymentsAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,applied_credit_notes,contact,employee,accounting_period,payment_term + name: PaymentsAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,contact,employee,payment_term + name: PaymentsAppliedCreditNotesContactEmployeePaymentTerm + - value: payments,applied_credit_notes,contact,payment_term + name: PaymentsAppliedCreditNotesContactPaymentTerm + - value: payments,applied_credit_notes,employee + name: PaymentsAppliedCreditNotesEmployee + - value: payments,applied_credit_notes,employee,accounting_period + name: PaymentsAppliedCreditNotesEmployeeAccountingPeriod + - value: payments,applied_credit_notes,employee,accounting_period,payment_term + name: PaymentsAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_credit_notes,employee,payment_term + name: PaymentsAppliedCreditNotesEmployeePaymentTerm + - value: payments,applied_credit_notes,payment_term + name: PaymentsAppliedCreditNotesPaymentTerm + - value: payments,applied_payments + name: PaymentsAppliedPayments + - value: payments,applied_payments,accounting_period + name: PaymentsAppliedPaymentsAccountingPeriod + - value: payments,applied_payments,accounting_period,payment_term + name: PaymentsAppliedPaymentsAccountingPeriodPaymentTerm + - value: payments,applied_payments,applied_credit_notes + name: PaymentsAppliedPaymentsAppliedCreditNotes + - value: payments,applied_payments,applied_credit_notes,accounting_period + name: PaymentsAppliedPaymentsAppliedCreditNotesAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,accounting_period,payment_term + name: PaymentsAppliedPaymentsAppliedCreditNotesAccountingPeriodPaymentTerm + - value: payments,applied_payments,applied_credit_notes,applied_vendor_credits + name: PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,company + name: PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact + name: PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,employee + name: PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,applied_credit_notes,company + name: PaymentsAppliedPaymentsAppliedCreditNotesCompany + - value: >- + payments,applied_payments,applied_credit_notes,company,accounting_period + name: PaymentsAppliedPaymentsAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,applied_credit_notes,company,employee + name: PaymentsAppliedPaymentsAppliedCreditNotesCompanyEmployee + - value: >- + payments,applied_payments,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,company,employee,payment_term + name: PaymentsAppliedPaymentsAppliedCreditNotesCompanyEmployeePaymentTerm + - value: payments,applied_payments,applied_credit_notes,company,payment_term + name: PaymentsAppliedPaymentsAppliedCreditNotesCompanyPaymentTerm + - value: payments,applied_payments,applied_credit_notes,contact + name: PaymentsAppliedPaymentsAppliedCreditNotesContact + - value: >- + payments,applied_payments,applied_credit_notes,contact,accounting_period + name: PaymentsAppliedPaymentsAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: payments,applied_payments,applied_credit_notes,contact,company + name: PaymentsAppliedPaymentsAppliedCreditNotesContactCompany + - value: >- + payments,applied_payments,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,contact,company,employee + name: PaymentsAppliedPaymentsAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,applied_payments,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,contact,company,payment_term + name: PaymentsAppliedPaymentsAppliedCreditNotesContactCompanyPaymentTerm + - value: payments,applied_payments,applied_credit_notes,contact,employee + name: PaymentsAppliedPaymentsAppliedCreditNotesContactEmployee + - value: >- + payments,applied_payments,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_credit_notes,contact,employee,payment_term + name: PaymentsAppliedPaymentsAppliedCreditNotesContactEmployeePaymentTerm + - value: payments,applied_payments,applied_credit_notes,contact,payment_term + name: PaymentsAppliedPaymentsAppliedCreditNotesContactPaymentTerm + - value: payments,applied_payments,applied_credit_notes,employee + name: PaymentsAppliedPaymentsAppliedCreditNotesEmployee + - value: >- + payments,applied_payments,applied_credit_notes,employee,accounting_period + name: PaymentsAppliedPaymentsAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,applied_credit_notes,employee,payment_term + name: PaymentsAppliedPaymentsAppliedCreditNotesEmployeePaymentTerm + - value: payments,applied_payments,applied_credit_notes,payment_term + name: PaymentsAppliedPaymentsAppliedCreditNotesPaymentTerm + - value: payments,applied_payments,applied_vendor_credits + name: PaymentsAppliedPaymentsAppliedVendorCredits + - value: payments,applied_payments,applied_vendor_credits,accounting_period + name: PaymentsAppliedPaymentsAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,applied_vendor_credits,accounting_period,payment_term + name: PaymentsAppliedPaymentsAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: payments,applied_payments,applied_vendor_credits,company + name: PaymentsAppliedPaymentsAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,applied_vendor_credits,company,accounting_period + name: PaymentsAppliedPaymentsAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,applied_vendor_credits,company,employee + name: PaymentsAppliedPaymentsAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_vendor_credits,company,employee,payment_term + name: PaymentsAppliedPaymentsAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: payments,applied_payments,applied_vendor_credits,company,payment_term + name: PaymentsAppliedPaymentsAppliedVendorCreditsCompanyPaymentTerm + - value: payments,applied_payments,applied_vendor_credits,contact + name: PaymentsAppliedPaymentsAppliedVendorCreditsContact + - value: >- + payments,applied_payments,applied_vendor_credits,contact,accounting_period + name: PaymentsAppliedPaymentsAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: payments,applied_payments,applied_vendor_credits,contact,company + name: PaymentsAppliedPaymentsAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_vendor_credits,contact,company,employee + name: PaymentsAppliedPaymentsAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,applied_vendor_credits,contact,company,payment_term + name: PaymentsAppliedPaymentsAppliedVendorCreditsContactCompanyPaymentTerm + - value: payments,applied_payments,applied_vendor_credits,contact,employee + name: PaymentsAppliedPaymentsAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,applied_vendor_credits,contact,employee,payment_term + name: PaymentsAppliedPaymentsAppliedVendorCreditsContactEmployeePaymentTerm + - value: payments,applied_payments,applied_vendor_credits,contact,payment_term + name: PaymentsAppliedPaymentsAppliedVendorCreditsContactPaymentTerm + - value: payments,applied_payments,applied_vendor_credits,employee + name: PaymentsAppliedPaymentsAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,applied_vendor_credits,employee,accounting_period + name: PaymentsAppliedPaymentsAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,applied_vendor_credits,employee,payment_term + name: PaymentsAppliedPaymentsAppliedVendorCreditsEmployeePaymentTerm + - value: payments,applied_payments,applied_vendor_credits,payment_term + name: PaymentsAppliedPaymentsAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,company + name: PaymentsAppliedPaymentsCompany + - value: payments,applied_payments,company,accounting_period + name: PaymentsAppliedPaymentsCompanyAccountingPeriod + - value: payments,applied_payments,company,accounting_period,payment_term + name: PaymentsAppliedPaymentsCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,company,employee + name: PaymentsAppliedPaymentsCompanyEmployee + - value: payments,applied_payments,company,employee,accounting_period + name: PaymentsAppliedPaymentsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,company,employee,accounting_period,payment_term + name: PaymentsAppliedPaymentsCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,company,employee,payment_term + name: PaymentsAppliedPaymentsCompanyEmployeePaymentTerm + - value: payments,applied_payments,company,payment_term + name: PaymentsAppliedPaymentsCompanyPaymentTerm + - value: payments,applied_payments,contact + name: PaymentsAppliedPaymentsContact + - value: payments,applied_payments,contact,accounting_period + name: PaymentsAppliedPaymentsContactAccountingPeriod + - value: payments,applied_payments,contact,accounting_period,payment_term + name: PaymentsAppliedPaymentsContactAccountingPeriodPaymentTerm + - value: payments,applied_payments,contact,company + name: PaymentsAppliedPaymentsContactCompany + - value: payments,applied_payments,contact,company,accounting_period + name: PaymentsAppliedPaymentsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,contact,company,accounting_period,payment_term + name: PaymentsAppliedPaymentsContactCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,contact,company,employee + name: PaymentsAppliedPaymentsContactCompanyEmployee + - value: payments,applied_payments,contact,company,employee,accounting_period + name: PaymentsAppliedPaymentsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,contact,company,employee,payment_term + name: PaymentsAppliedPaymentsContactCompanyEmployeePaymentTerm + - value: payments,applied_payments,contact,company,payment_term + name: PaymentsAppliedPaymentsContactCompanyPaymentTerm + - value: payments,applied_payments,contact,employee + name: PaymentsAppliedPaymentsContactEmployee + - value: payments,applied_payments,contact,employee,accounting_period + name: PaymentsAppliedPaymentsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,contact,employee,accounting_period,payment_term + name: PaymentsAppliedPaymentsContactEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,contact,employee,payment_term + name: PaymentsAppliedPaymentsContactEmployeePaymentTerm + - value: payments,applied_payments,contact,payment_term + name: PaymentsAppliedPaymentsContactPaymentTerm + - value: payments,applied_payments,employee + name: PaymentsAppliedPaymentsEmployee + - value: payments,applied_payments,employee,accounting_period + name: PaymentsAppliedPaymentsEmployeeAccountingPeriod + - value: payments,applied_payments,employee,accounting_period,payment_term + name: PaymentsAppliedPaymentsEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,employee,payment_term + name: PaymentsAppliedPaymentsEmployeePaymentTerm + - value: payments,applied_payments,line_items + name: PaymentsAppliedPaymentsLineItems + - value: payments,applied_payments,line_items,accounting_period + name: PaymentsAppliedPaymentsLineItemsAccountingPeriod + - value: payments,applied_payments,line_items,accounting_period,payment_term + name: PaymentsAppliedPaymentsLineItemsAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,applied_credit_notes + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotes + - value: >- + payments,applied_payments,line_items,applied_credit_notes,accounting_period + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,line_items,applied_credit_notes,company + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesCompany + - value: >- + payments,applied_payments,line_items,applied_credit_notes,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,company,employee + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesCompanyEmployee + - value: >- + payments,applied_payments,line_items,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,company,payment_term + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesCompanyPaymentTerm + - value: payments,applied_payments,line_items,applied_credit_notes,contact + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContact + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,company + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactCompany + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,employee + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactEmployee + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,contact,payment_term + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesContactPaymentTerm + - value: payments,applied_payments,line_items,applied_credit_notes,employee + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesEmployee + - value: >- + payments,applied_payments,line_items,applied_credit_notes,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_credit_notes,employee,payment_term + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesEmployeePaymentTerm + - value: payments,applied_payments,line_items,applied_credit_notes,payment_term + name: PaymentsAppliedPaymentsLineItemsAppliedCreditNotesPaymentTerm + - value: payments,applied_payments,line_items,applied_vendor_credits + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCredits + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,accounting_period + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,applied_vendor_credits,company + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,company,employee + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,company,payment_term + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsCompanyPaymentTerm + - value: payments,applied_payments,line_items,applied_vendor_credits,contact + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContact + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,company + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,employee + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,contact,payment_term + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsContactPaymentTerm + - value: payments,applied_payments,line_items,applied_vendor_credits,employee + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,applied_vendor_credits,payment_term + name: PaymentsAppliedPaymentsLineItemsAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,line_items,company + name: PaymentsAppliedPaymentsLineItemsCompany + - value: payments,applied_payments,line_items,company,accounting_period + name: PaymentsAppliedPaymentsLineItemsCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,company,accounting_period,payment_term + name: PaymentsAppliedPaymentsLineItemsCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,company,employee + name: PaymentsAppliedPaymentsLineItemsCompanyEmployee + - value: >- + payments,applied_payments,line_items,company,employee,accounting_period + name: PaymentsAppliedPaymentsLineItemsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,company,employee,payment_term + name: PaymentsAppliedPaymentsLineItemsCompanyEmployeePaymentTerm + - value: payments,applied_payments,line_items,company,payment_term + name: PaymentsAppliedPaymentsLineItemsCompanyPaymentTerm + - value: payments,applied_payments,line_items,contact + name: PaymentsAppliedPaymentsLineItemsContact + - value: payments,applied_payments,line_items,contact,accounting_period + name: PaymentsAppliedPaymentsLineItemsContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,contact,accounting_period,payment_term + name: PaymentsAppliedPaymentsLineItemsContactAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,contact,company + name: PaymentsAppliedPaymentsLineItemsContactCompany + - value: payments,applied_payments,line_items,contact,company,accounting_period + name: PaymentsAppliedPaymentsLineItemsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsContactCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,contact,company,employee + name: PaymentsAppliedPaymentsLineItemsContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,contact,company,employee,accounting_period + name: PaymentsAppliedPaymentsLineItemsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,contact,company,employee,payment_term + name: PaymentsAppliedPaymentsLineItemsContactCompanyEmployeePaymentTerm + - value: payments,applied_payments,line_items,contact,company,payment_term + name: PaymentsAppliedPaymentsLineItemsContactCompanyPaymentTerm + - value: payments,applied_payments,line_items,contact,employee + name: PaymentsAppliedPaymentsLineItemsContactEmployee + - value: >- + payments,applied_payments,line_items,contact,employee,accounting_period + name: PaymentsAppliedPaymentsLineItemsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsContactEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,contact,employee,payment_term + name: PaymentsAppliedPaymentsLineItemsContactEmployeePaymentTerm + - value: payments,applied_payments,line_items,contact,payment_term + name: PaymentsAppliedPaymentsLineItemsContactPaymentTerm + - value: payments,applied_payments,line_items,employee + name: PaymentsAppliedPaymentsLineItemsEmployee + - value: payments,applied_payments,line_items,employee,accounting_period + name: PaymentsAppliedPaymentsLineItemsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,employee,accounting_period,payment_term + name: PaymentsAppliedPaymentsLineItemsEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,employee,payment_term + name: PaymentsAppliedPaymentsLineItemsEmployeePaymentTerm + - value: payments,applied_payments,line_items,payment_term + name: PaymentsAppliedPaymentsLineItemsPaymentTerm + - value: payments,applied_payments,line_items,purchase_orders + name: PaymentsAppliedPaymentsLineItemsPurchaseOrders + - value: payments,applied_payments,line_items,purchase_orders,accounting_period + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotes + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompany + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContact + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_credit_notes,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCredits + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContact + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,line_items,purchase_orders,company + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersCompany + - value: >- + payments,applied_payments,line_items,purchase_orders,company,accounting_period + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,purchase_orders,company,employee + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersCompanyEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,company,payment_term + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersCompanyPaymentTerm + - value: payments,applied_payments,line_items,purchase_orders,contact + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersContact + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,accounting_period + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: payments,applied_payments,line_items,purchase_orders,contact,company + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactCompany + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,company,employee + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactCompanyPaymentTerm + - value: payments,applied_payments,line_items,purchase_orders,contact,employee + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,contact,payment_term + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersContactPaymentTerm + - value: payments,applied_payments,line_items,purchase_orders,employee + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersEmployee + - value: >- + payments,applied_payments,line_items,purchase_orders,employee,accounting_period + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,purchase_orders,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,purchase_orders,employee,payment_term + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersEmployeePaymentTerm + - value: payments,applied_payments,line_items,purchase_orders,payment_term + name: PaymentsAppliedPaymentsLineItemsPurchaseOrdersPaymentTerm + - value: payments,applied_payments,line_items,tracking_categories + name: PaymentsAppliedPaymentsLineItemsTrackingCategories + - value: >- + payments,applied_payments,line_items,tracking_categories,accounting_period + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotes + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContact + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_credit_notes,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedCreditNotesPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCredits + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,line_items,tracking_categories,company + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,company,employee + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,company,payment_term + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesCompanyPaymentTerm + - value: payments,applied_payments,line_items,tracking_categories,contact + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesContact + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,employee + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,contact,payment_term + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesContactPaymentTerm + - value: payments,applied_payments,line_items,tracking_categories,employee + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,employee,payment_term + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesEmployeePaymentTerm + - value: payments,applied_payments,line_items,tracking_categories,payment_term + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders + name: PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrders + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotes + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContact + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCredits + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContact + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContact + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompany + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersContactPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,employee + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployee + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,employee,accounting_period + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriod + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,employee,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployeePaymentTerm + - value: >- + payments,applied_payments,line_items,tracking_categories,purchase_orders,payment_term + name: >- + PaymentsAppliedPaymentsLineItemsTrackingCategoriesPurchaseOrdersPaymentTerm + - value: payments,applied_payments,payment_term + name: PaymentsAppliedPaymentsPaymentTerm + - value: payments,applied_payments,purchase_orders + name: PaymentsAppliedPaymentsPurchaseOrders + - value: payments,applied_payments,purchase_orders,accounting_period + name: PaymentsAppliedPaymentsPurchaseOrdersAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,accounting_period,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersAccountingPeriodPaymentTerm + - value: payments,applied_payments,purchase_orders,applied_credit_notes + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotes + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,purchase_orders,applied_credit_notes,company + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesCompany + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,company,employee + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,company,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: payments,applied_payments,purchase_orders,applied_credit_notes,contact + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContact + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,company + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,employee + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,employee + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_credit_notes,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: payments,applied_payments,purchase_orders,applied_vendor_credits + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCredits + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,company + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContact + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,employee + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,purchase_orders,applied_vendor_credits,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,purchase_orders,company + name: PaymentsAppliedPaymentsPurchaseOrdersCompany + - value: payments,applied_payments,purchase_orders,company,accounting_period + name: PaymentsAppliedPaymentsPurchaseOrdersCompanyAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,purchase_orders,company,employee + name: PaymentsAppliedPaymentsPurchaseOrdersCompanyEmployee + - value: >- + payments,applied_payments,purchase_orders,company,employee,accounting_period + name: PaymentsAppliedPaymentsPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,company,employee,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersCompanyEmployeePaymentTerm + - value: payments,applied_payments,purchase_orders,company,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersCompanyPaymentTerm + - value: payments,applied_payments,purchase_orders,contact + name: PaymentsAppliedPaymentsPurchaseOrdersContact + - value: payments,applied_payments,purchase_orders,contact,accounting_period + name: PaymentsAppliedPaymentsPurchaseOrdersContactAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: payments,applied_payments,purchase_orders,contact,company + name: PaymentsAppliedPaymentsPurchaseOrdersContactCompany + - value: >- + payments,applied_payments,purchase_orders,contact,company,accounting_period + name: PaymentsAppliedPaymentsPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,purchase_orders,contact,company,employee + name: PaymentsAppliedPaymentsPurchaseOrdersContactCompanyEmployee + - value: >- + payments,applied_payments,purchase_orders,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,contact,company,employee,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: payments,applied_payments,purchase_orders,contact,company,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersContactCompanyPaymentTerm + - value: payments,applied_payments,purchase_orders,contact,employee + name: PaymentsAppliedPaymentsPurchaseOrdersContactEmployee + - value: >- + payments,applied_payments,purchase_orders,contact,employee,accounting_period + name: PaymentsAppliedPaymentsPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,purchase_orders,contact,employee,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersContactEmployeePaymentTerm + - value: payments,applied_payments,purchase_orders,contact,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersContactPaymentTerm + - value: payments,applied_payments,purchase_orders,employee + name: PaymentsAppliedPaymentsPurchaseOrdersEmployee + - value: payments,applied_payments,purchase_orders,employee,accounting_period + name: PaymentsAppliedPaymentsPurchaseOrdersEmployeeAccountingPeriod + - value: >- + payments,applied_payments,purchase_orders,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,purchase_orders,employee,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersEmployeePaymentTerm + - value: payments,applied_payments,purchase_orders,payment_term + name: PaymentsAppliedPaymentsPurchaseOrdersPaymentTerm + - value: payments,applied_payments,tracking_categories + name: PaymentsAppliedPaymentsTrackingCategories + - value: payments,applied_payments,tracking_categories,accounting_period + name: PaymentsAppliedPaymentsTrackingCategoriesAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,accounting_period,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesAccountingPeriodPaymentTerm + - value: payments,applied_payments,tracking_categories,applied_credit_notes + name: PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotes + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,company + name: PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesCompany + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact + name: PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContact + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompany + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,contact,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesContactPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,employee + name: PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_credit_notes,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesAppliedCreditNotesPaymentTerm + - value: payments,applied_payments,tracking_categories,applied_vendor_credits + name: PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCredits + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,company + name: PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact + name: PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,employee + name: PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,tracking_categories,company + name: PaymentsAppliedPaymentsTrackingCategoriesCompany + - value: >- + payments,applied_payments,tracking_categories,company,accounting_period + name: PaymentsAppliedPaymentsTrackingCategoriesCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,tracking_categories,company,employee + name: PaymentsAppliedPaymentsTrackingCategoriesCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,company,employee,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesCompanyEmployeePaymentTerm + - value: payments,applied_payments,tracking_categories,company,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesCompanyPaymentTerm + - value: payments,applied_payments,tracking_categories,contact + name: PaymentsAppliedPaymentsTrackingCategoriesContact + - value: >- + payments,applied_payments,tracking_categories,contact,accounting_period + name: PaymentsAppliedPaymentsTrackingCategoriesContactAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesContactAccountingPeriodPaymentTerm + - value: payments,applied_payments,tracking_categories,contact,company + name: PaymentsAppliedPaymentsTrackingCategoriesContactCompany + - value: >- + payments,applied_payments,tracking_categories,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesContactCompanyAccountingPeriodPaymentTerm + - value: payments,applied_payments,tracking_categories,contact,company,employee + name: PaymentsAppliedPaymentsTrackingCategoriesContactCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,contact,company,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesContactCompanyPaymentTerm + - value: payments,applied_payments,tracking_categories,contact,employee + name: PaymentsAppliedPaymentsTrackingCategoriesContactEmployee + - value: >- + payments,applied_payments,tracking_categories,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,contact,employee,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesContactEmployeePaymentTerm + - value: payments,applied_payments,tracking_categories,contact,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesContactPaymentTerm + - value: payments,applied_payments,tracking_categories,employee + name: PaymentsAppliedPaymentsTrackingCategoriesEmployee + - value: >- + payments,applied_payments,tracking_categories,employee,accounting_period + name: PaymentsAppliedPaymentsTrackingCategoriesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_payments,tracking_categories,employee,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesEmployeePaymentTerm + - value: payments,applied_payments,tracking_categories,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesPaymentTerm + - value: payments,applied_payments,tracking_categories,purchase_orders + name: PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrders + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotes + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompany + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContact + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCredits + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContact + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: payments,applied_payments,tracking_categories,purchase_orders,company + name: PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersCompany + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,company,employee + name: PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersCompanyPaymentTerm + - value: payments,applied_payments,tracking_categories,purchase_orders,contact + name: PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContact + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,company + name: PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompany + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,company,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,company,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,company,employee + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,company,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,company,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,company,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactCompanyPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,employee + name: PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,contact,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersContactPaymentTerm + - value: payments,applied_payments,tracking_categories,purchase_orders,employee + name: PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersEmployee + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,employee,accounting_period + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriod + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,employee,accounting_period,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,employee,payment_term + name: >- + PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersEmployeePaymentTerm + - value: >- + payments,applied_payments,tracking_categories,purchase_orders,payment_term + name: PaymentsAppliedPaymentsTrackingCategoriesPurchaseOrdersPaymentTerm + - value: payments,applied_vendor_credits + name: PaymentsAppliedVendorCredits + - value: payments,applied_vendor_credits,accounting_period + name: PaymentsAppliedVendorCreditsAccountingPeriod + - value: payments,applied_vendor_credits,accounting_period,payment_term + name: PaymentsAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: payments,applied_vendor_credits,company + name: PaymentsAppliedVendorCreditsCompany + - value: payments,applied_vendor_credits,company,accounting_period + name: PaymentsAppliedVendorCreditsCompanyAccountingPeriod + - value: payments,applied_vendor_credits,company,accounting_period,payment_term + name: PaymentsAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: payments,applied_vendor_credits,company,employee + name: PaymentsAppliedVendorCreditsCompanyEmployee + - value: payments,applied_vendor_credits,company,employee,accounting_period + name: PaymentsAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_vendor_credits,company,employee,accounting_period,payment_term + name: PaymentsAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_vendor_credits,company,employee,payment_term + name: PaymentsAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: payments,applied_vendor_credits,company,payment_term + name: PaymentsAppliedVendorCreditsCompanyPaymentTerm + - value: payments,applied_vendor_credits,contact + name: PaymentsAppliedVendorCreditsContact + - value: payments,applied_vendor_credits,contact,accounting_period + name: PaymentsAppliedVendorCreditsContactAccountingPeriod + - value: payments,applied_vendor_credits,contact,accounting_period,payment_term + name: PaymentsAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: payments,applied_vendor_credits,contact,company + name: PaymentsAppliedVendorCreditsContactCompany + - value: payments,applied_vendor_credits,contact,company,accounting_period + name: PaymentsAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,applied_vendor_credits,contact,company,accounting_period,payment_term + name: PaymentsAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: payments,applied_vendor_credits,contact,company,employee + name: PaymentsAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,applied_vendor_credits,contact,company,employee,accounting_period + name: PaymentsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_vendor_credits,contact,company,employee,payment_term + name: PaymentsAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: payments,applied_vendor_credits,contact,company,payment_term + name: PaymentsAppliedVendorCreditsContactCompanyPaymentTerm + - value: payments,applied_vendor_credits,contact,employee + name: PaymentsAppliedVendorCreditsContactEmployee + - value: payments,applied_vendor_credits,contact,employee,accounting_period + name: PaymentsAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: PaymentsAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_vendor_credits,contact,employee,payment_term + name: PaymentsAppliedVendorCreditsContactEmployeePaymentTerm + - value: payments,applied_vendor_credits,contact,payment_term + name: PaymentsAppliedVendorCreditsContactPaymentTerm + - value: payments,applied_vendor_credits,employee + name: PaymentsAppliedVendorCreditsEmployee + - value: payments,applied_vendor_credits,employee,accounting_period + name: PaymentsAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,applied_vendor_credits,employee,accounting_period,payment_term + name: PaymentsAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: payments,applied_vendor_credits,employee,payment_term + name: PaymentsAppliedVendorCreditsEmployeePaymentTerm + - value: payments,applied_vendor_credits,payment_term + name: PaymentsAppliedVendorCreditsPaymentTerm + - value: payments,company + name: PaymentsCompany + - value: payments,company,accounting_period + name: PaymentsCompanyAccountingPeriod + - value: payments,company,accounting_period,payment_term + name: PaymentsCompanyAccountingPeriodPaymentTerm + - value: payments,company,employee + name: PaymentsCompanyEmployee + - value: payments,company,employee,accounting_period + name: PaymentsCompanyEmployeeAccountingPeriod + - value: payments,company,employee,accounting_period,payment_term + name: PaymentsCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,company,employee,payment_term + name: PaymentsCompanyEmployeePaymentTerm + - value: payments,company,payment_term + name: PaymentsCompanyPaymentTerm + - value: payments,contact + name: PaymentsContact + - value: payments,contact,accounting_period + name: PaymentsContactAccountingPeriod + - value: payments,contact,accounting_period,payment_term + name: PaymentsContactAccountingPeriodPaymentTerm + - value: payments,contact,company + name: PaymentsContactCompany + - value: payments,contact,company,accounting_period + name: PaymentsContactCompanyAccountingPeriod + - value: payments,contact,company,accounting_period,payment_term + name: PaymentsContactCompanyAccountingPeriodPaymentTerm + - value: payments,contact,company,employee + name: PaymentsContactCompanyEmployee + - value: payments,contact,company,employee,accounting_period + name: PaymentsContactCompanyEmployeeAccountingPeriod + - value: payments,contact,company,employee,accounting_period,payment_term + name: PaymentsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,contact,company,employee,payment_term + name: PaymentsContactCompanyEmployeePaymentTerm + - value: payments,contact,company,payment_term + name: PaymentsContactCompanyPaymentTerm + - value: payments,contact,employee + name: PaymentsContactEmployee + - value: payments,contact,employee,accounting_period + name: PaymentsContactEmployeeAccountingPeriod + - value: payments,contact,employee,accounting_period,payment_term + name: PaymentsContactEmployeeAccountingPeriodPaymentTerm + - value: payments,contact,employee,payment_term + name: PaymentsContactEmployeePaymentTerm + - value: payments,contact,payment_term + name: PaymentsContactPaymentTerm + - value: payments,employee + name: PaymentsEmployee + - value: payments,employee,accounting_period + name: PaymentsEmployeeAccountingPeriod + - value: payments,employee,accounting_period,payment_term + name: PaymentsEmployeeAccountingPeriodPaymentTerm + - value: payments,employee,payment_term + name: PaymentsEmployeePaymentTerm + - value: payments,line_items + name: PaymentsLineItems + - value: payments,line_items,accounting_period + name: PaymentsLineItemsAccountingPeriod + - value: payments,line_items,accounting_period,payment_term + name: PaymentsLineItemsAccountingPeriodPaymentTerm + - value: payments,line_items,applied_credit_notes + name: PaymentsLineItemsAppliedCreditNotes + - value: payments,line_items,applied_credit_notes,accounting_period + name: PaymentsLineItemsAppliedCreditNotesAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,accounting_period,payment_term + name: PaymentsLineItemsAppliedCreditNotesAccountingPeriodPaymentTerm + - value: payments,line_items,applied_credit_notes,applied_vendor_credits + name: PaymentsLineItemsAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,company + name: PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee + name: PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact + name: PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company + name: PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee + name: PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,employee + name: PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,line_items,applied_credit_notes,applied_vendor_credits,payment_term + name: PaymentsLineItemsAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: payments,line_items,applied_credit_notes,company + name: PaymentsLineItemsAppliedCreditNotesCompany + - value: payments,line_items,applied_credit_notes,company,accounting_period + name: PaymentsLineItemsAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,company,accounting_period,payment_term + name: PaymentsLineItemsAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,applied_credit_notes,company,employee + name: PaymentsLineItemsAppliedCreditNotesCompanyEmployee + - value: >- + payments,line_items,applied_credit_notes,company,employee,accounting_period + name: PaymentsLineItemsAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,applied_credit_notes,company,employee,payment_term + name: PaymentsLineItemsAppliedCreditNotesCompanyEmployeePaymentTerm + - value: payments,line_items,applied_credit_notes,company,payment_term + name: PaymentsLineItemsAppliedCreditNotesCompanyPaymentTerm + - value: payments,line_items,applied_credit_notes,contact + name: PaymentsLineItemsAppliedCreditNotesContact + - value: payments,line_items,applied_credit_notes,contact,accounting_period + name: PaymentsLineItemsAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,contact,accounting_period,payment_term + name: PaymentsLineItemsAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: payments,line_items,applied_credit_notes,contact,company + name: PaymentsLineItemsAppliedCreditNotesContactCompany + - value: >- + payments,line_items,applied_credit_notes,contact,company,accounting_period + name: PaymentsLineItemsAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,applied_credit_notes,contact,company,employee + name: PaymentsLineItemsAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,line_items,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_credit_notes,contact,company,employee,payment_term + name: PaymentsLineItemsAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: payments,line_items,applied_credit_notes,contact,company,payment_term + name: PaymentsLineItemsAppliedCreditNotesContactCompanyPaymentTerm + - value: payments,line_items,applied_credit_notes,contact,employee + name: PaymentsLineItemsAppliedCreditNotesContactEmployee + - value: >- + payments,line_items,applied_credit_notes,contact,employee,accounting_period + name: PaymentsLineItemsAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,applied_credit_notes,contact,employee,payment_term + name: PaymentsLineItemsAppliedCreditNotesContactEmployeePaymentTerm + - value: payments,line_items,applied_credit_notes,contact,payment_term + name: PaymentsLineItemsAppliedCreditNotesContactPaymentTerm + - value: payments,line_items,applied_credit_notes,employee + name: PaymentsLineItemsAppliedCreditNotesEmployee + - value: payments,line_items,applied_credit_notes,employee,accounting_period + name: PaymentsLineItemsAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_credit_notes,employee,accounting_period,payment_term + name: PaymentsLineItemsAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,applied_credit_notes,employee,payment_term + name: PaymentsLineItemsAppliedCreditNotesEmployeePaymentTerm + - value: payments,line_items,applied_credit_notes,payment_term + name: PaymentsLineItemsAppliedCreditNotesPaymentTerm + - value: payments,line_items,applied_vendor_credits + name: PaymentsLineItemsAppliedVendorCredits + - value: payments,line_items,applied_vendor_credits,accounting_period + name: PaymentsLineItemsAppliedVendorCreditsAccountingPeriod + - value: >- + payments,line_items,applied_vendor_credits,accounting_period,payment_term + name: PaymentsLineItemsAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: payments,line_items,applied_vendor_credits,company + name: PaymentsLineItemsAppliedVendorCreditsCompany + - value: payments,line_items,applied_vendor_credits,company,accounting_period + name: PaymentsLineItemsAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,line_items,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,applied_vendor_credits,company,employee + name: PaymentsLineItemsAppliedVendorCreditsCompanyEmployee + - value: >- + payments,line_items,applied_vendor_credits,company,employee,accounting_period + name: PaymentsLineItemsAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_vendor_credits,company,employee,payment_term + name: PaymentsLineItemsAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: payments,line_items,applied_vendor_credits,company,payment_term + name: PaymentsLineItemsAppliedVendorCreditsCompanyPaymentTerm + - value: payments,line_items,applied_vendor_credits,contact + name: PaymentsLineItemsAppliedVendorCreditsContact + - value: payments,line_items,applied_vendor_credits,contact,accounting_period + name: PaymentsLineItemsAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,line_items,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: payments,line_items,applied_vendor_credits,contact,company + name: PaymentsLineItemsAppliedVendorCreditsContactCompany + - value: >- + payments,line_items,applied_vendor_credits,contact,company,accounting_period + name: PaymentsLineItemsAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,line_items,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,applied_vendor_credits,contact,company,employee + name: PaymentsLineItemsAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,line_items,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_vendor_credits,contact,company,employee,payment_term + name: PaymentsLineItemsAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,applied_vendor_credits,contact,company,payment_term + name: PaymentsLineItemsAppliedVendorCreditsContactCompanyPaymentTerm + - value: payments,line_items,applied_vendor_credits,contact,employee + name: PaymentsLineItemsAppliedVendorCreditsContactEmployee + - value: >- + payments,line_items,applied_vendor_credits,contact,employee,accounting_period + name: PaymentsLineItemsAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,applied_vendor_credits,contact,employee,payment_term + name: PaymentsLineItemsAppliedVendorCreditsContactEmployeePaymentTerm + - value: payments,line_items,applied_vendor_credits,contact,payment_term + name: PaymentsLineItemsAppliedVendorCreditsContactPaymentTerm + - value: payments,line_items,applied_vendor_credits,employee + name: PaymentsLineItemsAppliedVendorCreditsEmployee + - value: payments,line_items,applied_vendor_credits,employee,accounting_period + name: PaymentsLineItemsAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,line_items,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,applied_vendor_credits,employee,payment_term + name: PaymentsLineItemsAppliedVendorCreditsEmployeePaymentTerm + - value: payments,line_items,applied_vendor_credits,payment_term + name: PaymentsLineItemsAppliedVendorCreditsPaymentTerm + - value: payments,line_items,company + name: PaymentsLineItemsCompany + - value: payments,line_items,company,accounting_period + name: PaymentsLineItemsCompanyAccountingPeriod + - value: payments,line_items,company,accounting_period,payment_term + name: PaymentsLineItemsCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,company,employee + name: PaymentsLineItemsCompanyEmployee + - value: payments,line_items,company,employee,accounting_period + name: PaymentsLineItemsCompanyEmployeeAccountingPeriod + - value: payments,line_items,company,employee,accounting_period,payment_term + name: PaymentsLineItemsCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,company,employee,payment_term + name: PaymentsLineItemsCompanyEmployeePaymentTerm + - value: payments,line_items,company,payment_term + name: PaymentsLineItemsCompanyPaymentTerm + - value: payments,line_items,contact + name: PaymentsLineItemsContact + - value: payments,line_items,contact,accounting_period + name: PaymentsLineItemsContactAccountingPeriod + - value: payments,line_items,contact,accounting_period,payment_term + name: PaymentsLineItemsContactAccountingPeriodPaymentTerm + - value: payments,line_items,contact,company + name: PaymentsLineItemsContactCompany + - value: payments,line_items,contact,company,accounting_period + name: PaymentsLineItemsContactCompanyAccountingPeriod + - value: payments,line_items,contact,company,accounting_period,payment_term + name: PaymentsLineItemsContactCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,contact,company,employee + name: PaymentsLineItemsContactCompanyEmployee + - value: payments,line_items,contact,company,employee,accounting_period + name: PaymentsLineItemsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,contact,company,employee,accounting_period,payment_term + name: PaymentsLineItemsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,contact,company,employee,payment_term + name: PaymentsLineItemsContactCompanyEmployeePaymentTerm + - value: payments,line_items,contact,company,payment_term + name: PaymentsLineItemsContactCompanyPaymentTerm + - value: payments,line_items,contact,employee + name: PaymentsLineItemsContactEmployee + - value: payments,line_items,contact,employee,accounting_period + name: PaymentsLineItemsContactEmployeeAccountingPeriod + - value: payments,line_items,contact,employee,accounting_period,payment_term + name: PaymentsLineItemsContactEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,contact,employee,payment_term + name: PaymentsLineItemsContactEmployeePaymentTerm + - value: payments,line_items,contact,payment_term + name: PaymentsLineItemsContactPaymentTerm + - value: payments,line_items,employee + name: PaymentsLineItemsEmployee + - value: payments,line_items,employee,accounting_period + name: PaymentsLineItemsEmployeeAccountingPeriod + - value: payments,line_items,employee,accounting_period,payment_term + name: PaymentsLineItemsEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,employee,payment_term + name: PaymentsLineItemsEmployeePaymentTerm + - value: payments,line_items,payment_term + name: PaymentsLineItemsPaymentTerm + - value: payments,line_items,purchase_orders + name: PaymentsLineItemsPurchaseOrders + - value: payments,line_items,purchase_orders,accounting_period + name: PaymentsLineItemsPurchaseOrdersAccountingPeriod + - value: payments,line_items,purchase_orders,accounting_period,payment_term + name: PaymentsLineItemsPurchaseOrdersAccountingPeriodPaymentTerm + - value: payments,line_items,purchase_orders,applied_credit_notes + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotes + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,accounting_period + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: payments,line_items,purchase_orders,applied_credit_notes,company + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompany + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,company,employee + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,company,payment_term + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: payments,line_items,purchase_orders,applied_credit_notes,contact + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContact + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,company + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,employee + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,contact,payment_term + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: payments,line_items,purchase_orders,applied_credit_notes,employee + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_credit_notes,employee,payment_term + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: payments,line_items,purchase_orders,applied_credit_notes,payment_term + name: PaymentsLineItemsPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: payments,line_items,purchase_orders,applied_vendor_credits + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCredits + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,accounting_period + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: payments,line_items,purchase_orders,applied_vendor_credits,company + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,company,employee + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,company,payment_term + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: payments,line_items,purchase_orders,applied_vendor_credits,contact + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContact + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,company + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,employee + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,contact,payment_term + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: payments,line_items,purchase_orders,applied_vendor_credits,employee + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,employee,payment_term + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,line_items,purchase_orders,applied_vendor_credits,payment_term + name: PaymentsLineItemsPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: payments,line_items,purchase_orders,company + name: PaymentsLineItemsPurchaseOrdersCompany + - value: payments,line_items,purchase_orders,company,accounting_period + name: PaymentsLineItemsPurchaseOrdersCompanyAccountingPeriod + - value: >- + payments,line_items,purchase_orders,company,accounting_period,payment_term + name: PaymentsLineItemsPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,purchase_orders,company,employee + name: PaymentsLineItemsPurchaseOrdersCompanyEmployee + - value: payments,line_items,purchase_orders,company,employee,accounting_period + name: PaymentsLineItemsPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,purchase_orders,company,employee,payment_term + name: PaymentsLineItemsPurchaseOrdersCompanyEmployeePaymentTerm + - value: payments,line_items,purchase_orders,company,payment_term + name: PaymentsLineItemsPurchaseOrdersCompanyPaymentTerm + - value: payments,line_items,purchase_orders,contact + name: PaymentsLineItemsPurchaseOrdersContact + - value: payments,line_items,purchase_orders,contact,accounting_period + name: PaymentsLineItemsPurchaseOrdersContactAccountingPeriod + - value: >- + payments,line_items,purchase_orders,contact,accounting_period,payment_term + name: PaymentsLineItemsPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: payments,line_items,purchase_orders,contact,company + name: PaymentsLineItemsPurchaseOrdersContactCompany + - value: payments,line_items,purchase_orders,contact,company,accounting_period + name: PaymentsLineItemsPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + payments,line_items,purchase_orders,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,purchase_orders,contact,company,employee + name: PaymentsLineItemsPurchaseOrdersContactCompanyEmployee + - value: >- + payments,line_items,purchase_orders,contact,company,employee,accounting_period + name: PaymentsLineItemsPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,purchase_orders,contact,company,employee,payment_term + name: PaymentsLineItemsPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: payments,line_items,purchase_orders,contact,company,payment_term + name: PaymentsLineItemsPurchaseOrdersContactCompanyPaymentTerm + - value: payments,line_items,purchase_orders,contact,employee + name: PaymentsLineItemsPurchaseOrdersContactEmployee + - value: payments,line_items,purchase_orders,contact,employee,accounting_period + name: PaymentsLineItemsPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,purchase_orders,contact,employee,payment_term + name: PaymentsLineItemsPurchaseOrdersContactEmployeePaymentTerm + - value: payments,line_items,purchase_orders,contact,payment_term + name: PaymentsLineItemsPurchaseOrdersContactPaymentTerm + - value: payments,line_items,purchase_orders,employee + name: PaymentsLineItemsPurchaseOrdersEmployee + - value: payments,line_items,purchase_orders,employee,accounting_period + name: PaymentsLineItemsPurchaseOrdersEmployeeAccountingPeriod + - value: >- + payments,line_items,purchase_orders,employee,accounting_period,payment_term + name: PaymentsLineItemsPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,purchase_orders,employee,payment_term + name: PaymentsLineItemsPurchaseOrdersEmployeePaymentTerm + - value: payments,line_items,purchase_orders,payment_term + name: PaymentsLineItemsPurchaseOrdersPaymentTerm + - value: payments,line_items,tracking_categories + name: PaymentsLineItemsTrackingCategories + - value: payments,line_items,tracking_categories,accounting_period + name: PaymentsLineItemsTrackingCategoriesAccountingPeriod + - value: payments,line_items,tracking_categories,accounting_period,payment_term + name: PaymentsLineItemsTrackingCategoriesAccountingPeriodPaymentTerm + - value: payments,line_items,tracking_categories,applied_credit_notes + name: PaymentsLineItemsTrackingCategoriesAppliedCreditNotes + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,accounting_period + name: PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: payments,line_items,tracking_categories,applied_credit_notes,company + name: PaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompany + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,company,employee + name: PaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployee + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesCompanyPaymentTerm + - value: payments,line_items,tracking_categories,applied_credit_notes,contact + name: PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContact + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,company + name: PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompany + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,employee + name: PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployee + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,contact,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesContactPaymentTerm + - value: payments,line_items,tracking_categories,applied_credit_notes,employee + name: PaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployee + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedCreditNotesEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_credit_notes,payment_term + name: PaymentsLineItemsTrackingCategoriesAppliedCreditNotesPaymentTerm + - value: payments,line_items,tracking_categories,applied_vendor_credits + name: PaymentsLineItemsTrackingCategoriesAppliedVendorCredits + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: payments,line_items,tracking_categories,applied_vendor_credits,company + name: PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompany + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,company,employee + name: PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsCompanyPaymentTerm + - value: payments,line_items,tracking_categories,applied_vendor_credits,contact + name: PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContact + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,company + name: PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompany + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,employee + name: PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployee + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,contact,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,employee + name: PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployee + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,applied_vendor_credits,payment_term + name: PaymentsLineItemsTrackingCategoriesAppliedVendorCreditsPaymentTerm + - value: payments,line_items,tracking_categories,company + name: PaymentsLineItemsTrackingCategoriesCompany + - value: payments,line_items,tracking_categories,company,accounting_period + name: PaymentsLineItemsTrackingCategoriesCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,company,accounting_period,payment_term + name: PaymentsLineItemsTrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,tracking_categories,company,employee + name: PaymentsLineItemsTrackingCategoriesCompanyEmployee + - value: >- + payments,line_items,tracking_categories,company,employee,accounting_period + name: PaymentsLineItemsTrackingCategoriesCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,tracking_categories,company,employee,payment_term + name: PaymentsLineItemsTrackingCategoriesCompanyEmployeePaymentTerm + - value: payments,line_items,tracking_categories,company,payment_term + name: PaymentsLineItemsTrackingCategoriesCompanyPaymentTerm + - value: payments,line_items,tracking_categories,contact + name: PaymentsLineItemsTrackingCategoriesContact + - value: payments,line_items,tracking_categories,contact,accounting_period + name: PaymentsLineItemsTrackingCategoriesContactAccountingPeriod + - value: >- + payments,line_items,tracking_categories,contact,accounting_period,payment_term + name: PaymentsLineItemsTrackingCategoriesContactAccountingPeriodPaymentTerm + - value: payments,line_items,tracking_categories,contact,company + name: PaymentsLineItemsTrackingCategoriesContactCompany + - value: >- + payments,line_items,tracking_categories,contact,company,accounting_period + name: PaymentsLineItemsTrackingCategoriesContactCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesContactCompanyAccountingPeriodPaymentTerm + - value: payments,line_items,tracking_categories,contact,company,employee + name: PaymentsLineItemsTrackingCategoriesContactCompanyEmployee + - value: >- + payments,line_items,tracking_categories,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,contact,company,employee,payment_term + name: PaymentsLineItemsTrackingCategoriesContactCompanyEmployeePaymentTerm + - value: payments,line_items,tracking_categories,contact,company,payment_term + name: PaymentsLineItemsTrackingCategoriesContactCompanyPaymentTerm + - value: payments,line_items,tracking_categories,contact,employee + name: PaymentsLineItemsTrackingCategoriesContactEmployee + - value: >- + payments,line_items,tracking_categories,contact,employee,accounting_period + name: PaymentsLineItemsTrackingCategoriesContactEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesContactEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,tracking_categories,contact,employee,payment_term + name: PaymentsLineItemsTrackingCategoriesContactEmployeePaymentTerm + - value: payments,line_items,tracking_categories,contact,payment_term + name: PaymentsLineItemsTrackingCategoriesContactPaymentTerm + - value: payments,line_items,tracking_categories,employee + name: PaymentsLineItemsTrackingCategoriesEmployee + - value: payments,line_items,tracking_categories,employee,accounting_period + name: PaymentsLineItemsTrackingCategoriesEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,employee,accounting_period,payment_term + name: PaymentsLineItemsTrackingCategoriesEmployeeAccountingPeriodPaymentTerm + - value: payments,line_items,tracking_categories,employee,payment_term + name: PaymentsLineItemsTrackingCategoriesEmployeePaymentTerm + - value: payments,line_items,tracking_categories,payment_term + name: PaymentsLineItemsTrackingCategoriesPaymentTerm + - value: payments,line_items,tracking_categories,purchase_orders + name: PaymentsLineItemsTrackingCategoriesPurchaseOrders + - value: >- + payments,line_items,tracking_categories,purchase_orders,accounting_period + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotes + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompany + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContact + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCredits + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContact + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: payments,line_items,tracking_categories,purchase_orders,company + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersCompany + - value: >- + payments,line_items,tracking_categories,purchase_orders,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,company,employee + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,company,payment_term + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersCompanyPaymentTerm + - value: payments,line_items,tracking_categories,purchase_orders,contact + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersContact + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,company + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompany + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,company,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,company,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,company,employee + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,company,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,company,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactCompanyPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,employee + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,employee,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactEmployeePaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,contact,payment_term + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersContactPaymentTerm + - value: payments,line_items,tracking_categories,purchase_orders,employee + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployee + - value: >- + payments,line_items,tracking_categories,purchase_orders,employee,accounting_period + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriod + - value: >- + payments,line_items,tracking_categories,purchase_orders,employee,accounting_period,payment_term + name: >- + PaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,line_items,tracking_categories,purchase_orders,employee,payment_term + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersEmployeePaymentTerm + - value: payments,line_items,tracking_categories,purchase_orders,payment_term + name: PaymentsLineItemsTrackingCategoriesPurchaseOrdersPaymentTerm + - value: payments,payment_term + name: PaymentsPaymentTerm + - value: payments,purchase_orders + name: PaymentsPurchaseOrders + - value: payments,purchase_orders,accounting_period + name: PaymentsPurchaseOrdersAccountingPeriod + - value: payments,purchase_orders,accounting_period,payment_term + name: PaymentsPurchaseOrdersAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_credit_notes + name: PaymentsPurchaseOrdersAppliedCreditNotes + - value: payments,purchase_orders,applied_credit_notes,accounting_period + name: PaymentsPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: PaymentsPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_credit_notes,applied_vendor_credits + name: PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: payments,purchase_orders,applied_credit_notes,company + name: PaymentsPurchaseOrdersAppliedCreditNotesCompany + - value: >- + payments,purchase_orders,applied_credit_notes,company,accounting_period + name: PaymentsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_credit_notes,company,employee + name: PaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + payments,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,company,employee,payment_term + name: PaymentsPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: payments,purchase_orders,applied_credit_notes,company,payment_term + name: PaymentsPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: payments,purchase_orders,applied_credit_notes,contact + name: PaymentsPurchaseOrdersAppliedCreditNotesContact + - value: >- + payments,purchase_orders,applied_credit_notes,contact,accounting_period + name: PaymentsPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_credit_notes,contact,company + name: PaymentsPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + payments,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: PaymentsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_credit_notes,contact,company,employee + name: PaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,contact,company,payment_term + name: PaymentsPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: payments,purchase_orders,applied_credit_notes,contact,employee + name: PaymentsPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + payments,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: PaymentsPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: payments,purchase_orders,applied_credit_notes,contact,payment_term + name: PaymentsPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: payments,purchase_orders,applied_credit_notes,employee + name: PaymentsPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + payments,purchase_orders,applied_credit_notes,employee,accounting_period + name: PaymentsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_credit_notes,employee,payment_term + name: PaymentsPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: payments,purchase_orders,applied_credit_notes,payment_term + name: PaymentsPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: payments,purchase_orders,applied_vendor_credits + name: PaymentsPurchaseOrdersAppliedVendorCredits + - value: payments,purchase_orders,applied_vendor_credits,accounting_period + name: PaymentsPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + payments,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: PaymentsPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,company + name: PaymentsPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + payments,purchase_orders,applied_vendor_credits,company,accounting_period + name: PaymentsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,company,employee + name: PaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + payments,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: PaymentsPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,company,payment_term + name: PaymentsPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,contact + name: PaymentsPurchaseOrdersAppliedVendorCreditsContact + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,accounting_period + name: PaymentsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,contact,company + name: PaymentsPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,company,employee + name: PaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: PaymentsPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,contact,employee + name: PaymentsPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: PaymentsPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,contact,payment_term + name: PaymentsPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,employee + name: PaymentsPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + payments,purchase_orders,applied_vendor_credits,employee,accounting_period + name: PaymentsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,employee,payment_term + name: PaymentsPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: payments,purchase_orders,applied_vendor_credits,payment_term + name: PaymentsPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: payments,purchase_orders,company + name: PaymentsPurchaseOrdersCompany + - value: payments,purchase_orders,company,accounting_period + name: PaymentsPurchaseOrdersCompanyAccountingPeriod + - value: payments,purchase_orders,company,accounting_period,payment_term + name: PaymentsPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: payments,purchase_orders,company,employee + name: PaymentsPurchaseOrdersCompanyEmployee + - value: payments,purchase_orders,company,employee,accounting_period + name: PaymentsPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,company,employee,accounting_period,payment_term + name: PaymentsPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,purchase_orders,company,employee,payment_term + name: PaymentsPurchaseOrdersCompanyEmployeePaymentTerm + - value: payments,purchase_orders,company,payment_term + name: PaymentsPurchaseOrdersCompanyPaymentTerm + - value: payments,purchase_orders,contact + name: PaymentsPurchaseOrdersContact + - value: payments,purchase_orders,contact,accounting_period + name: PaymentsPurchaseOrdersContactAccountingPeriod + - value: payments,purchase_orders,contact,accounting_period,payment_term + name: PaymentsPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: payments,purchase_orders,contact,company + name: PaymentsPurchaseOrdersContactCompany + - value: payments,purchase_orders,contact,company,accounting_period + name: PaymentsPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + payments,purchase_orders,contact,company,accounting_period,payment_term + name: PaymentsPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: payments,purchase_orders,contact,company,employee + name: PaymentsPurchaseOrdersContactCompanyEmployee + - value: payments,purchase_orders,contact,company,employee,accounting_period + name: PaymentsPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,purchase_orders,contact,company,employee,payment_term + name: PaymentsPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: payments,purchase_orders,contact,company,payment_term + name: PaymentsPurchaseOrdersContactCompanyPaymentTerm + - value: payments,purchase_orders,contact,employee + name: PaymentsPurchaseOrdersContactEmployee + - value: payments,purchase_orders,contact,employee,accounting_period + name: PaymentsPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + payments,purchase_orders,contact,employee,accounting_period,payment_term + name: PaymentsPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: payments,purchase_orders,contact,employee,payment_term + name: PaymentsPurchaseOrdersContactEmployeePaymentTerm + - value: payments,purchase_orders,contact,payment_term + name: PaymentsPurchaseOrdersContactPaymentTerm + - value: payments,purchase_orders,employee + name: PaymentsPurchaseOrdersEmployee + - value: payments,purchase_orders,employee,accounting_period + name: PaymentsPurchaseOrdersEmployeeAccountingPeriod + - value: payments,purchase_orders,employee,accounting_period,payment_term + name: PaymentsPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: payments,purchase_orders,employee,payment_term + name: PaymentsPurchaseOrdersEmployeePaymentTerm + - value: payments,purchase_orders,payment_term + name: PaymentsPurchaseOrdersPaymentTerm + - value: payments,tracking_categories + name: PaymentsTrackingCategories + - value: payments,tracking_categories,accounting_period + name: PaymentsTrackingCategoriesAccountingPeriod + - value: payments,tracking_categories,accounting_period,payment_term + name: PaymentsTrackingCategoriesAccountingPeriodPaymentTerm + - value: payments,tracking_categories,applied_credit_notes + name: PaymentsTrackingCategoriesAppliedCreditNotes + - value: payments,tracking_categories,applied_credit_notes,accounting_period + name: PaymentsTrackingCategoriesAppliedCreditNotesAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits + name: PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: payments,tracking_categories,applied_credit_notes,company + name: PaymentsTrackingCategoriesAppliedCreditNotesCompany + - value: >- + payments,tracking_categories,applied_credit_notes,company,accounting_period + name: PaymentsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: payments,tracking_categories,applied_credit_notes,company,employee + name: PaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployee + - value: >- + payments,tracking_categories,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,company,employee,payment_term + name: PaymentsTrackingCategoriesAppliedCreditNotesCompanyEmployeePaymentTerm + - value: payments,tracking_categories,applied_credit_notes,company,payment_term + name: PaymentsTrackingCategoriesAppliedCreditNotesCompanyPaymentTerm + - value: payments,tracking_categories,applied_credit_notes,contact + name: PaymentsTrackingCategoriesAppliedCreditNotesContact + - value: >- + payments,tracking_categories,applied_credit_notes,contact,accounting_period + name: PaymentsTrackingCategoriesAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: payments,tracking_categories,applied_credit_notes,contact,company + name: PaymentsTrackingCategoriesAppliedCreditNotesContactCompany + - value: >- + payments,tracking_categories,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,contact,company,employee + name: PaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,contact,company,payment_term + name: PaymentsTrackingCategoriesAppliedCreditNotesContactCompanyPaymentTerm + - value: payments,tracking_categories,applied_credit_notes,contact,employee + name: PaymentsTrackingCategoriesAppliedCreditNotesContactEmployee + - value: >- + payments,tracking_categories,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,contact,employee,payment_term + name: PaymentsTrackingCategoriesAppliedCreditNotesContactEmployeePaymentTerm + - value: payments,tracking_categories,applied_credit_notes,contact,payment_term + name: PaymentsTrackingCategoriesAppliedCreditNotesContactPaymentTerm + - value: payments,tracking_categories,applied_credit_notes,employee + name: PaymentsTrackingCategoriesAppliedCreditNotesEmployee + - value: >- + payments,tracking_categories,applied_credit_notes,employee,accounting_period + name: PaymentsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_credit_notes,employee,payment_term + name: PaymentsTrackingCategoriesAppliedCreditNotesEmployeePaymentTerm + - value: payments,tracking_categories,applied_credit_notes,payment_term + name: PaymentsTrackingCategoriesAppliedCreditNotesPaymentTerm + - value: payments,tracking_categories,applied_vendor_credits + name: PaymentsTrackingCategoriesAppliedVendorCredits + - value: payments,tracking_categories,applied_vendor_credits,accounting_period + name: PaymentsTrackingCategoriesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,tracking_categories,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: payments,tracking_categories,applied_vendor_credits,company + name: PaymentsTrackingCategoriesAppliedVendorCreditsCompany + - value: >- + payments,tracking_categories,applied_vendor_credits,company,accounting_period + name: PaymentsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,tracking_categories,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: payments,tracking_categories,applied_vendor_credits,company,employee + name: PaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,tracking_categories,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,applied_vendor_credits,company,payment_term + name: PaymentsTrackingCategoriesAppliedVendorCreditsCompanyPaymentTerm + - value: payments,tracking_categories,applied_vendor_credits,contact + name: PaymentsTrackingCategoriesAppliedVendorCreditsContact + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,accounting_period + name: PaymentsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: payments,tracking_categories,applied_vendor_credits,contact,company + name: PaymentsTrackingCategoriesAppliedVendorCreditsContactCompany + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,company,employee + name: PaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactCompanyPaymentTerm + - value: payments,tracking_categories,applied_vendor_credits,contact,employee + name: PaymentsTrackingCategoriesAppliedVendorCreditsContactEmployee + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,tracking_categories,applied_vendor_credits,contact,payment_term + name: PaymentsTrackingCategoriesAppliedVendorCreditsContactPaymentTerm + - value: payments,tracking_categories,applied_vendor_credits,employee + name: PaymentsTrackingCategoriesAppliedVendorCreditsEmployee + - value: >- + payments,tracking_categories,applied_vendor_credits,employee,accounting_period + name: PaymentsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,applied_vendor_credits,employee,payment_term + name: PaymentsTrackingCategoriesAppliedVendorCreditsEmployeePaymentTerm + - value: payments,tracking_categories,applied_vendor_credits,payment_term + name: PaymentsTrackingCategoriesAppliedVendorCreditsPaymentTerm + - value: payments,tracking_categories,company + name: PaymentsTrackingCategoriesCompany + - value: payments,tracking_categories,company,accounting_period + name: PaymentsTrackingCategoriesCompanyAccountingPeriod + - value: payments,tracking_categories,company,accounting_period,payment_term + name: PaymentsTrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: payments,tracking_categories,company,employee + name: PaymentsTrackingCategoriesCompanyEmployee + - value: payments,tracking_categories,company,employee,accounting_period + name: PaymentsTrackingCategoriesCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,company,employee,accounting_period,payment_term + name: PaymentsTrackingCategoriesCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,tracking_categories,company,employee,payment_term + name: PaymentsTrackingCategoriesCompanyEmployeePaymentTerm + - value: payments,tracking_categories,company,payment_term + name: PaymentsTrackingCategoriesCompanyPaymentTerm + - value: payments,tracking_categories,contact + name: PaymentsTrackingCategoriesContact + - value: payments,tracking_categories,contact,accounting_period + name: PaymentsTrackingCategoriesContactAccountingPeriod + - value: payments,tracking_categories,contact,accounting_period,payment_term + name: PaymentsTrackingCategoriesContactAccountingPeriodPaymentTerm + - value: payments,tracking_categories,contact,company + name: PaymentsTrackingCategoriesContactCompany + - value: payments,tracking_categories,contact,company,accounting_period + name: PaymentsTrackingCategoriesContactCompanyAccountingPeriod + - value: >- + payments,tracking_categories,contact,company,accounting_period,payment_term + name: PaymentsTrackingCategoriesContactCompanyAccountingPeriodPaymentTerm + - value: payments,tracking_categories,contact,company,employee + name: PaymentsTrackingCategoriesContactCompanyEmployee + - value: >- + payments,tracking_categories,contact,company,employee,accounting_period + name: PaymentsTrackingCategoriesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: payments,tracking_categories,contact,company,employee,payment_term + name: PaymentsTrackingCategoriesContactCompanyEmployeePaymentTerm + - value: payments,tracking_categories,contact,company,payment_term + name: PaymentsTrackingCategoriesContactCompanyPaymentTerm + - value: payments,tracking_categories,contact,employee + name: PaymentsTrackingCategoriesContactEmployee + - value: payments,tracking_categories,contact,employee,accounting_period + name: PaymentsTrackingCategoriesContactEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,contact,employee,accounting_period,payment_term + name: PaymentsTrackingCategoriesContactEmployeeAccountingPeriodPaymentTerm + - value: payments,tracking_categories,contact,employee,payment_term + name: PaymentsTrackingCategoriesContactEmployeePaymentTerm + - value: payments,tracking_categories,contact,payment_term + name: PaymentsTrackingCategoriesContactPaymentTerm + - value: payments,tracking_categories,employee + name: PaymentsTrackingCategoriesEmployee + - value: payments,tracking_categories,employee,accounting_period + name: PaymentsTrackingCategoriesEmployeeAccountingPeriod + - value: payments,tracking_categories,employee,accounting_period,payment_term + name: PaymentsTrackingCategoriesEmployeeAccountingPeriodPaymentTerm + - value: payments,tracking_categories,employee,payment_term + name: PaymentsTrackingCategoriesEmployeePaymentTerm + - value: payments,tracking_categories,payment_term + name: PaymentsTrackingCategoriesPaymentTerm + - value: payments,tracking_categories,purchase_orders + name: PaymentsTrackingCategoriesPurchaseOrders + - value: payments,tracking_categories,purchase_orders,accounting_period + name: PaymentsTrackingCategoriesPurchaseOrdersAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,accounting_period,payment_term + name: PaymentsTrackingCategoriesPurchaseOrdersAccountingPeriodPaymentTerm + - value: payments,tracking_categories,purchase_orders,applied_credit_notes + name: PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotes + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,company + name: PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompany + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,company,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact + name: PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContact + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,contact,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,employee + name: PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_credit_notes,payment_term + name: PaymentsTrackingCategoriesPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: payments,tracking_categories,purchase_orders,applied_vendor_credits + name: PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCredits + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,company + name: PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,company,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact + name: PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContact + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,employee + name: PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,applied_vendor_credits,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: payments,tracking_categories,purchase_orders,company + name: PaymentsTrackingCategoriesPurchaseOrdersCompany + - value: payments,tracking_categories,purchase_orders,company,accounting_period + name: PaymentsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: payments,tracking_categories,purchase_orders,company,employee + name: PaymentsTrackingCategoriesPurchaseOrdersCompanyEmployee + - value: >- + payments,tracking_categories,purchase_orders,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,company,employee,payment_term + name: PaymentsTrackingCategoriesPurchaseOrdersCompanyEmployeePaymentTerm + - value: payments,tracking_categories,purchase_orders,company,payment_term + name: PaymentsTrackingCategoriesPurchaseOrdersCompanyPaymentTerm + - value: payments,tracking_categories,purchase_orders,contact + name: PaymentsTrackingCategoriesPurchaseOrdersContact + - value: payments,tracking_categories,purchase_orders,contact,accounting_period + name: PaymentsTrackingCategoriesPurchaseOrdersContactAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,contact,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: payments,tracking_categories,purchase_orders,contact,company + name: PaymentsTrackingCategoriesPurchaseOrdersContactCompany + - value: >- + payments,tracking_categories,purchase_orders,contact,company,accounting_period + name: PaymentsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,contact,company,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: payments,tracking_categories,purchase_orders,contact,company,employee + name: PaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployee + - value: >- + payments,tracking_categories,purchase_orders,contact,company,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,contact,company,employee,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,contact,company,payment_term + name: PaymentsTrackingCategoriesPurchaseOrdersContactCompanyPaymentTerm + - value: payments,tracking_categories,purchase_orders,contact,employee + name: PaymentsTrackingCategoriesPurchaseOrdersContactEmployee + - value: >- + payments,tracking_categories,purchase_orders,contact,employee,accounting_period + name: >- + PaymentsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: >- + payments,tracking_categories,purchase_orders,contact,employee,payment_term + name: PaymentsTrackingCategoriesPurchaseOrdersContactEmployeePaymentTerm + - value: payments,tracking_categories,purchase_orders,contact,payment_term + name: PaymentsTrackingCategoriesPurchaseOrdersContactPaymentTerm + - value: payments,tracking_categories,purchase_orders,employee + name: PaymentsTrackingCategoriesPurchaseOrdersEmployee + - value: >- + payments,tracking_categories,purchase_orders,employee,accounting_period + name: PaymentsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriod + - value: >- + payments,tracking_categories,purchase_orders,employee,accounting_period,payment_term + name: >- + PaymentsTrackingCategoriesPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: payments,tracking_categories,purchase_orders,employee,payment_term + name: PaymentsTrackingCategoriesPurchaseOrdersEmployeePaymentTerm + - value: payments,tracking_categories,purchase_orders,payment_term + name: PaymentsTrackingCategoriesPurchaseOrdersPaymentTerm + - purchase_orders + - value: purchase_orders,accounting_period + name: PurchaseOrdersAccountingPeriod + - value: purchase_orders,accounting_period,payment_term + name: PurchaseOrdersAccountingPeriodPaymentTerm + - value: purchase_orders,applied_credit_notes + name: PurchaseOrdersAppliedCreditNotes + - value: purchase_orders,applied_credit_notes,accounting_period + name: PurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: purchase_orders,applied_credit_notes,accounting_period,payment_term + name: PurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: purchase_orders,applied_credit_notes,applied_vendor_credits + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: PurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: purchase_orders,applied_credit_notes,company + name: PurchaseOrdersAppliedCreditNotesCompany + - value: purchase_orders,applied_credit_notes,company,accounting_period + name: PurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: PurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: purchase_orders,applied_credit_notes,company,employee + name: PurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + purchase_orders,applied_credit_notes,company,employee,accounting_period + name: PurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,applied_credit_notes,company,employee,payment_term + name: PurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: purchase_orders,applied_credit_notes,company,payment_term + name: PurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: purchase_orders,applied_credit_notes,contact + name: PurchaseOrdersAppliedCreditNotesContact + - value: purchase_orders,applied_credit_notes,contact,accounting_period + name: PurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: PurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: purchase_orders,applied_credit_notes,contact,company + name: PurchaseOrdersAppliedCreditNotesContactCompany + - value: purchase_orders,applied_credit_notes,contact,company,accounting_period + name: PurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: purchase_orders,applied_credit_notes,contact,company,employee + name: PurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: PurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: PurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: purchase_orders,applied_credit_notes,contact,company,payment_term + name: PurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: purchase_orders,applied_credit_notes,contact,employee + name: PurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: PurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,applied_credit_notes,contact,employee,payment_term + name: PurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: purchase_orders,applied_credit_notes,contact,payment_term + name: PurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: purchase_orders,applied_credit_notes,employee + name: PurchaseOrdersAppliedCreditNotesEmployee + - value: purchase_orders,applied_credit_notes,employee,accounting_period + name: PurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: PurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,applied_credit_notes,employee,payment_term + name: PurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: purchase_orders,applied_credit_notes,payment_term + name: PurchaseOrdersAppliedCreditNotesPaymentTerm + - value: purchase_orders,applied_vendor_credits + name: PurchaseOrdersAppliedVendorCredits + - value: purchase_orders,applied_vendor_credits,accounting_period + name: PurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: PurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: purchase_orders,applied_vendor_credits,company + name: PurchaseOrdersAppliedVendorCreditsCompany + - value: purchase_orders,applied_vendor_credits,company,accounting_period + name: PurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: PurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: purchase_orders,applied_vendor_credits,company,employee + name: PurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: PurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,applied_vendor_credits,company,employee,payment_term + name: PurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: purchase_orders,applied_vendor_credits,company,payment_term + name: PurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: purchase_orders,applied_vendor_credits,contact + name: PurchaseOrdersAppliedVendorCreditsContact + - value: purchase_orders,applied_vendor_credits,contact,accounting_period + name: PurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: PurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: purchase_orders,applied_vendor_credits,contact,company + name: PurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: PurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: purchase_orders,applied_vendor_credits,contact,company,employee + name: PurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + PurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: PurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: purchase_orders,applied_vendor_credits,contact,company,payment_term + name: PurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: purchase_orders,applied_vendor_credits,contact,employee + name: PurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: PurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + PurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: PurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: purchase_orders,applied_vendor_credits,contact,payment_term + name: PurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: purchase_orders,applied_vendor_credits,employee + name: PurchaseOrdersAppliedVendorCreditsEmployee + - value: purchase_orders,applied_vendor_credits,employee,accounting_period + name: PurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: PurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,applied_vendor_credits,employee,payment_term + name: PurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: purchase_orders,applied_vendor_credits,payment_term + name: PurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: purchase_orders,company + name: PurchaseOrdersCompany + - value: purchase_orders,company,accounting_period + name: PurchaseOrdersCompanyAccountingPeriod + - value: purchase_orders,company,accounting_period,payment_term + name: PurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: purchase_orders,company,employee + name: PurchaseOrdersCompanyEmployee + - value: purchase_orders,company,employee,accounting_period + name: PurchaseOrdersCompanyEmployeeAccountingPeriod + - value: purchase_orders,company,employee,accounting_period,payment_term + name: PurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,company,employee,payment_term + name: PurchaseOrdersCompanyEmployeePaymentTerm + - value: purchase_orders,company,payment_term + name: PurchaseOrdersCompanyPaymentTerm + - value: purchase_orders,contact + name: PurchaseOrdersContact + - value: purchase_orders,contact,accounting_period + name: PurchaseOrdersContactAccountingPeriod + - value: purchase_orders,contact,accounting_period,payment_term + name: PurchaseOrdersContactAccountingPeriodPaymentTerm + - value: purchase_orders,contact,company + name: PurchaseOrdersContactCompany + - value: purchase_orders,contact,company,accounting_period + name: PurchaseOrdersContactCompanyAccountingPeriod + - value: purchase_orders,contact,company,accounting_period,payment_term + name: PurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: purchase_orders,contact,company,employee + name: PurchaseOrdersContactCompanyEmployee + - value: purchase_orders,contact,company,employee,accounting_period + name: PurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + purchase_orders,contact,company,employee,accounting_period,payment_term + name: PurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,contact,company,employee,payment_term + name: PurchaseOrdersContactCompanyEmployeePaymentTerm + - value: purchase_orders,contact,company,payment_term + name: PurchaseOrdersContactCompanyPaymentTerm + - value: purchase_orders,contact,employee + name: PurchaseOrdersContactEmployee + - value: purchase_orders,contact,employee,accounting_period + name: PurchaseOrdersContactEmployeeAccountingPeriod + - value: purchase_orders,contact,employee,accounting_period,payment_term + name: PurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,contact,employee,payment_term + name: PurchaseOrdersContactEmployeePaymentTerm + - value: purchase_orders,contact,payment_term + name: PurchaseOrdersContactPaymentTerm + - value: purchase_orders,employee + name: PurchaseOrdersEmployee + - value: purchase_orders,employee,accounting_period + name: PurchaseOrdersEmployeeAccountingPeriod + - value: purchase_orders,employee,accounting_period,payment_term + name: PurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: purchase_orders,employee,payment_term + name: PurchaseOrdersEmployeePaymentTerm + - value: purchase_orders,payment_term + name: PurchaseOrdersPaymentTerm + - tracking_categories + - value: tracking_categories,accounting_period + name: TrackingCategoriesAccountingPeriod + - value: tracking_categories,accounting_period,payment_term + name: TrackingCategoriesAccountingPeriodPaymentTerm + - value: tracking_categories,applied_credit_notes + name: TrackingCategoriesAppliedCreditNotes + - value: tracking_categories,applied_credit_notes,accounting_period + name: TrackingCategoriesAppliedCreditNotesAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,accounting_period,payment_term + name: TrackingCategoriesAppliedCreditNotesAccountingPeriodPaymentTerm + - value: tracking_categories,applied_credit_notes,applied_vendor_credits + name: TrackingCategoriesAppliedCreditNotesAppliedVendorCredits + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,company + name: TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact + name: TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company + name: TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,employee + name: TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + tracking_categories,applied_credit_notes,applied_vendor_credits,payment_term + name: TrackingCategoriesAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: tracking_categories,applied_credit_notes,company + name: TrackingCategoriesAppliedCreditNotesCompany + - value: tracking_categories,applied_credit_notes,company,accounting_period + name: TrackingCategoriesAppliedCreditNotesCompanyAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,company,accounting_period,payment_term + name: TrackingCategoriesAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,applied_credit_notes,company,employee + name: TrackingCategoriesAppliedCreditNotesCompanyEmployee + - value: >- + tracking_categories,applied_credit_notes,company,employee,accounting_period + name: TrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,applied_credit_notes,company,employee,payment_term + name: TrackingCategoriesAppliedCreditNotesCompanyEmployeePaymentTerm + - value: tracking_categories,applied_credit_notes,company,payment_term + name: TrackingCategoriesAppliedCreditNotesCompanyPaymentTerm + - value: tracking_categories,applied_credit_notes,contact + name: TrackingCategoriesAppliedCreditNotesContact + - value: tracking_categories,applied_credit_notes,contact,accounting_period + name: TrackingCategoriesAppliedCreditNotesContactAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,contact,accounting_period,payment_term + name: TrackingCategoriesAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: tracking_categories,applied_credit_notes,contact,company + name: TrackingCategoriesAppliedCreditNotesContactCompany + - value: >- + tracking_categories,applied_credit_notes,contact,company,accounting_period + name: TrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,applied_credit_notes,contact,company,employee + name: TrackingCategoriesAppliedCreditNotesContactCompanyEmployee + - value: >- + tracking_categories,applied_credit_notes,contact,company,employee,accounting_period + name: >- + TrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_credit_notes,contact,company,employee,payment_term + name: TrackingCategoriesAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: tracking_categories,applied_credit_notes,contact,company,payment_term + name: TrackingCategoriesAppliedCreditNotesContactCompanyPaymentTerm + - value: tracking_categories,applied_credit_notes,contact,employee + name: TrackingCategoriesAppliedCreditNotesContactEmployee + - value: >- + tracking_categories,applied_credit_notes,contact,employee,accounting_period + name: TrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,applied_credit_notes,contact,employee,payment_term + name: TrackingCategoriesAppliedCreditNotesContactEmployeePaymentTerm + - value: tracking_categories,applied_credit_notes,contact,payment_term + name: TrackingCategoriesAppliedCreditNotesContactPaymentTerm + - value: tracking_categories,applied_credit_notes,employee + name: TrackingCategoriesAppliedCreditNotesEmployee + - value: tracking_categories,applied_credit_notes,employee,accounting_period + name: TrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_credit_notes,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,applied_credit_notes,employee,payment_term + name: TrackingCategoriesAppliedCreditNotesEmployeePaymentTerm + - value: tracking_categories,applied_credit_notes,payment_term + name: TrackingCategoriesAppliedCreditNotesPaymentTerm + - value: tracking_categories,applied_vendor_credits + name: TrackingCategoriesAppliedVendorCredits + - value: tracking_categories,applied_vendor_credits,accounting_period + name: TrackingCategoriesAppliedVendorCreditsAccountingPeriod + - value: >- + tracking_categories,applied_vendor_credits,accounting_period,payment_term + name: TrackingCategoriesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: tracking_categories,applied_vendor_credits,company + name: TrackingCategoriesAppliedVendorCreditsCompany + - value: tracking_categories,applied_vendor_credits,company,accounting_period + name: TrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + tracking_categories,applied_vendor_credits,company,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,applied_vendor_credits,company,employee + name: TrackingCategoriesAppliedVendorCreditsCompanyEmployee + - value: >- + tracking_categories,applied_vendor_credits,company,employee,accounting_period + name: TrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_vendor_credits,company,employee,payment_term + name: TrackingCategoriesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: tracking_categories,applied_vendor_credits,company,payment_term + name: TrackingCategoriesAppliedVendorCreditsCompanyPaymentTerm + - value: tracking_categories,applied_vendor_credits,contact + name: TrackingCategoriesAppliedVendorCreditsContact + - value: tracking_categories,applied_vendor_credits,contact,accounting_period + name: TrackingCategoriesAppliedVendorCreditsContactAccountingPeriod + - value: >- + tracking_categories,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: tracking_categories,applied_vendor_credits,contact,company + name: TrackingCategoriesAppliedVendorCreditsContactCompany + - value: >- + tracking_categories,applied_vendor_credits,contact,company,accounting_period + name: TrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + tracking_categories,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,applied_vendor_credits,contact,company,employee + name: TrackingCategoriesAppliedVendorCreditsContactCompanyEmployee + - value: >- + tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + TrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_vendor_credits,contact,company,employee,payment_term + name: >- + TrackingCategoriesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + tracking_categories,applied_vendor_credits,contact,company,payment_term + name: TrackingCategoriesAppliedVendorCreditsContactCompanyPaymentTerm + - value: tracking_categories,applied_vendor_credits,contact,employee + name: TrackingCategoriesAppliedVendorCreditsContactEmployee + - value: >- + tracking_categories,applied_vendor_credits,contact,employee,accounting_period + name: TrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,applied_vendor_credits,contact,employee,payment_term + name: TrackingCategoriesAppliedVendorCreditsContactEmployeePaymentTerm + - value: tracking_categories,applied_vendor_credits,contact,payment_term + name: TrackingCategoriesAppliedVendorCreditsContactPaymentTerm + - value: tracking_categories,applied_vendor_credits,employee + name: TrackingCategoriesAppliedVendorCreditsEmployee + - value: tracking_categories,applied_vendor_credits,employee,accounting_period + name: TrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + tracking_categories,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + TrackingCategoriesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,applied_vendor_credits,employee,payment_term + name: TrackingCategoriesAppliedVendorCreditsEmployeePaymentTerm + - value: tracking_categories,applied_vendor_credits,payment_term + name: TrackingCategoriesAppliedVendorCreditsPaymentTerm + - value: tracking_categories,company + name: TrackingCategoriesCompany + - value: tracking_categories,company,accounting_period + name: TrackingCategoriesCompanyAccountingPeriod + - value: tracking_categories,company,accounting_period,payment_term + name: TrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,company,employee + name: TrackingCategoriesCompanyEmployee + - value: tracking_categories,company,employee,accounting_period + name: TrackingCategoriesCompanyEmployeeAccountingPeriod + - value: tracking_categories,company,employee,accounting_period,payment_term + name: TrackingCategoriesCompanyEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,company,employee,payment_term + name: TrackingCategoriesCompanyEmployeePaymentTerm + - value: tracking_categories,company,payment_term + name: TrackingCategoriesCompanyPaymentTerm + - value: tracking_categories,contact + name: TrackingCategoriesContact + - value: tracking_categories,contact,accounting_period + name: TrackingCategoriesContactAccountingPeriod + - value: tracking_categories,contact,accounting_period,payment_term + name: TrackingCategoriesContactAccountingPeriodPaymentTerm + - value: tracking_categories,contact,company + name: TrackingCategoriesContactCompany + - value: tracking_categories,contact,company,accounting_period + name: TrackingCategoriesContactCompanyAccountingPeriod + - value: tracking_categories,contact,company,accounting_period,payment_term + name: TrackingCategoriesContactCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,contact,company,employee + name: TrackingCategoriesContactCompanyEmployee + - value: tracking_categories,contact,company,employee,accounting_period + name: TrackingCategoriesContactCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,contact,company,employee,accounting_period,payment_term + name: TrackingCategoriesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,contact,company,employee,payment_term + name: TrackingCategoriesContactCompanyEmployeePaymentTerm + - value: tracking_categories,contact,company,payment_term + name: TrackingCategoriesContactCompanyPaymentTerm + - value: tracking_categories,contact,employee + name: TrackingCategoriesContactEmployee + - value: tracking_categories,contact,employee,accounting_period + name: TrackingCategoriesContactEmployeeAccountingPeriod + - value: tracking_categories,contact,employee,accounting_period,payment_term + name: TrackingCategoriesContactEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,contact,employee,payment_term + name: TrackingCategoriesContactEmployeePaymentTerm + - value: tracking_categories,contact,payment_term + name: TrackingCategoriesContactPaymentTerm + - value: tracking_categories,employee + name: TrackingCategoriesEmployee + - value: tracking_categories,employee,accounting_period + name: TrackingCategoriesEmployeeAccountingPeriod + - value: tracking_categories,employee,accounting_period,payment_term + name: TrackingCategoriesEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,employee,payment_term + name: TrackingCategoriesEmployeePaymentTerm + - value: tracking_categories,payment_term + name: TrackingCategoriesPaymentTerm + - value: tracking_categories,purchase_orders + name: TrackingCategoriesPurchaseOrders + - value: tracking_categories,purchase_orders,accounting_period + name: TrackingCategoriesPurchaseOrdersAccountingPeriod + - value: tracking_categories,purchase_orders,accounting_period,payment_term + name: TrackingCategoriesPurchaseOrdersAccountingPeriodPaymentTerm + - value: tracking_categories,purchase_orders,applied_credit_notes + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotes + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,accounting_period + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCredits + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompany + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployee + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsCompanyPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContact + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompany + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployee + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployee + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsContactPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployee + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesAppliedVendorCreditsPaymentTerm + - value: tracking_categories,purchase_orders,applied_credit_notes,company + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesCompany + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,company,employee + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployee + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,company,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,company,payment_term + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesCompanyPaymentTerm + - value: tracking_categories,purchase_orders,applied_credit_notes,contact + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesContact + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,company + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompany + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployee + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,company,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactCompanyPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,employee + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployee + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,contact,payment_term + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesContactPaymentTerm + - value: tracking_categories,purchase_orders,applied_credit_notes,employee + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployee + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_credit_notes,employee,payment_term + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesEmployeePaymentTerm + - value: tracking_categories,purchase_orders,applied_credit_notes,payment_term + name: TrackingCategoriesPurchaseOrdersAppliedCreditNotesPaymentTerm + - value: tracking_categories,purchase_orders,applied_vendor_credits + name: TrackingCategoriesPurchaseOrdersAppliedVendorCredits + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,accounting_period + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsAccountingPeriodPaymentTerm + - value: tracking_categories,purchase_orders,applied_vendor_credits,company + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompany + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,company,employee + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployee + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,company,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,company,payment_term + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsCompanyPaymentTerm + - value: tracking_categories,purchase_orders,applied_vendor_credits,contact + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContact + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,company + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompany + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployee + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,company,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactCompanyPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,employee + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployee + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,contact,payment_term + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsContactPaymentTerm + - value: tracking_categories,purchase_orders,applied_vendor_credits,employee + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployee + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,employee,payment_term + name: >- + TrackingCategoriesPurchaseOrdersAppliedVendorCreditsEmployeePaymentTerm + - value: >- + tracking_categories,purchase_orders,applied_vendor_credits,payment_term + name: TrackingCategoriesPurchaseOrdersAppliedVendorCreditsPaymentTerm + - value: tracking_categories,purchase_orders,company + name: TrackingCategoriesPurchaseOrdersCompany + - value: tracking_categories,purchase_orders,company,accounting_period + name: TrackingCategoriesPurchaseOrdersCompanyAccountingPeriod + - value: >- + tracking_categories,purchase_orders,company,accounting_period,payment_term + name: TrackingCategoriesPurchaseOrdersCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,purchase_orders,company,employee + name: TrackingCategoriesPurchaseOrdersCompanyEmployee + - value: tracking_categories,purchase_orders,company,employee,accounting_period + name: TrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersCompanyEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,purchase_orders,company,employee,payment_term + name: TrackingCategoriesPurchaseOrdersCompanyEmployeePaymentTerm + - value: tracking_categories,purchase_orders,company,payment_term + name: TrackingCategoriesPurchaseOrdersCompanyPaymentTerm + - value: tracking_categories,purchase_orders,contact + name: TrackingCategoriesPurchaseOrdersContact + - value: tracking_categories,purchase_orders,contact,accounting_period + name: TrackingCategoriesPurchaseOrdersContactAccountingPeriod + - value: >- + tracking_categories,purchase_orders,contact,accounting_period,payment_term + name: TrackingCategoriesPurchaseOrdersContactAccountingPeriodPaymentTerm + - value: tracking_categories,purchase_orders,contact,company + name: TrackingCategoriesPurchaseOrdersContactCompany + - value: tracking_categories,purchase_orders,contact,company,accounting_period + name: TrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriod + - value: >- + tracking_categories,purchase_orders,contact,company,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersContactCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,purchase_orders,contact,company,employee + name: TrackingCategoriesPurchaseOrdersContactCompanyEmployee + - value: >- + tracking_categories,purchase_orders,contact,company,employee,accounting_period + name: TrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,contact,company,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersContactCompanyEmployeeAccountingPeriodPaymentTerm + - value: >- + tracking_categories,purchase_orders,contact,company,employee,payment_term + name: TrackingCategoriesPurchaseOrdersContactCompanyEmployeePaymentTerm + - value: tracking_categories,purchase_orders,contact,company,payment_term + name: TrackingCategoriesPurchaseOrdersContactCompanyPaymentTerm + - value: tracking_categories,purchase_orders,contact,employee + name: TrackingCategoriesPurchaseOrdersContactEmployee + - value: tracking_categories,purchase_orders,contact,employee,accounting_period + name: TrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,contact,employee,accounting_period,payment_term + name: >- + TrackingCategoriesPurchaseOrdersContactEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,purchase_orders,contact,employee,payment_term + name: TrackingCategoriesPurchaseOrdersContactEmployeePaymentTerm + - value: tracking_categories,purchase_orders,contact,payment_term + name: TrackingCategoriesPurchaseOrdersContactPaymentTerm + - value: tracking_categories,purchase_orders,employee + name: TrackingCategoriesPurchaseOrdersEmployee + - value: tracking_categories,purchase_orders,employee,accounting_period + name: TrackingCategoriesPurchaseOrdersEmployeeAccountingPeriod + - value: >- + tracking_categories,purchase_orders,employee,accounting_period,payment_term + name: TrackingCategoriesPurchaseOrdersEmployeeAccountingPeriodPaymentTerm + - value: tracking_categories,purchase_orders,employee,payment_term + name: TrackingCategoriesPurchaseOrdersEmployeePaymentTerm + - value: tracking_categories,purchase_orders,payment_term + name: TrackingCategoriesPurchaseOrdersPaymentTerm + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/invoices + method: GET + auth: true + docs: Returns a list of `Invoice` objects. + source: + openapi: openapi/openapi.yml + request: + name: InvoicesListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return invoices for this company. + contact_id: + type: optional + docs: If provided, will only return invoices for this contact. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + issue_date_after: + type: optional + docs: If provided, will only return objects created after this datetime. + issue_date_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + number: + type: optional + docs: If provided, will only return Invoices with this number. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + status: + type: optional + docs: |- + If provided, will only return Invoices with this status. + + * `PAID` - PAID + * `DRAFT` - DRAFT + * `SUBMITTED` - SUBMITTED + * `PARTIALLY_PAID` - PARTIALLY_PAID + * `OPEN` - OPEN + * `VOID` - VOID + type: + type: optional + docs: |- + If provided, will only return Invoices with this type. + + * `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + * `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + response: + docs: '' + type: root.PaginatedInvoiceList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: '990110' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + type: ACCOUNTS_RECEIVABLE + contact: contact + number: AIQ12546 + issue_date: '2020-03-31T00:00:00Z' + due_date: '2020-04-15T00:00:00Z' + paid_on_date: '2020-04-01T00:00:00Z' + memo: Weekly Payment + company: company + employee: employee + currency: XUA + exchange_rate: '2.9' + payment_term: payment_term + total_discount: 1.1 + sub_total: 100 + status: PAID + total_tax_amount: 5 + total_amount: 105 + balance: 105 + remote_updated_at: '2020-04-01T00:00:00Z' + tracking_categories: + - 7dc5ca17-d311-44cd-9ce0-333080367a18 + - 6aa0700c-48e1-4c4a-8162-02e6a582df05 + - 8c933d61-8f5b-4360-ac0c-c9dc87bee763 + accounting_period: accounting_period + purchase_orders: + - e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7 + - dd70ca2f-b120-46fa-889a-9604037f45fd + - 889b281d-739c-4759-95b8-0aedb3947131 + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - 9017594e-dc33-4113-a5d2-b0f928e34fdd + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '8765432' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball lessons + unit_price: 50 + quantity: 1 + total_amount: 50 + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: 908934-49j9-093f-0989-908923908 + currency: USD + exchange_rate: '2.9' + item: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + account: cd0f32d4-a493-11ec-b909-0242ac120002 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + applied_credit_notes: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + credit_note: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + applied_vendor_credits: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + vendor_credit: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + inclusive_of_tax: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /accounting/v1/invoices + method: POST + auth: true + docs: |- + Creates an `Invoice` object with the given values. + Including a `PurchaseOrder` id in the `purchase_orders` property will generate an Accounts Payable Invoice from the specified Purchase Order(s). + + source: + openapi: openapi/openapi.yml + request: + name: InvoiceEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.InvoiceRequest + content-type: application/json + response: + docs: '' + type: root.InvoiceResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: '990110' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + type: ACCOUNTS_RECEIVABLE + contact: contact + number: AIQ12546 + issue_date: '2020-03-31T00:00:00Z' + due_date: '2020-04-15T00:00:00Z' + paid_on_date: '2020-04-01T00:00:00Z' + memo: Weekly Payment + company: company + employee: employee + currency: XUA + exchange_rate: '2.9' + payment_term: payment_term + total_discount: 1.1 + sub_total: 100 + status: PAID + total_tax_amount: 5 + total_amount: 105 + balance: 105 + remote_updated_at: '2020-04-01T00:00:00Z' + tracking_categories: + - 7dc5ca17-d311-44cd-9ce0-333080367a18 + - 6aa0700c-48e1-4c4a-8162-02e6a582df05 + - 8c933d61-8f5b-4360-ac0c-c9dc87bee763 + accounting_period: accounting_period + purchase_orders: + - e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7 + - dd70ca2f-b120-46fa-889a-9604037f45fd + - 889b281d-739c-4759-95b8-0aedb3947131 + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - 9017594e-dc33-4113-a5d2-b0f928e34fdd + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '8765432' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball lessons + unit_price: 50 + quantity: 1 + total_amount: 50 + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: 908934-49j9-093f-0989-908923908 + currency: USD + exchange_rate: '2.9' + item: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + account: cd0f32d4-a493-11ec-b909-0242ac120002 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + applied_credit_notes: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + credit_note: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + applied_vendor_credits: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + vendor_credit: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + inclusive_of_tax: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/invoices/{id} + method: GET + auth: true + docs: Returns an `Invoice` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: InvoicesRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.Invoice + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: '990110' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + type: ACCOUNTS_RECEIVABLE + contact: contact + number: AIQ12546 + issue_date: '2020-03-31T00:00:00Z' + due_date: '2020-04-15T00:00:00Z' + paid_on_date: '2020-04-01T00:00:00Z' + memo: Weekly Payment + company: company + employee: employee + currency: XUA + exchange_rate: '2.9' + payment_term: payment_term + total_discount: 1.1 + sub_total: 100 + status: PAID + total_tax_amount: 5 + total_amount: 105 + balance: 105 + remote_updated_at: '2020-04-01T00:00:00Z' + tracking_categories: + - 7dc5ca17-d311-44cd-9ce0-333080367a18 + - 6aa0700c-48e1-4c4a-8162-02e6a582df05 + - 8c933d61-8f5b-4360-ac0c-c9dc87bee763 + accounting_period: accounting_period + purchase_orders: + - e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7 + - dd70ca2f-b120-46fa-889a-9604037f45fd + - 889b281d-739c-4759-95b8-0aedb3947131 + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - 9017594e-dc33-4113-a5d2-b0f928e34fdd + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '8765432' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball lessons + unit_price: 50 + quantity: 1 + total_amount: 50 + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: 908934-49j9-093f-0989-908923908 + currency: USD + exchange_rate: '2.9' + item: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + account: cd0f32d4-a493-11ec-b909-0242ac120002 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + tracking_category: tracking_category + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_fields: + - remote_field_class: remote_field_class + applied_credit_notes: + - remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + credit_note: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + remote_was_deleted: true + applied_vendor_credits: + - remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + vendor_credit: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + remote_was_deleted: true + inclusive_of_tax: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + partialUpdate: + path: /accounting/v1/invoices/{id} + method: PATCH + auth: true + docs: Updates an `Invoice` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: PatchedInvoiceEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.InvoiceRequest + content-type: application/json + response: + docs: '' + type: root.InvoiceResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + response: + body: + model: + id: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: '990110' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + type: ACCOUNTS_RECEIVABLE + contact: contact + number: AIQ12546 + issue_date: '2020-03-31T00:00:00Z' + due_date: '2020-04-15T00:00:00Z' + paid_on_date: '2020-04-01T00:00:00Z' + memo: Weekly Payment + company: company + employee: employee + currency: XUA + exchange_rate: '2.9' + payment_term: payment_term + total_discount: 1.1 + sub_total: 100 + status: PAID + total_tax_amount: 5 + total_amount: 105 + balance: 105 + remote_updated_at: '2020-04-01T00:00:00Z' + tracking_categories: + - 7dc5ca17-d311-44cd-9ce0-333080367a18 + - 6aa0700c-48e1-4c4a-8162-02e6a582df05 + - 8c933d61-8f5b-4360-ac0c-c9dc87bee763 + accounting_period: accounting_period + purchase_orders: + - e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7 + - dd70ca2f-b120-46fa-889a-9604037f45fd + - 889b281d-739c-4759-95b8-0aedb3947131 + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - 9017594e-dc33-4113-a5d2-b0f928e34fdd + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '8765432' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball lessons + unit_price: 50 + quantity: 1 + total_amount: 50 + employee: 7442f0d5-722d-45bd-b807-6e38489d37fe + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: 908934-49j9-093f-0989-908923908 + currency: USD + exchange_rate: '2.9' + item: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + account: cd0f32d4-a493-11ec-b909-0242ac120002 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + applied_credit_notes: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + credit_note: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + applied_vendor_credits: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + vendor_credit: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + inclusive_of_tax: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + lineItemsRemoteFieldClassesList: + path: /accounting/v1/invoices/line-items/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: InvoicesLineItemsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + metaPatchRetrieve: + path: /accounting/v1/invoices/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `Invoice` PATCHs. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /accounting/v1/invoices/meta/post + method: GET + auth: true + docs: Returns metadata for `Invoice` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /accounting/v1/invoices/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: InvoicesRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/issues.yml b/.mock/definition/accounting/issues.yml new file mode 100644 index 000000000..58c4f3b1e --- /dev/null +++ b/.mock/definition/accounting/issues.yml @@ -0,0 +1,129 @@ +types: + IssuesListRequestStatus: + enum: + - ONGOING + - RESOLVED + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/issues + method: GET + auth: true + docs: Gets all issues for Organization. + source: + openapi: openapi/openapi.yml + request: + name: IssuesListRequest + query-parameters: + account_token: optional + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred before this time + end_user_organization_name: optional + first_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + after this datetime. + first_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + before this datetime. + include_muted: + type: optional + docs: If true, will include muted issues + integration_name: optional + last_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + after this datetime. + last_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + before this datetime. + linked_account_id: + type: optional + docs: >- + If provided, will only include issues pertaining to the linked + account passed in. + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred after this time + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + response: + docs: '' + type: root.PaginatedIssueList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + retrieve: + path: /accounting/v1/issues/{id} + method: GET + auth: true + docs: Get a specific issue. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + response: + docs: '' + type: root.Issue + status-code: 200 + examples: + - path-parameters: + id: id + response: + body: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/items.yml b/.mock/definition/accounting/items.yml new file mode 100644 index 000000000..7ee5dea70 --- /dev/null +++ b/.mock/definition/accounting/items.yml @@ -0,0 +1,842 @@ +types: + ItemsListRequestExpand: + enum: + - company + - value: company,purchase_tax_rate + name: CompanyPurchaseTaxRate + - value: company,sales_tax_rate + name: CompanySalesTaxRate + - value: company,sales_tax_rate,purchase_tax_rate + name: CompanySalesTaxRatePurchaseTaxRate + - purchase_account + - value: purchase_account,company + name: PurchaseAccountCompany + - value: purchase_account,company,purchase_tax_rate + name: PurchaseAccountCompanyPurchaseTaxRate + - value: purchase_account,company,sales_tax_rate + name: PurchaseAccountCompanySalesTaxRate + - value: purchase_account,company,sales_tax_rate,purchase_tax_rate + name: PurchaseAccountCompanySalesTaxRatePurchaseTaxRate + - value: purchase_account,purchase_tax_rate + name: PurchaseAccountPurchaseTaxRate + - value: purchase_account,sales_account + name: PurchaseAccountSalesAccount + - value: purchase_account,sales_account,company + name: PurchaseAccountSalesAccountCompany + - value: purchase_account,sales_account,company,purchase_tax_rate + name: PurchaseAccountSalesAccountCompanyPurchaseTaxRate + - value: purchase_account,sales_account,company,sales_tax_rate + name: PurchaseAccountSalesAccountCompanySalesTaxRate + - value: >- + purchase_account,sales_account,company,sales_tax_rate,purchase_tax_rate + name: PurchaseAccountSalesAccountCompanySalesTaxRatePurchaseTaxRate + - value: purchase_account,sales_account,purchase_tax_rate + name: PurchaseAccountSalesAccountPurchaseTaxRate + - value: purchase_account,sales_account,sales_tax_rate + name: PurchaseAccountSalesAccountSalesTaxRate + - value: purchase_account,sales_account,sales_tax_rate,purchase_tax_rate + name: PurchaseAccountSalesAccountSalesTaxRatePurchaseTaxRate + - value: purchase_account,sales_tax_rate + name: PurchaseAccountSalesTaxRate + - value: purchase_account,sales_tax_rate,purchase_tax_rate + name: PurchaseAccountSalesTaxRatePurchaseTaxRate + - purchase_tax_rate + - sales_account + - value: sales_account,company + name: SalesAccountCompany + - value: sales_account,company,purchase_tax_rate + name: SalesAccountCompanyPurchaseTaxRate + - value: sales_account,company,sales_tax_rate + name: SalesAccountCompanySalesTaxRate + - value: sales_account,company,sales_tax_rate,purchase_tax_rate + name: SalesAccountCompanySalesTaxRatePurchaseTaxRate + - value: sales_account,purchase_tax_rate + name: SalesAccountPurchaseTaxRate + - value: sales_account,sales_tax_rate + name: SalesAccountSalesTaxRate + - value: sales_account,sales_tax_rate,purchase_tax_rate + name: SalesAccountSalesTaxRatePurchaseTaxRate + - sales_tax_rate + - value: sales_tax_rate,purchase_tax_rate + name: SalesTaxRatePurchaseTaxRate + source: + openapi: openapi/openapi.yml + ItemsRetrieveRequestExpand: + enum: + - company + - value: company,purchase_tax_rate + name: CompanyPurchaseTaxRate + - value: company,sales_tax_rate + name: CompanySalesTaxRate + - value: company,sales_tax_rate,purchase_tax_rate + name: CompanySalesTaxRatePurchaseTaxRate + - purchase_account + - value: purchase_account,company + name: PurchaseAccountCompany + - value: purchase_account,company,purchase_tax_rate + name: PurchaseAccountCompanyPurchaseTaxRate + - value: purchase_account,company,sales_tax_rate + name: PurchaseAccountCompanySalesTaxRate + - value: purchase_account,company,sales_tax_rate,purchase_tax_rate + name: PurchaseAccountCompanySalesTaxRatePurchaseTaxRate + - value: purchase_account,purchase_tax_rate + name: PurchaseAccountPurchaseTaxRate + - value: purchase_account,sales_account + name: PurchaseAccountSalesAccount + - value: purchase_account,sales_account,company + name: PurchaseAccountSalesAccountCompany + - value: purchase_account,sales_account,company,purchase_tax_rate + name: PurchaseAccountSalesAccountCompanyPurchaseTaxRate + - value: purchase_account,sales_account,company,sales_tax_rate + name: PurchaseAccountSalesAccountCompanySalesTaxRate + - value: >- + purchase_account,sales_account,company,sales_tax_rate,purchase_tax_rate + name: PurchaseAccountSalesAccountCompanySalesTaxRatePurchaseTaxRate + - value: purchase_account,sales_account,purchase_tax_rate + name: PurchaseAccountSalesAccountPurchaseTaxRate + - value: purchase_account,sales_account,sales_tax_rate + name: PurchaseAccountSalesAccountSalesTaxRate + - value: purchase_account,sales_account,sales_tax_rate,purchase_tax_rate + name: PurchaseAccountSalesAccountSalesTaxRatePurchaseTaxRate + - value: purchase_account,sales_tax_rate + name: PurchaseAccountSalesTaxRate + - value: purchase_account,sales_tax_rate,purchase_tax_rate + name: PurchaseAccountSalesTaxRatePurchaseTaxRate + - purchase_tax_rate + - sales_account + - value: sales_account,company + name: SalesAccountCompany + - value: sales_account,company,purchase_tax_rate + name: SalesAccountCompanyPurchaseTaxRate + - value: sales_account,company,sales_tax_rate + name: SalesAccountCompanySalesTaxRate + - value: sales_account,company,sales_tax_rate,purchase_tax_rate + name: SalesAccountCompanySalesTaxRatePurchaseTaxRate + - value: sales_account,purchase_tax_rate + name: SalesAccountPurchaseTaxRate + - value: sales_account,sales_tax_rate + name: SalesAccountSalesTaxRate + - value: sales_account,sales_tax_rate,purchase_tax_rate + name: SalesAccountSalesTaxRatePurchaseTaxRate + - sales_tax_rate + - value: sales_tax_rate,purchase_tax_rate + name: SalesTaxRatePurchaseTaxRate + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/items + method: GET + auth: true + docs: Returns a list of `Item` objects. + source: + openapi: openapi/openapi.yml + request: + name: ItemsListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return items for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.PaginatedItemList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: d2f972d0-2526-434b-9409-4c3b468e08f0 + remote_id: '12374' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Pickleball Paddle + status: ACTIVE + unit_price: 10 + purchase_price: 25 + purchase_account: purchase_account + sales_account: sales_account + company: company + purchase_tax_rate: purchase_tax_rate + sales_tax_rate: sales_tax_rate + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + create: + path: /accounting/v1/items + method: POST + auth: true + docs: Creates an `Item` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: ItemEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.ItemRequestRequest + content-type: application/json + response: + docs: '' + type: root.ItemResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: d2f972d0-2526-434b-9409-4c3b468e08f0 + remote_id: '12374' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Pickleball Paddle + status: ACTIVE + unit_price: 10 + purchase_price: 25 + purchase_account: purchase_account + sales_account: sales_account + company: company + purchase_tax_rate: purchase_tax_rate + sales_tax_rate: sales_tax_rate + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/items/{id} + method: GET + auth: true + docs: Returns an `Item` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: ItemsRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.Item + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: d2f972d0-2526-434b-9409-4c3b468e08f0 + remote_id: '12374' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Pickleball Paddle + status: ACTIVE + unit_price: 10 + purchase_price: 25 + purchase_account: purchase_account + sales_account: sales_account + company: company + purchase_tax_rate: purchase_tax_rate + sales_tax_rate: sales_tax_rate + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + partialUpdate: + path: /accounting/v1/items/{id} + method: PATCH + auth: true + docs: Updates an `Item` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: PatchedItemEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.PatchedItemRequestRequest + content-type: application/json + response: + docs: '' + type: root.ItemResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + response: + body: + model: + id: d2f972d0-2526-434b-9409-4c3b468e08f0 + remote_id: '12374' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Pickleball Paddle + status: ACTIVE + unit_price: 10 + purchase_price: 25 + purchase_account: purchase_account + sales_account: sales_account + company: company + purchase_tax_rate: purchase_tax_rate + sales_tax_rate: sales_tax_rate + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + metaPatchRetrieve: + path: /accounting/v1/items/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `Item` PATCHs. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /accounting/v1/items/meta/post + method: GET + auth: true + docs: Returns metadata for `Item` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/journalEntries.yml b/.mock/definition/accounting/journalEntries.yml new file mode 100644 index 000000000..feb7bad36 --- /dev/null +++ b/.mock/definition/accounting/journalEntries.yml @@ -0,0 +1,959 @@ +types: + JournalEntriesListRequestExpand: + enum: + - accounting_period + - applied_payments + - value: applied_payments,accounting_period + name: AppliedPaymentsAccountingPeriod + - value: applied_payments,company + name: AppliedPaymentsCompany + - value: applied_payments,company,accounting_period + name: AppliedPaymentsCompanyAccountingPeriod + - value: applied_payments,tracking_categories + name: AppliedPaymentsTrackingCategories + - value: applied_payments,tracking_categories,accounting_period + name: AppliedPaymentsTrackingCategoriesAccountingPeriod + - value: applied_payments,tracking_categories,company + name: AppliedPaymentsTrackingCategoriesCompany + - value: applied_payments,tracking_categories,company,accounting_period + name: AppliedPaymentsTrackingCategoriesCompanyAccountingPeriod + - company + - value: company,accounting_period + name: CompanyAccountingPeriod + - lines + - value: lines,accounting_period + name: LinesAccountingPeriod + - value: lines,applied_payments + name: LinesAppliedPayments + - value: lines,applied_payments,accounting_period + name: LinesAppliedPaymentsAccountingPeriod + - value: lines,applied_payments,company + name: LinesAppliedPaymentsCompany + - value: lines,applied_payments,company,accounting_period + name: LinesAppliedPaymentsCompanyAccountingPeriod + - value: lines,applied_payments,tracking_categories + name: LinesAppliedPaymentsTrackingCategories + - value: lines,applied_payments,tracking_categories,accounting_period + name: LinesAppliedPaymentsTrackingCategoriesAccountingPeriod + - value: lines,applied_payments,tracking_categories,company + name: LinesAppliedPaymentsTrackingCategoriesCompany + - value: lines,applied_payments,tracking_categories,company,accounting_period + name: LinesAppliedPaymentsTrackingCategoriesCompanyAccountingPeriod + - value: lines,company + name: LinesCompany + - value: lines,company,accounting_period + name: LinesCompanyAccountingPeriod + - value: lines,payments + name: LinesPayments + - value: lines,payments,accounting_period + name: LinesPaymentsAccountingPeriod + - value: lines,payments,applied_payments + name: LinesPaymentsAppliedPayments + - value: lines,payments,applied_payments,accounting_period + name: LinesPaymentsAppliedPaymentsAccountingPeriod + - value: lines,payments,applied_payments,company + name: LinesPaymentsAppliedPaymentsCompany + - value: lines,payments,applied_payments,company,accounting_period + name: LinesPaymentsAppliedPaymentsCompanyAccountingPeriod + - value: lines,payments,applied_payments,tracking_categories + name: LinesPaymentsAppliedPaymentsTrackingCategories + - value: lines,payments,applied_payments,tracking_categories,accounting_period + name: LinesPaymentsAppliedPaymentsTrackingCategoriesAccountingPeriod + - value: lines,payments,applied_payments,tracking_categories,company + name: LinesPaymentsAppliedPaymentsTrackingCategoriesCompany + - value: >- + lines,payments,applied_payments,tracking_categories,company,accounting_period + name: LinesPaymentsAppliedPaymentsTrackingCategoriesCompanyAccountingPeriod + - value: lines,payments,company + name: LinesPaymentsCompany + - value: lines,payments,company,accounting_period + name: LinesPaymentsCompanyAccountingPeriod + - value: lines,payments,tracking_categories + name: LinesPaymentsTrackingCategories + - value: lines,payments,tracking_categories,accounting_period + name: LinesPaymentsTrackingCategoriesAccountingPeriod + - value: lines,payments,tracking_categories,company + name: LinesPaymentsTrackingCategoriesCompany + - value: lines,payments,tracking_categories,company,accounting_period + name: LinesPaymentsTrackingCategoriesCompanyAccountingPeriod + - value: lines,tracking_categories + name: LinesTrackingCategories + - value: lines,tracking_categories,accounting_period + name: LinesTrackingCategoriesAccountingPeriod + - value: lines,tracking_categories,company + name: LinesTrackingCategoriesCompany + - value: lines,tracking_categories,company,accounting_period + name: LinesTrackingCategoriesCompanyAccountingPeriod + - payments + - value: payments,accounting_period + name: PaymentsAccountingPeriod + - value: payments,applied_payments + name: PaymentsAppliedPayments + - value: payments,applied_payments,accounting_period + name: PaymentsAppliedPaymentsAccountingPeriod + - value: payments,applied_payments,company + name: PaymentsAppliedPaymentsCompany + - value: payments,applied_payments,company,accounting_period + name: PaymentsAppliedPaymentsCompanyAccountingPeriod + - value: payments,applied_payments,tracking_categories + name: PaymentsAppliedPaymentsTrackingCategories + - value: payments,applied_payments,tracking_categories,accounting_period + name: PaymentsAppliedPaymentsTrackingCategoriesAccountingPeriod + - value: payments,applied_payments,tracking_categories,company + name: PaymentsAppliedPaymentsTrackingCategoriesCompany + - value: >- + payments,applied_payments,tracking_categories,company,accounting_period + name: PaymentsAppliedPaymentsTrackingCategoriesCompanyAccountingPeriod + - value: payments,company + name: PaymentsCompany + - value: payments,company,accounting_period + name: PaymentsCompanyAccountingPeriod + - value: payments,tracking_categories + name: PaymentsTrackingCategories + - value: payments,tracking_categories,accounting_period + name: PaymentsTrackingCategoriesAccountingPeriod + - value: payments,tracking_categories,company + name: PaymentsTrackingCategoriesCompany + - value: payments,tracking_categories,company,accounting_period + name: PaymentsTrackingCategoriesCompanyAccountingPeriod + - tracking_categories + - value: tracking_categories,accounting_period + name: TrackingCategoriesAccountingPeriod + - value: tracking_categories,company + name: TrackingCategoriesCompany + - value: tracking_categories,company,accounting_period + name: TrackingCategoriesCompanyAccountingPeriod + source: + openapi: openapi/openapi.yml + JournalEntriesRetrieveRequestExpand: + enum: + - accounting_period + - applied_payments + - value: applied_payments,accounting_period + name: AppliedPaymentsAccountingPeriod + - value: applied_payments,company + name: AppliedPaymentsCompany + - value: applied_payments,company,accounting_period + name: AppliedPaymentsCompanyAccountingPeriod + - value: applied_payments,tracking_categories + name: AppliedPaymentsTrackingCategories + - value: applied_payments,tracking_categories,accounting_period + name: AppliedPaymentsTrackingCategoriesAccountingPeriod + - value: applied_payments,tracking_categories,company + name: AppliedPaymentsTrackingCategoriesCompany + - value: applied_payments,tracking_categories,company,accounting_period + name: AppliedPaymentsTrackingCategoriesCompanyAccountingPeriod + - company + - value: company,accounting_period + name: CompanyAccountingPeriod + - lines + - value: lines,accounting_period + name: LinesAccountingPeriod + - value: lines,applied_payments + name: LinesAppliedPayments + - value: lines,applied_payments,accounting_period + name: LinesAppliedPaymentsAccountingPeriod + - value: lines,applied_payments,company + name: LinesAppliedPaymentsCompany + - value: lines,applied_payments,company,accounting_period + name: LinesAppliedPaymentsCompanyAccountingPeriod + - value: lines,applied_payments,tracking_categories + name: LinesAppliedPaymentsTrackingCategories + - value: lines,applied_payments,tracking_categories,accounting_period + name: LinesAppliedPaymentsTrackingCategoriesAccountingPeriod + - value: lines,applied_payments,tracking_categories,company + name: LinesAppliedPaymentsTrackingCategoriesCompany + - value: lines,applied_payments,tracking_categories,company,accounting_period + name: LinesAppliedPaymentsTrackingCategoriesCompanyAccountingPeriod + - value: lines,company + name: LinesCompany + - value: lines,company,accounting_period + name: LinesCompanyAccountingPeriod + - value: lines,payments + name: LinesPayments + - value: lines,payments,accounting_period + name: LinesPaymentsAccountingPeriod + - value: lines,payments,applied_payments + name: LinesPaymentsAppliedPayments + - value: lines,payments,applied_payments,accounting_period + name: LinesPaymentsAppliedPaymentsAccountingPeriod + - value: lines,payments,applied_payments,company + name: LinesPaymentsAppliedPaymentsCompany + - value: lines,payments,applied_payments,company,accounting_period + name: LinesPaymentsAppliedPaymentsCompanyAccountingPeriod + - value: lines,payments,applied_payments,tracking_categories + name: LinesPaymentsAppliedPaymentsTrackingCategories + - value: lines,payments,applied_payments,tracking_categories,accounting_period + name: LinesPaymentsAppliedPaymentsTrackingCategoriesAccountingPeriod + - value: lines,payments,applied_payments,tracking_categories,company + name: LinesPaymentsAppliedPaymentsTrackingCategoriesCompany + - value: >- + lines,payments,applied_payments,tracking_categories,company,accounting_period + name: LinesPaymentsAppliedPaymentsTrackingCategoriesCompanyAccountingPeriod + - value: lines,payments,company + name: LinesPaymentsCompany + - value: lines,payments,company,accounting_period + name: LinesPaymentsCompanyAccountingPeriod + - value: lines,payments,tracking_categories + name: LinesPaymentsTrackingCategories + - value: lines,payments,tracking_categories,accounting_period + name: LinesPaymentsTrackingCategoriesAccountingPeriod + - value: lines,payments,tracking_categories,company + name: LinesPaymentsTrackingCategoriesCompany + - value: lines,payments,tracking_categories,company,accounting_period + name: LinesPaymentsTrackingCategoriesCompanyAccountingPeriod + - value: lines,tracking_categories + name: LinesTrackingCategories + - value: lines,tracking_categories,accounting_period + name: LinesTrackingCategoriesAccountingPeriod + - value: lines,tracking_categories,company + name: LinesTrackingCategoriesCompany + - value: lines,tracking_categories,company,accounting_period + name: LinesTrackingCategoriesCompanyAccountingPeriod + - payments + - value: payments,accounting_period + name: PaymentsAccountingPeriod + - value: payments,applied_payments + name: PaymentsAppliedPayments + - value: payments,applied_payments,accounting_period + name: PaymentsAppliedPaymentsAccountingPeriod + - value: payments,applied_payments,company + name: PaymentsAppliedPaymentsCompany + - value: payments,applied_payments,company,accounting_period + name: PaymentsAppliedPaymentsCompanyAccountingPeriod + - value: payments,applied_payments,tracking_categories + name: PaymentsAppliedPaymentsTrackingCategories + - value: payments,applied_payments,tracking_categories,accounting_period + name: PaymentsAppliedPaymentsTrackingCategoriesAccountingPeriod + - value: payments,applied_payments,tracking_categories,company + name: PaymentsAppliedPaymentsTrackingCategoriesCompany + - value: >- + payments,applied_payments,tracking_categories,company,accounting_period + name: PaymentsAppliedPaymentsTrackingCategoriesCompanyAccountingPeriod + - value: payments,company + name: PaymentsCompany + - value: payments,company,accounting_period + name: PaymentsCompanyAccountingPeriod + - value: payments,tracking_categories + name: PaymentsTrackingCategories + - value: payments,tracking_categories,accounting_period + name: PaymentsTrackingCategoriesAccountingPeriod + - value: payments,tracking_categories,company + name: PaymentsTrackingCategoriesCompany + - value: payments,tracking_categories,company,accounting_period + name: PaymentsTrackingCategoriesCompanyAccountingPeriod + - tracking_categories + - value: tracking_categories,accounting_period + name: TrackingCategoriesAccountingPeriod + - value: tracking_categories,company + name: TrackingCategoriesCompany + - value: tracking_categories,company,accounting_period + name: TrackingCategoriesCompanyAccountingPeriod + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/journal-entries + method: GET + auth: true + docs: Returns a list of `JournalEntry` objects. + source: + openapi: openapi/openapi.yml + request: + name: JournalEntriesListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return journal entries for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + transaction_date_after: + type: optional + docs: If provided, will only return objects created after this datetime. + transaction_date_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + response: + docs: '' + type: root.PaginatedJournalEntryList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - 4311155d-f236-4a5d-9e0f-1cb167e38f95 + memo: Weekly Payment + currency: XUA + exchange_rate: '2.9' + company: company + inclusive_of_tax: true + lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + net_amount: 25.54 + tracking_categories: + - d25d609b-945f-4762-b55a-1c8fb220c43c + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: 123c8r35-5kf5-12x5-r833-99bwf35210b5 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: d2d5ea3c-b032-11ec-b909-0242ac120002 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + description: Cash payment for lunch + exchange_rate: '2.9' + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121223' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + account: f963f34d-3d2f-4f77-b557-cf36bc7e6498 + net_amount: 10 + journal_number: '42' + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + remote_was_deleted: true + posting_status: UNPOSTED + accounting_period: accounting_period + remote_created_at: '2020-03-31T00:00:00Z' + remote_updated_at: '2020-03-31T00:00:00Z' + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /accounting/v1/journal-entries + method: POST + auth: true + docs: Creates a `JournalEntry` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: JournalEntryEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.JournalEntryRequest + content-type: application/json + response: + docs: '' + type: root.JournalEntryResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - 4311155d-f236-4a5d-9e0f-1cb167e38f95 + memo: Weekly Payment + currency: XUA + exchange_rate: '2.9' + company: company + inclusive_of_tax: true + lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + net_amount: 25.54 + tracking_categories: + - d25d609b-945f-4762-b55a-1c8fb220c43c + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: 123c8r35-5kf5-12x5-r833-99bwf35210b5 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: d2d5ea3c-b032-11ec-b909-0242ac120002 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + description: Cash payment for lunch + exchange_rate: '2.9' + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121223' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + account: f963f34d-3d2f-4f77-b557-cf36bc7e6498 + net_amount: 10 + journal_number: '42' + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + remote_was_deleted: true + posting_status: UNPOSTED + accounting_period: accounting_period + remote_created_at: '2020-03-31T00:00:00Z' + remote_updated_at: '2020-03-31T00:00:00Z' + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/journal-entries/{id} + method: GET + auth: true + docs: Returns a `JournalEntry` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: JournalEntriesRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.JournalEntry + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + payments: + - b26fd49a-cbae-470a-a8f8-bcbc119e0390 + applied_payments: + - 4311155d-f236-4a5d-9e0f-1cb167e38f95 + memo: Weekly Payment + currency: XUA + exchange_rate: '2.9' + company: company + inclusive_of_tax: true + lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + net_amount: 25.54 + tracking_category: tracking_category + tracking_categories: + - d25d609b-945f-4762-b55a-1c8fb220c43c + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + currency: XUA + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: 123c8r35-5kf5-12x5-r833-99bwf35210b5 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: d2d5ea3c-b032-11ec-b909-0242ac120002 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + description: Cash payment for lunch + exchange_rate: '2.9' + remote_was_deleted: false + remote_fields: + - remote_field_class: remote_field_class + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121223' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + account: f963f34d-3d2f-4f77-b557-cf36bc7e6498 + net_amount: 10 + tracking_category: tracking_category + tracking_categories: + - d25d609b-945f-4762-b55a-1c8fb220c43c + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + currency: XUA + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + employee: 123c8r35-5kf5-12x5-r833-99bwf35210b5 + project: project + contact: d2d5ea3c-b032-11ec-b909-0242ac120002 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + description: Cash payment for lunch + exchange_rate: '2.9' + remote_was_deleted: true + remote_fields: + - remote_field_class: remote_field_class + journal_number: '42' + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + remote_was_deleted: true + posting_status: UNPOSTED + accounting_period: accounting_period + remote_created_at: '2020-03-31T00:00:00Z' + remote_updated_at: '2020-03-31T00:00:00Z' + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + linesRemoteFieldClassesList: + path: /accounting/v1/journal-entries/lines/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: JournalEntriesLinesRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + metaPostRetrieve: + path: /accounting/v1/journal-entries/meta/post + method: GET + auth: true + docs: Returns metadata for `JournalEntry` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /accounting/v1/journal-entries/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: JournalEntriesRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/linkToken.yml b/.mock/definition/accounting/linkToken.yml new file mode 100644 index 000000000..5a2f0a6f3 --- /dev/null +++ b/.mock/definition/accounting/linkToken.yml @@ -0,0 +1,152 @@ +imports: + root: __package__.yml +types: + EndUserDetailsRequestLanguage: + discriminated: false + docs: >- + The following subset of IETF language tags can be used to configure + localization. + + + * `en` - en + + * `de` - de + union: + - root.LanguageEnum + - string + source: + openapi: openapi/openapi.yml + inline: true +service: + auth: false + base-path: '' + endpoints: + create: + path: /accounting/v1/link-token + method: POST + auth: true + docs: Creates a link token to be used when linking a new end user. + source: + openapi: openapi/openapi.yml + request: + name: EndUserDetailsRequest + body: + properties: + end_user_email_address: + type: string + docs: >- + Your end user's email address. This is purely for identification + purposes - setting this value will not cause any emails to be + sent. + validation: + minLength: 1 + maxLength: 100 + end_user_organization_name: + type: string + docs: Your end user's organization. + validation: + minLength: 1 + maxLength: 100 + end_user_origin_id: + type: string + docs: >- + This unique identifier typically represents the ID for your end + user in your product's database. This value must be distinct + from other Linked Accounts' unique identifiers. + validation: + minLength: 1 + maxLength: 100 + categories: + docs: The integration categories to show in Merge Link. + type: list + integration: + type: optional + docs: >- + The slug of a specific pre-selected integration for this linking + flow token. For examples of slugs, see + https://docs.merge.dev/guides/merge-link/single-integration/. + validation: + minLength: 1 + link_expiry_mins: + type: optional + docs: >- + An integer number of minutes between [30, 720 or 10080 if for a + Magic Link URL] for how long this token is valid. Defaults to + 30. + default: 30 + validation: + min: 30 + max: 10080 + should_create_magic_link_url: + type: optional + docs: >- + Whether to generate a Magic Link URL. Defaults to false. For + more information on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + hide_admin_magic_link: + type: optional + docs: >- + Whether to generate a Magic Link URL on the Admin Needed screen + during the linking flow. Defaults to false. For more information + on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + common_models: + type: optional> + docs: >- + An array of objects to specify the models and fields that will + be disabled for a given Linked Account. Each object uses + model_id, enabled_actions, and disabled_fields to specify the + model, method, and fields that are scoped for a given Linked + Account. + category_common_model_scopes: + type: >- + optional>>> + docs: >- + When creating a Link Token, you can set permissions for Common + Models that will apply to the account that is going to be + linked. Any model or field not specified in link token payload + will default to existing settings. + language: + type: optional + docs: >- + The following subset of IETF language tags can be used to + configure localization. + + + * `en` - en + + * `de` - de + are_syncs_disabled: + type: optional + docs: >- + The boolean that indicates whether initial, periodic, and force + syncs will be disabled. + default: false + integration_specific_config: + type: optional> + docs: >- + A JSON object containing integration-specific configuration + options. + content-type: application/json + response: + docs: '' + type: root.LinkToken + status-code: 200 + examples: + - request: + end_user_email_address: example@gmail.com + end_user_organization_name: Test Organization + end_user_origin_id: '12345' + categories: + - hris + - ats + response: + body: + link_token: necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0 + integration_name: Lever + magic_link_url: https://link.merge.dev/asdfjkl12345jsndfgi2i83n + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/linkedAccounts.yml b/.mock/definition/accounting/linkedAccounts.yml new file mode 100644 index 000000000..aa8806e85 --- /dev/null +++ b/.mock/definition/accounting/linkedAccounts.yml @@ -0,0 +1,150 @@ +types: + LinkedAccountsListRequestCategory: + enum: + - accounting + - ats + - crm + - filestorage + - hris + - mktg + - ticketing + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/linked-accounts + method: GET + auth: true + docs: List linked accounts for your organization. + source: + openapi: openapi/openapi.yml + request: + name: LinkedAccountsListRequest + query-parameters: + category: + type: optional + docs: >- + Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, + `mktg`, `ticketing` + + + * `hris` - hris + + * `ats` - ats + + * `accounting` - accounting + + * `ticketing` - ticketing + + * `crm` - crm + + * `mktg` - mktg + + * `filestorage` - filestorage + cursor: + type: optional + docs: The pagination cursor value. + end_user_email_address: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given email address. + end_user_organization_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given organization name. + end_user_origin_id: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given origin ID. + end_user_origin_ids: + type: optional + docs: >- + Comma-separated list of EndUser origin IDs, making it possible to + specify multiple EndUsers at once. + id: + type: optional + validation: + format: uuid + ids: + type: optional + docs: >- + Comma-separated list of LinkedAccount IDs, making it possible to + specify multiple LinkedAccounts at once. + include_duplicates: + type: optional + docs: >- + If `true`, will include complete production duplicates of the + account specified by the `id` query parameter in the response. + `id` must be for a complete production linked account. + integration_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given integration name. + is_test_account: + type: optional + docs: >- + If included, will only include test linked accounts. If not + included, will only include non-test linked accounts. + page_size: + type: optional + docs: Number of results to return per page. + status: + type: optional + docs: >- + Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, + `RELINK_NEEDED` + response: + docs: '' + type: root.PaginatedAccountDetailsAndActionsList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: e59b1821-f85c-4e28-a6b3-1804156f3563 + category: hris + status: COMPLETE + status_detail: Invalid login credentials + end_user_origin_id: 3ac95cde-6c7f-4eef-afec-be710b42308d + end_user_organization_name: Foo Bar, LLC + end_user_email_address: hradmin@foobar.dev + subdomain: foobar + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + integration: + name: name + categories: + - hris + color: color + slug: slug + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + integration_specific_fields: + integration_specific_field: Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/passthrough.yml b/.mock/definition/accounting/passthrough.yml new file mode 100644 index 000000000..25ab767ce --- /dev/null +++ b/.mock/definition/accounting/passthrough.yml @@ -0,0 +1,40 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /accounting/v1/passthrough + method: POST + auth: true + docs: Pull data from an endpoint not currently supported by Merge. + source: + openapi: openapi/openapi.yml + request: + body: root.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: root.RemoteResponse + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/paymentMethods.yml b/.mock/definition/accounting/paymentMethods.yml new file mode 100644 index 000000000..c53c952c0 --- /dev/null +++ b/.mock/definition/accounting/paymentMethods.yml @@ -0,0 +1,119 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/payment-methods + method: GET + auth: true + docs: Returns a list of `PaymentMethod` objects. + source: + openapi: openapi/openapi.yml + request: + name: PaymentMethodsListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedPaymentMethodList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + method_type: CREDIT_CARD + name: John Smith's Credit Card + is_active: true + remote_updated_at: '2021-09-15T00:00:00Z' + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/payment-methods/{id} + method: GET + auth: true + docs: Returns a `PaymentMethod` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: PaymentMethodsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.PaymentMethod + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + method_type: CREDIT_CARD + name: John Smith's Credit Card + is_active: true + remote_updated_at: '2021-09-15T00:00:00Z' + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/paymentTerms.yml b/.mock/definition/accounting/paymentTerms.yml new file mode 100644 index 000000000..688ed9c3c --- /dev/null +++ b/.mock/definition/accounting/paymentTerms.yml @@ -0,0 +1,133 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/payment-terms + method: GET + auth: true + docs: Returns a list of `PaymentTerm` objects. + source: + openapi: openapi/openapi.yml + request: + name: PaymentTermsListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedPaymentTermList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Net 30 + is_active: true + company: company + days_until_due: 30 + discount_days: 15 + remote_last_modified_at: '2024-10-16T00:00:00Z' + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/payment-terms/{id} + method: GET + auth: true + docs: Returns a `PaymentTerm` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: PaymentTermsRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.PaymentTerm + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Net 30 + is_active: true + company: company + days_until_due: 30 + discount_days: 15 + remote_last_modified_at: '2024-10-16T00:00:00Z' + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/payments.yml b/.mock/definition/accounting/payments.yml new file mode 100644 index 000000000..26c0f1b9b --- /dev/null +++ b/.mock/definition/accounting/payments.yml @@ -0,0 +1,1482 @@ +types: + PaymentsListRequestExpand: + enum: + - account + - value: account,accounting_period + name: AccountAccountingPeriod + - value: account,accounting_period,payment_method + name: AccountAccountingPeriodPaymentMethod + - value: account,company + name: AccountCompany + - value: account,company,accounting_period + name: AccountCompanyAccountingPeriod + - value: account,company,accounting_period,payment_method + name: AccountCompanyAccountingPeriodPaymentMethod + - value: account,company,payment_method + name: AccountCompanyPaymentMethod + - value: account,payment_method + name: AccountPaymentMethod + - accounting_period + - value: accounting_period,payment_method + name: AccountingPeriodPaymentMethod + - applied_to_lines + - value: applied_to_lines,account + name: AppliedToLinesAccount + - value: applied_to_lines,account,accounting_period + name: AppliedToLinesAccountAccountingPeriod + - value: applied_to_lines,account,accounting_period,payment_method + name: AppliedToLinesAccountAccountingPeriodPaymentMethod + - value: applied_to_lines,account,company + name: AppliedToLinesAccountCompany + - value: applied_to_lines,account,company,accounting_period + name: AppliedToLinesAccountCompanyAccountingPeriod + - value: applied_to_lines,account,company,accounting_period,payment_method + name: AppliedToLinesAccountCompanyAccountingPeriodPaymentMethod + - value: applied_to_lines,account,company,payment_method + name: AppliedToLinesAccountCompanyPaymentMethod + - value: applied_to_lines,account,payment_method + name: AppliedToLinesAccountPaymentMethod + - value: applied_to_lines,accounting_period + name: AppliedToLinesAccountingPeriod + - value: applied_to_lines,accounting_period,payment_method + name: AppliedToLinesAccountingPeriodPaymentMethod + - value: applied_to_lines,company + name: AppliedToLinesCompany + - value: applied_to_lines,company,accounting_period + name: AppliedToLinesCompanyAccountingPeriod + - value: applied_to_lines,company,accounting_period,payment_method + name: AppliedToLinesCompanyAccountingPeriodPaymentMethod + - value: applied_to_lines,company,payment_method + name: AppliedToLinesCompanyPaymentMethod + - value: applied_to_lines,contact + name: AppliedToLinesContact + - value: applied_to_lines,contact,account + name: AppliedToLinesContactAccount + - value: applied_to_lines,contact,account,accounting_period + name: AppliedToLinesContactAccountAccountingPeriod + - value: applied_to_lines,contact,account,accounting_period,payment_method + name: AppliedToLinesContactAccountAccountingPeriodPaymentMethod + - value: applied_to_lines,contact,account,company + name: AppliedToLinesContactAccountCompany + - value: applied_to_lines,contact,account,company,accounting_period + name: AppliedToLinesContactAccountCompanyAccountingPeriod + - value: >- + applied_to_lines,contact,account,company,accounting_period,payment_method + name: AppliedToLinesContactAccountCompanyAccountingPeriodPaymentMethod + - value: applied_to_lines,contact,account,company,payment_method + name: AppliedToLinesContactAccountCompanyPaymentMethod + - value: applied_to_lines,contact,account,payment_method + name: AppliedToLinesContactAccountPaymentMethod + - value: applied_to_lines,contact,accounting_period + name: AppliedToLinesContactAccountingPeriod + - value: applied_to_lines,contact,accounting_period,payment_method + name: AppliedToLinesContactAccountingPeriodPaymentMethod + - value: applied_to_lines,contact,company + name: AppliedToLinesContactCompany + - value: applied_to_lines,contact,company,accounting_period + name: AppliedToLinesContactCompanyAccountingPeriod + - value: applied_to_lines,contact,company,accounting_period,payment_method + name: AppliedToLinesContactCompanyAccountingPeriodPaymentMethod + - value: applied_to_lines,contact,company,payment_method + name: AppliedToLinesContactCompanyPaymentMethod + - value: applied_to_lines,contact,payment_method + name: AppliedToLinesContactPaymentMethod + - value: applied_to_lines,payment_method + name: AppliedToLinesPaymentMethod + - company + - value: company,accounting_period + name: CompanyAccountingPeriod + - value: company,accounting_period,payment_method + name: CompanyAccountingPeriodPaymentMethod + - value: company,payment_method + name: CompanyPaymentMethod + - contact + - value: contact,account + name: ContactAccount + - value: contact,account,accounting_period + name: ContactAccountAccountingPeriod + - value: contact,account,accounting_period,payment_method + name: ContactAccountAccountingPeriodPaymentMethod + - value: contact,account,company + name: ContactAccountCompany + - value: contact,account,company,accounting_period + name: ContactAccountCompanyAccountingPeriod + - value: contact,account,company,accounting_period,payment_method + name: ContactAccountCompanyAccountingPeriodPaymentMethod + - value: contact,account,company,payment_method + name: ContactAccountCompanyPaymentMethod + - value: contact,account,payment_method + name: ContactAccountPaymentMethod + - value: contact,accounting_period + name: ContactAccountingPeriod + - value: contact,accounting_period,payment_method + name: ContactAccountingPeriodPaymentMethod + - value: contact,company + name: ContactCompany + - value: contact,company,accounting_period + name: ContactCompanyAccountingPeriod + - value: contact,company,accounting_period,payment_method + name: ContactCompanyAccountingPeriodPaymentMethod + - value: contact,company,payment_method + name: ContactCompanyPaymentMethod + - value: contact,payment_method + name: ContactPaymentMethod + - payment_method + - tracking_categories + - value: tracking_categories,account + name: TrackingCategoriesAccount + - value: tracking_categories,account,accounting_period + name: TrackingCategoriesAccountAccountingPeriod + - value: tracking_categories,account,accounting_period,payment_method + name: TrackingCategoriesAccountAccountingPeriodPaymentMethod + - value: tracking_categories,account,company + name: TrackingCategoriesAccountCompany + - value: tracking_categories,account,company,accounting_period + name: TrackingCategoriesAccountCompanyAccountingPeriod + - value: tracking_categories,account,company,accounting_period,payment_method + name: TrackingCategoriesAccountCompanyAccountingPeriodPaymentMethod + - value: tracking_categories,account,company,payment_method + name: TrackingCategoriesAccountCompanyPaymentMethod + - value: tracking_categories,account,payment_method + name: TrackingCategoriesAccountPaymentMethod + - value: tracking_categories,accounting_period + name: TrackingCategoriesAccountingPeriod + - value: tracking_categories,accounting_period,payment_method + name: TrackingCategoriesAccountingPeriodPaymentMethod + - value: tracking_categories,applied_to_lines + name: TrackingCategoriesAppliedToLines + - value: tracking_categories,applied_to_lines,account + name: TrackingCategoriesAppliedToLinesAccount + - value: tracking_categories,applied_to_lines,account,accounting_period + name: TrackingCategoriesAppliedToLinesAccountAccountingPeriod + - value: >- + tracking_categories,applied_to_lines,account,accounting_period,payment_method + name: TrackingCategoriesAppliedToLinesAccountAccountingPeriodPaymentMethod + - value: tracking_categories,applied_to_lines,account,company + name: TrackingCategoriesAppliedToLinesAccountCompany + - value: tracking_categories,applied_to_lines,account,company,accounting_period + name: TrackingCategoriesAppliedToLinesAccountCompanyAccountingPeriod + - value: >- + tracking_categories,applied_to_lines,account,company,accounting_period,payment_method + name: >- + TrackingCategoriesAppliedToLinesAccountCompanyAccountingPeriodPaymentMethod + - value: tracking_categories,applied_to_lines,account,company,payment_method + name: TrackingCategoriesAppliedToLinesAccountCompanyPaymentMethod + - value: tracking_categories,applied_to_lines,account,payment_method + name: TrackingCategoriesAppliedToLinesAccountPaymentMethod + - value: tracking_categories,applied_to_lines,accounting_period + name: TrackingCategoriesAppliedToLinesAccountingPeriod + - value: tracking_categories,applied_to_lines,accounting_period,payment_method + name: TrackingCategoriesAppliedToLinesAccountingPeriodPaymentMethod + - value: tracking_categories,applied_to_lines,company + name: TrackingCategoriesAppliedToLinesCompany + - value: tracking_categories,applied_to_lines,company,accounting_period + name: TrackingCategoriesAppliedToLinesCompanyAccountingPeriod + - value: >- + tracking_categories,applied_to_lines,company,accounting_period,payment_method + name: TrackingCategoriesAppliedToLinesCompanyAccountingPeriodPaymentMethod + - value: tracking_categories,applied_to_lines,company,payment_method + name: TrackingCategoriesAppliedToLinesCompanyPaymentMethod + - value: tracking_categories,applied_to_lines,contact + name: TrackingCategoriesAppliedToLinesContact + - value: tracking_categories,applied_to_lines,contact,account + name: TrackingCategoriesAppliedToLinesContactAccount + - value: tracking_categories,applied_to_lines,contact,account,accounting_period + name: TrackingCategoriesAppliedToLinesContactAccountAccountingPeriod + - value: >- + tracking_categories,applied_to_lines,contact,account,accounting_period,payment_method + name: >- + TrackingCategoriesAppliedToLinesContactAccountAccountingPeriodPaymentMethod + - value: tracking_categories,applied_to_lines,contact,account,company + name: TrackingCategoriesAppliedToLinesContactAccountCompany + - value: >- + tracking_categories,applied_to_lines,contact,account,company,accounting_period + name: TrackingCategoriesAppliedToLinesContactAccountCompanyAccountingPeriod + - value: >- + tracking_categories,applied_to_lines,contact,account,company,accounting_period,payment_method + name: >- + TrackingCategoriesAppliedToLinesContactAccountCompanyAccountingPeriodPaymentMethod + - value: >- + tracking_categories,applied_to_lines,contact,account,company,payment_method + name: TrackingCategoriesAppliedToLinesContactAccountCompanyPaymentMethod + - value: tracking_categories,applied_to_lines,contact,account,payment_method + name: TrackingCategoriesAppliedToLinesContactAccountPaymentMethod + - value: tracking_categories,applied_to_lines,contact,accounting_period + name: TrackingCategoriesAppliedToLinesContactAccountingPeriod + - value: >- + tracking_categories,applied_to_lines,contact,accounting_period,payment_method + name: TrackingCategoriesAppliedToLinesContactAccountingPeriodPaymentMethod + - value: tracking_categories,applied_to_lines,contact,company + name: TrackingCategoriesAppliedToLinesContactCompany + - value: tracking_categories,applied_to_lines,contact,company,accounting_period + name: TrackingCategoriesAppliedToLinesContactCompanyAccountingPeriod + - value: >- + tracking_categories,applied_to_lines,contact,company,accounting_period,payment_method + name: >- + TrackingCategoriesAppliedToLinesContactCompanyAccountingPeriodPaymentMethod + - value: tracking_categories,applied_to_lines,contact,company,payment_method + name: TrackingCategoriesAppliedToLinesContactCompanyPaymentMethod + - value: tracking_categories,applied_to_lines,contact,payment_method + name: TrackingCategoriesAppliedToLinesContactPaymentMethod + - value: tracking_categories,applied_to_lines,payment_method + name: TrackingCategoriesAppliedToLinesPaymentMethod + - value: tracking_categories,company + name: TrackingCategoriesCompany + - value: tracking_categories,company,accounting_period + name: TrackingCategoriesCompanyAccountingPeriod + - value: tracking_categories,company,accounting_period,payment_method + name: TrackingCategoriesCompanyAccountingPeriodPaymentMethod + - value: tracking_categories,company,payment_method + name: TrackingCategoriesCompanyPaymentMethod + - value: tracking_categories,contact + name: TrackingCategoriesContact + - value: tracking_categories,contact,account + name: TrackingCategoriesContactAccount + - value: tracking_categories,contact,account,accounting_period + name: TrackingCategoriesContactAccountAccountingPeriod + - value: tracking_categories,contact,account,accounting_period,payment_method + name: TrackingCategoriesContactAccountAccountingPeriodPaymentMethod + - value: tracking_categories,contact,account,company + name: TrackingCategoriesContactAccountCompany + - value: tracking_categories,contact,account,company,accounting_period + name: TrackingCategoriesContactAccountCompanyAccountingPeriod + - value: >- + tracking_categories,contact,account,company,accounting_period,payment_method + name: TrackingCategoriesContactAccountCompanyAccountingPeriodPaymentMethod + - value: tracking_categories,contact,account,company,payment_method + name: TrackingCategoriesContactAccountCompanyPaymentMethod + - value: tracking_categories,contact,account,payment_method + name: TrackingCategoriesContactAccountPaymentMethod + - value: tracking_categories,contact,accounting_period + name: TrackingCategoriesContactAccountingPeriod + - value: tracking_categories,contact,accounting_period,payment_method + name: TrackingCategoriesContactAccountingPeriodPaymentMethod + - value: tracking_categories,contact,company + name: TrackingCategoriesContactCompany + - value: tracking_categories,contact,company,accounting_period + name: TrackingCategoriesContactCompanyAccountingPeriod + - value: tracking_categories,contact,company,accounting_period,payment_method + name: TrackingCategoriesContactCompanyAccountingPeriodPaymentMethod + - value: tracking_categories,contact,company,payment_method + name: TrackingCategoriesContactCompanyPaymentMethod + - value: tracking_categories,contact,payment_method + name: TrackingCategoriesContactPaymentMethod + - value: tracking_categories,payment_method + name: TrackingCategoriesPaymentMethod + source: + openapi: openapi/openapi.yml + PaymentsRetrieveRequestExpand: + enum: + - account + - value: account,accounting_period + name: AccountAccountingPeriod + - value: account,accounting_period,payment_method + name: AccountAccountingPeriodPaymentMethod + - value: account,company + name: AccountCompany + - value: account,company,accounting_period + name: AccountCompanyAccountingPeriod + - value: account,company,accounting_period,payment_method + name: AccountCompanyAccountingPeriodPaymentMethod + - value: account,company,payment_method + name: AccountCompanyPaymentMethod + - value: account,payment_method + name: AccountPaymentMethod + - accounting_period + - value: accounting_period,payment_method + name: AccountingPeriodPaymentMethod + - applied_to_lines + - value: applied_to_lines,account + name: AppliedToLinesAccount + - value: applied_to_lines,account,accounting_period + name: AppliedToLinesAccountAccountingPeriod + - value: applied_to_lines,account,accounting_period,payment_method + name: AppliedToLinesAccountAccountingPeriodPaymentMethod + - value: applied_to_lines,account,company + name: AppliedToLinesAccountCompany + - value: applied_to_lines,account,company,accounting_period + name: AppliedToLinesAccountCompanyAccountingPeriod + - value: applied_to_lines,account,company,accounting_period,payment_method + name: AppliedToLinesAccountCompanyAccountingPeriodPaymentMethod + - value: applied_to_lines,account,company,payment_method + name: AppliedToLinesAccountCompanyPaymentMethod + - value: applied_to_lines,account,payment_method + name: AppliedToLinesAccountPaymentMethod + - value: applied_to_lines,accounting_period + name: AppliedToLinesAccountingPeriod + - value: applied_to_lines,accounting_period,payment_method + name: AppliedToLinesAccountingPeriodPaymentMethod + - value: applied_to_lines,company + name: AppliedToLinesCompany + - value: applied_to_lines,company,accounting_period + name: AppliedToLinesCompanyAccountingPeriod + - value: applied_to_lines,company,accounting_period,payment_method + name: AppliedToLinesCompanyAccountingPeriodPaymentMethod + - value: applied_to_lines,company,payment_method + name: AppliedToLinesCompanyPaymentMethod + - value: applied_to_lines,contact + name: AppliedToLinesContact + - value: applied_to_lines,contact,account + name: AppliedToLinesContactAccount + - value: applied_to_lines,contact,account,accounting_period + name: AppliedToLinesContactAccountAccountingPeriod + - value: applied_to_lines,contact,account,accounting_period,payment_method + name: AppliedToLinesContactAccountAccountingPeriodPaymentMethod + - value: applied_to_lines,contact,account,company + name: AppliedToLinesContactAccountCompany + - value: applied_to_lines,contact,account,company,accounting_period + name: AppliedToLinesContactAccountCompanyAccountingPeriod + - value: >- + applied_to_lines,contact,account,company,accounting_period,payment_method + name: AppliedToLinesContactAccountCompanyAccountingPeriodPaymentMethod + - value: applied_to_lines,contact,account,company,payment_method + name: AppliedToLinesContactAccountCompanyPaymentMethod + - value: applied_to_lines,contact,account,payment_method + name: AppliedToLinesContactAccountPaymentMethod + - value: applied_to_lines,contact,accounting_period + name: AppliedToLinesContactAccountingPeriod + - value: applied_to_lines,contact,accounting_period,payment_method + name: AppliedToLinesContactAccountingPeriodPaymentMethod + - value: applied_to_lines,contact,company + name: AppliedToLinesContactCompany + - value: applied_to_lines,contact,company,accounting_period + name: AppliedToLinesContactCompanyAccountingPeriod + - value: applied_to_lines,contact,company,accounting_period,payment_method + name: AppliedToLinesContactCompanyAccountingPeriodPaymentMethod + - value: applied_to_lines,contact,company,payment_method + name: AppliedToLinesContactCompanyPaymentMethod + - value: applied_to_lines,contact,payment_method + name: AppliedToLinesContactPaymentMethod + - value: applied_to_lines,payment_method + name: AppliedToLinesPaymentMethod + - company + - value: company,accounting_period + name: CompanyAccountingPeriod + - value: company,accounting_period,payment_method + name: CompanyAccountingPeriodPaymentMethod + - value: company,payment_method + name: CompanyPaymentMethod + - contact + - value: contact,account + name: ContactAccount + - value: contact,account,accounting_period + name: ContactAccountAccountingPeriod + - value: contact,account,accounting_period,payment_method + name: ContactAccountAccountingPeriodPaymentMethod + - value: contact,account,company + name: ContactAccountCompany + - value: contact,account,company,accounting_period + name: ContactAccountCompanyAccountingPeriod + - value: contact,account,company,accounting_period,payment_method + name: ContactAccountCompanyAccountingPeriodPaymentMethod + - value: contact,account,company,payment_method + name: ContactAccountCompanyPaymentMethod + - value: contact,account,payment_method + name: ContactAccountPaymentMethod + - value: contact,accounting_period + name: ContactAccountingPeriod + - value: contact,accounting_period,payment_method + name: ContactAccountingPeriodPaymentMethod + - value: contact,company + name: ContactCompany + - value: contact,company,accounting_period + name: ContactCompanyAccountingPeriod + - value: contact,company,accounting_period,payment_method + name: ContactCompanyAccountingPeriodPaymentMethod + - value: contact,company,payment_method + name: ContactCompanyPaymentMethod + - value: contact,payment_method + name: ContactPaymentMethod + - payment_method + - tracking_categories + - value: tracking_categories,account + name: TrackingCategoriesAccount + - value: tracking_categories,account,accounting_period + name: TrackingCategoriesAccountAccountingPeriod + - value: tracking_categories,account,accounting_period,payment_method + name: TrackingCategoriesAccountAccountingPeriodPaymentMethod + - value: tracking_categories,account,company + name: TrackingCategoriesAccountCompany + - value: tracking_categories,account,company,accounting_period + name: TrackingCategoriesAccountCompanyAccountingPeriod + - value: tracking_categories,account,company,accounting_period,payment_method + name: TrackingCategoriesAccountCompanyAccountingPeriodPaymentMethod + - value: tracking_categories,account,company,payment_method + name: TrackingCategoriesAccountCompanyPaymentMethod + - value: tracking_categories,account,payment_method + name: TrackingCategoriesAccountPaymentMethod + - value: tracking_categories,accounting_period + name: TrackingCategoriesAccountingPeriod + - value: tracking_categories,accounting_period,payment_method + name: TrackingCategoriesAccountingPeriodPaymentMethod + - value: tracking_categories,applied_to_lines + name: TrackingCategoriesAppliedToLines + - value: tracking_categories,applied_to_lines,account + name: TrackingCategoriesAppliedToLinesAccount + - value: tracking_categories,applied_to_lines,account,accounting_period + name: TrackingCategoriesAppliedToLinesAccountAccountingPeriod + - value: >- + tracking_categories,applied_to_lines,account,accounting_period,payment_method + name: TrackingCategoriesAppliedToLinesAccountAccountingPeriodPaymentMethod + - value: tracking_categories,applied_to_lines,account,company + name: TrackingCategoriesAppliedToLinesAccountCompany + - value: tracking_categories,applied_to_lines,account,company,accounting_period + name: TrackingCategoriesAppliedToLinesAccountCompanyAccountingPeriod + - value: >- + tracking_categories,applied_to_lines,account,company,accounting_period,payment_method + name: >- + TrackingCategoriesAppliedToLinesAccountCompanyAccountingPeriodPaymentMethod + - value: tracking_categories,applied_to_lines,account,company,payment_method + name: TrackingCategoriesAppliedToLinesAccountCompanyPaymentMethod + - value: tracking_categories,applied_to_lines,account,payment_method + name: TrackingCategoriesAppliedToLinesAccountPaymentMethod + - value: tracking_categories,applied_to_lines,accounting_period + name: TrackingCategoriesAppliedToLinesAccountingPeriod + - value: tracking_categories,applied_to_lines,accounting_period,payment_method + name: TrackingCategoriesAppliedToLinesAccountingPeriodPaymentMethod + - value: tracking_categories,applied_to_lines,company + name: TrackingCategoriesAppliedToLinesCompany + - value: tracking_categories,applied_to_lines,company,accounting_period + name: TrackingCategoriesAppliedToLinesCompanyAccountingPeriod + - value: >- + tracking_categories,applied_to_lines,company,accounting_period,payment_method + name: TrackingCategoriesAppliedToLinesCompanyAccountingPeriodPaymentMethod + - value: tracking_categories,applied_to_lines,company,payment_method + name: TrackingCategoriesAppliedToLinesCompanyPaymentMethod + - value: tracking_categories,applied_to_lines,contact + name: TrackingCategoriesAppliedToLinesContact + - value: tracking_categories,applied_to_lines,contact,account + name: TrackingCategoriesAppliedToLinesContactAccount + - value: tracking_categories,applied_to_lines,contact,account,accounting_period + name: TrackingCategoriesAppliedToLinesContactAccountAccountingPeriod + - value: >- + tracking_categories,applied_to_lines,contact,account,accounting_period,payment_method + name: >- + TrackingCategoriesAppliedToLinesContactAccountAccountingPeriodPaymentMethod + - value: tracking_categories,applied_to_lines,contact,account,company + name: TrackingCategoriesAppliedToLinesContactAccountCompany + - value: >- + tracking_categories,applied_to_lines,contact,account,company,accounting_period + name: TrackingCategoriesAppliedToLinesContactAccountCompanyAccountingPeriod + - value: >- + tracking_categories,applied_to_lines,contact,account,company,accounting_period,payment_method + name: >- + TrackingCategoriesAppliedToLinesContactAccountCompanyAccountingPeriodPaymentMethod + - value: >- + tracking_categories,applied_to_lines,contact,account,company,payment_method + name: TrackingCategoriesAppliedToLinesContactAccountCompanyPaymentMethod + - value: tracking_categories,applied_to_lines,contact,account,payment_method + name: TrackingCategoriesAppliedToLinesContactAccountPaymentMethod + - value: tracking_categories,applied_to_lines,contact,accounting_period + name: TrackingCategoriesAppliedToLinesContactAccountingPeriod + - value: >- + tracking_categories,applied_to_lines,contact,accounting_period,payment_method + name: TrackingCategoriesAppliedToLinesContactAccountingPeriodPaymentMethod + - value: tracking_categories,applied_to_lines,contact,company + name: TrackingCategoriesAppliedToLinesContactCompany + - value: tracking_categories,applied_to_lines,contact,company,accounting_period + name: TrackingCategoriesAppliedToLinesContactCompanyAccountingPeriod + - value: >- + tracking_categories,applied_to_lines,contact,company,accounting_period,payment_method + name: >- + TrackingCategoriesAppliedToLinesContactCompanyAccountingPeriodPaymentMethod + - value: tracking_categories,applied_to_lines,contact,company,payment_method + name: TrackingCategoriesAppliedToLinesContactCompanyPaymentMethod + - value: tracking_categories,applied_to_lines,contact,payment_method + name: TrackingCategoriesAppliedToLinesContactPaymentMethod + - value: tracking_categories,applied_to_lines,payment_method + name: TrackingCategoriesAppliedToLinesPaymentMethod + - value: tracking_categories,company + name: TrackingCategoriesCompany + - value: tracking_categories,company,accounting_period + name: TrackingCategoriesCompanyAccountingPeriod + - value: tracking_categories,company,accounting_period,payment_method + name: TrackingCategoriesCompanyAccountingPeriodPaymentMethod + - value: tracking_categories,company,payment_method + name: TrackingCategoriesCompanyPaymentMethod + - value: tracking_categories,contact + name: TrackingCategoriesContact + - value: tracking_categories,contact,account + name: TrackingCategoriesContactAccount + - value: tracking_categories,contact,account,accounting_period + name: TrackingCategoriesContactAccountAccountingPeriod + - value: tracking_categories,contact,account,accounting_period,payment_method + name: TrackingCategoriesContactAccountAccountingPeriodPaymentMethod + - value: tracking_categories,contact,account,company + name: TrackingCategoriesContactAccountCompany + - value: tracking_categories,contact,account,company,accounting_period + name: TrackingCategoriesContactAccountCompanyAccountingPeriod + - value: >- + tracking_categories,contact,account,company,accounting_period,payment_method + name: TrackingCategoriesContactAccountCompanyAccountingPeriodPaymentMethod + - value: tracking_categories,contact,account,company,payment_method + name: TrackingCategoriesContactAccountCompanyPaymentMethod + - value: tracking_categories,contact,account,payment_method + name: TrackingCategoriesContactAccountPaymentMethod + - value: tracking_categories,contact,accounting_period + name: TrackingCategoriesContactAccountingPeriod + - value: tracking_categories,contact,accounting_period,payment_method + name: TrackingCategoriesContactAccountingPeriodPaymentMethod + - value: tracking_categories,contact,company + name: TrackingCategoriesContactCompany + - value: tracking_categories,contact,company,accounting_period + name: TrackingCategoriesContactCompanyAccountingPeriod + - value: tracking_categories,contact,company,accounting_period,payment_method + name: TrackingCategoriesContactCompanyAccountingPeriodPaymentMethod + - value: tracking_categories,contact,company,payment_method + name: TrackingCategoriesContactCompanyPaymentMethod + - value: tracking_categories,contact,payment_method + name: TrackingCategoriesContactPaymentMethod + - value: tracking_categories,payment_method + name: TrackingCategoriesPaymentMethod + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/payments + method: GET + auth: true + docs: Returns a list of `Payment` objects. + source: + openapi: openapi/openapi.yml + request: + name: PaymentsListRequest + query-parameters: + account_id: + type: optional + docs: If provided, will only return payments for this account. + company_id: + type: optional + docs: If provided, will only return payments for this company. + contact_id: + type: optional + docs: If provided, will only return payments for this contact. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + transaction_date_after: + type: optional + docs: If provided, will only return objects created after this datetime. + transaction_date_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + response: + docs: '' + type: root.PaginatedPaymentList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + contact: contact + account: account + payment_method: payment_method + currency: XUA + exchange_rate: '2.9' + company: company + total_amount: 50 + type: ACCOUNTS_PAYABLE + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + accounting_period: accounting_period + applied_to_lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '234' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + applied_amount: applied_amount + applied_date: '2020-03-31T00:00:00Z' + related_object_id: a47e11b6-c73b-4a0c-be31-130fc48177fa + related_object_type: INVOICE + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '235' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + applied_amount: applied_amount + applied_date: '2020-03-31T00:00:00Z' + related_object_id: 9b96a886-29a5-452b-8733-2a1e03497cf4 + related_object_type: CREDIT_NOTE + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /accounting/v1/payments + method: POST + auth: true + docs: Creates a `Payment` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: PaymentEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.PaymentRequest + content-type: application/json + response: + docs: '' + type: root.PaymentResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + contact: contact + account: account + payment_method: payment_method + currency: XUA + exchange_rate: '2.9' + company: company + total_amount: 50 + type: ACCOUNTS_PAYABLE + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + accounting_period: accounting_period + applied_to_lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '234' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + applied_amount: applied_amount + applied_date: '2020-03-31T00:00:00Z' + related_object_id: a47e11b6-c73b-4a0c-be31-130fc48177fa + related_object_type: INVOICE + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '235' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + applied_amount: applied_amount + applied_date: '2020-03-31T00:00:00Z' + related_object_id: 9b96a886-29a5-452b-8733-2a1e03497cf4 + related_object_type: CREDIT_NOTE + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/payments/{id} + method: GET + auth: true + docs: Returns a `Payment` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: PaymentsRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Payment + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + contact: contact + account: account + payment_method: payment_method + currency: XUA + exchange_rate: '2.9' + company: company + total_amount: 50 + type: ACCOUNTS_PAYABLE + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + accounting_period: accounting_period + applied_to_lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '234' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + applied_amount: applied_amount + applied_date: '2020-03-31T00:00:00Z' + related_object_id: a47e11b6-c73b-4a0c-be31-130fc48177fa + related_object_type: INVOICE + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '235' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + applied_amount: applied_amount + applied_date: '2020-03-31T00:00:00Z' + related_object_id: 9b96a886-29a5-452b-8733-2a1e03497cf4 + related_object_type: CREDIT_NOTE + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + partialUpdate: + path: /accounting/v1/payments/{id} + method: PATCH + auth: true + docs: Updates a `Payment` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: PatchedPaymentEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.PatchedPaymentRequest + content-type: application/json + response: + docs: '' + type: root.PaymentResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + response: + body: + model: + id: b26fd49a-cbae-470a-a8f8-bcbc119e0390 + remote_id: '987300' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_date: '2020-03-31T00:00:00Z' + contact: contact + account: account + payment_method: payment_method + currency: XUA + exchange_rate: '2.9' + company: company + total_amount: 50 + type: ACCOUNTS_PAYABLE + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + accounting_period: accounting_period + applied_to_lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '234' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + applied_amount: applied_amount + applied_date: '2020-03-31T00:00:00Z' + related_object_id: a47e11b6-c73b-4a0c-be31-130fc48177fa + related_object_type: INVOICE + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '235' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + applied_amount: applied_amount + applied_date: '2020-03-31T00:00:00Z' + related_object_id: 9b96a886-29a5-452b-8733-2a1e03497cf4 + related_object_type: CREDIT_NOTE + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + lineItemsRemoteFieldClassesList: + path: /accounting/v1/payments/line-items/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: PaymentsLineItemsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + metaPatchRetrieve: + path: /accounting/v1/payments/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `Payment` PATCHs. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /accounting/v1/payments/meta/post + method: GET + auth: true + docs: Returns metadata for `Payment` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /accounting/v1/payments/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: PaymentsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/phoneNumbers.yml b/.mock/definition/accounting/phoneNumbers.yml new file mode 100644 index 000000000..b67323851 --- /dev/null +++ b/.mock/definition/accounting/phoneNumbers.yml @@ -0,0 +1,44 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /accounting/v1/phone-numbers/{id} + method: GET + auth: true + docs: Returns an `AccountingPhoneNumber` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: PhoneNumbersRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.AccountingPhoneNumber + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + number: '+3198675309' + type: Mobile + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/projects.yml b/.mock/definition/accounting/projects.yml new file mode 100644 index 000000000..097c0ff20 --- /dev/null +++ b/.mock/definition/accounting/projects.yml @@ -0,0 +1,146 @@ +types: + ProjectsListRequestExpand: + enum: + - company + - value: company,contact + name: CompanyContact + - contact + source: + openapi: openapi/openapi.yml + ProjectsRetrieveRequestExpand: + enum: + - company + - value: company,contact + name: CompanyContact + - contact + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/projects + method: GET + auth: true + docs: Returns a list of `Project` objects. + source: + openapi: openapi/openapi.yml + request: + name: ProjectsListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedProjectList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Permissions Mapping + is_active: true + company: company + contact: contact + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/projects/{id} + method: GET + auth: true + docs: Returns a `Project` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: ProjectsRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Project + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Permissions Mapping + is_active: true + company: company + contact: contact + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/purchaseOrders.yml b/.mock/definition/accounting/purchaseOrders.yml new file mode 100644 index 000000000..e0157639d --- /dev/null +++ b/.mock/definition/accounting/purchaseOrders.yml @@ -0,0 +1,1289 @@ +types: + PurchaseOrdersListRequestExpand: + enum: + - accounting_period + - value: accounting_period,payment_term + name: AccountingPeriodPaymentTerm + - company + - value: company,accounting_period + name: CompanyAccountingPeriod + - value: company,accounting_period,payment_term + name: CompanyAccountingPeriodPaymentTerm + - value: company,payment_term + name: CompanyPaymentTerm + - delivery_address + - value: delivery_address,accounting_period + name: DeliveryAddressAccountingPeriod + - value: delivery_address,accounting_period,payment_term + name: DeliveryAddressAccountingPeriodPaymentTerm + - value: delivery_address,company + name: DeliveryAddressCompany + - value: delivery_address,company,accounting_period + name: DeliveryAddressCompanyAccountingPeriod + - value: delivery_address,company,accounting_period,payment_term + name: DeliveryAddressCompanyAccountingPeriodPaymentTerm + - value: delivery_address,company,payment_term + name: DeliveryAddressCompanyPaymentTerm + - value: delivery_address,payment_term + name: DeliveryAddressPaymentTerm + - value: delivery_address,vendor + name: DeliveryAddressVendor + - value: delivery_address,vendor,accounting_period + name: DeliveryAddressVendorAccountingPeriod + - value: delivery_address,vendor,accounting_period,payment_term + name: DeliveryAddressVendorAccountingPeriodPaymentTerm + - value: delivery_address,vendor,company + name: DeliveryAddressVendorCompany + - value: delivery_address,vendor,company,accounting_period + name: DeliveryAddressVendorCompanyAccountingPeriod + - value: delivery_address,vendor,company,accounting_period,payment_term + name: DeliveryAddressVendorCompanyAccountingPeriodPaymentTerm + - value: delivery_address,vendor,company,payment_term + name: DeliveryAddressVendorCompanyPaymentTerm + - value: delivery_address,vendor,payment_term + name: DeliveryAddressVendorPaymentTerm + - line_items + - value: line_items,accounting_period + name: LineItemsAccountingPeriod + - value: line_items,accounting_period,payment_term + name: LineItemsAccountingPeriodPaymentTerm + - value: line_items,company + name: LineItemsCompany + - value: line_items,company,accounting_period + name: LineItemsCompanyAccountingPeriod + - value: line_items,company,accounting_period,payment_term + name: LineItemsCompanyAccountingPeriodPaymentTerm + - value: line_items,company,payment_term + name: LineItemsCompanyPaymentTerm + - value: line_items,delivery_address + name: LineItemsDeliveryAddress + - value: line_items,delivery_address,accounting_period + name: LineItemsDeliveryAddressAccountingPeriod + - value: line_items,delivery_address,accounting_period,payment_term + name: LineItemsDeliveryAddressAccountingPeriodPaymentTerm + - value: line_items,delivery_address,company + name: LineItemsDeliveryAddressCompany + - value: line_items,delivery_address,company,accounting_period + name: LineItemsDeliveryAddressCompanyAccountingPeriod + - value: line_items,delivery_address,company,accounting_period,payment_term + name: LineItemsDeliveryAddressCompanyAccountingPeriodPaymentTerm + - value: line_items,delivery_address,company,payment_term + name: LineItemsDeliveryAddressCompanyPaymentTerm + - value: line_items,delivery_address,payment_term + name: LineItemsDeliveryAddressPaymentTerm + - value: line_items,delivery_address,vendor + name: LineItemsDeliveryAddressVendor + - value: line_items,delivery_address,vendor,accounting_period + name: LineItemsDeliveryAddressVendorAccountingPeriod + - value: line_items,delivery_address,vendor,accounting_period,payment_term + name: LineItemsDeliveryAddressVendorAccountingPeriodPaymentTerm + - value: line_items,delivery_address,vendor,company + name: LineItemsDeliveryAddressVendorCompany + - value: line_items,delivery_address,vendor,company,accounting_period + name: LineItemsDeliveryAddressVendorCompanyAccountingPeriod + - value: >- + line_items,delivery_address,vendor,company,accounting_period,payment_term + name: LineItemsDeliveryAddressVendorCompanyAccountingPeriodPaymentTerm + - value: line_items,delivery_address,vendor,company,payment_term + name: LineItemsDeliveryAddressVendorCompanyPaymentTerm + - value: line_items,delivery_address,vendor,payment_term + name: LineItemsDeliveryAddressVendorPaymentTerm + - value: line_items,payment_term + name: LineItemsPaymentTerm + - value: line_items,tracking_categories + name: LineItemsTrackingCategories + - value: line_items,tracking_categories,accounting_period + name: LineItemsTrackingCategoriesAccountingPeriod + - value: line_items,tracking_categories,accounting_period,payment_term + name: LineItemsTrackingCategoriesAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,company + name: LineItemsTrackingCategoriesCompany + - value: line_items,tracking_categories,company,accounting_period + name: LineItemsTrackingCategoriesCompanyAccountingPeriod + - value: line_items,tracking_categories,company,accounting_period,payment_term + name: LineItemsTrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,company,payment_term + name: LineItemsTrackingCategoriesCompanyPaymentTerm + - value: line_items,tracking_categories,delivery_address + name: LineItemsTrackingCategoriesDeliveryAddress + - value: line_items,tracking_categories,delivery_address,accounting_period + name: LineItemsTrackingCategoriesDeliveryAddressAccountingPeriod + - value: >- + line_items,tracking_categories,delivery_address,accounting_period,payment_term + name: LineItemsTrackingCategoriesDeliveryAddressAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,delivery_address,company + name: LineItemsTrackingCategoriesDeliveryAddressCompany + - value: >- + line_items,tracking_categories,delivery_address,company,accounting_period + name: LineItemsTrackingCategoriesDeliveryAddressCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,delivery_address,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesDeliveryAddressCompanyAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,delivery_address,company,payment_term + name: LineItemsTrackingCategoriesDeliveryAddressCompanyPaymentTerm + - value: line_items,tracking_categories,delivery_address,payment_term + name: LineItemsTrackingCategoriesDeliveryAddressPaymentTerm + - value: line_items,tracking_categories,delivery_address,vendor + name: LineItemsTrackingCategoriesDeliveryAddressVendor + - value: >- + line_items,tracking_categories,delivery_address,vendor,accounting_period + name: LineItemsTrackingCategoriesDeliveryAddressVendorAccountingPeriod + - value: >- + line_items,tracking_categories,delivery_address,vendor,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesDeliveryAddressVendorAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,delivery_address,vendor,company + name: LineItemsTrackingCategoriesDeliveryAddressVendorCompany + - value: >- + line_items,tracking_categories,delivery_address,vendor,company,accounting_period + name: >- + LineItemsTrackingCategoriesDeliveryAddressVendorCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,delivery_address,vendor,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesDeliveryAddressVendorCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,delivery_address,vendor,company,payment_term + name: LineItemsTrackingCategoriesDeliveryAddressVendorCompanyPaymentTerm + - value: line_items,tracking_categories,delivery_address,vendor,payment_term + name: LineItemsTrackingCategoriesDeliveryAddressVendorPaymentTerm + - value: line_items,tracking_categories,payment_term + name: LineItemsTrackingCategoriesPaymentTerm + - value: line_items,tracking_categories,vendor + name: LineItemsTrackingCategoriesVendor + - value: line_items,tracking_categories,vendor,accounting_period + name: LineItemsTrackingCategoriesVendorAccountingPeriod + - value: line_items,tracking_categories,vendor,accounting_period,payment_term + name: LineItemsTrackingCategoriesVendorAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,vendor,company + name: LineItemsTrackingCategoriesVendorCompany + - value: line_items,tracking_categories,vendor,company,accounting_period + name: LineItemsTrackingCategoriesVendorCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,vendor,company,accounting_period,payment_term + name: LineItemsTrackingCategoriesVendorCompanyAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,vendor,company,payment_term + name: LineItemsTrackingCategoriesVendorCompanyPaymentTerm + - value: line_items,tracking_categories,vendor,payment_term + name: LineItemsTrackingCategoriesVendorPaymentTerm + - value: line_items,vendor + name: LineItemsVendor + - value: line_items,vendor,accounting_period + name: LineItemsVendorAccountingPeriod + - value: line_items,vendor,accounting_period,payment_term + name: LineItemsVendorAccountingPeriodPaymentTerm + - value: line_items,vendor,company + name: LineItemsVendorCompany + - value: line_items,vendor,company,accounting_period + name: LineItemsVendorCompanyAccountingPeriod + - value: line_items,vendor,company,accounting_period,payment_term + name: LineItemsVendorCompanyAccountingPeriodPaymentTerm + - value: line_items,vendor,company,payment_term + name: LineItemsVendorCompanyPaymentTerm + - value: line_items,vendor,payment_term + name: LineItemsVendorPaymentTerm + - payment_term + - tracking_categories + - value: tracking_categories,accounting_period + name: TrackingCategoriesAccountingPeriod + - value: tracking_categories,accounting_period,payment_term + name: TrackingCategoriesAccountingPeriodPaymentTerm + - value: tracking_categories,company + name: TrackingCategoriesCompany + - value: tracking_categories,company,accounting_period + name: TrackingCategoriesCompanyAccountingPeriod + - value: tracking_categories,company,accounting_period,payment_term + name: TrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,company,payment_term + name: TrackingCategoriesCompanyPaymentTerm + - value: tracking_categories,delivery_address + name: TrackingCategoriesDeliveryAddress + - value: tracking_categories,delivery_address,accounting_period + name: TrackingCategoriesDeliveryAddressAccountingPeriod + - value: tracking_categories,delivery_address,accounting_period,payment_term + name: TrackingCategoriesDeliveryAddressAccountingPeriodPaymentTerm + - value: tracking_categories,delivery_address,company + name: TrackingCategoriesDeliveryAddressCompany + - value: tracking_categories,delivery_address,company,accounting_period + name: TrackingCategoriesDeliveryAddressCompanyAccountingPeriod + - value: >- + tracking_categories,delivery_address,company,accounting_period,payment_term + name: TrackingCategoriesDeliveryAddressCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,delivery_address,company,payment_term + name: TrackingCategoriesDeliveryAddressCompanyPaymentTerm + - value: tracking_categories,delivery_address,payment_term + name: TrackingCategoriesDeliveryAddressPaymentTerm + - value: tracking_categories,delivery_address,vendor + name: TrackingCategoriesDeliveryAddressVendor + - value: tracking_categories,delivery_address,vendor,accounting_period + name: TrackingCategoriesDeliveryAddressVendorAccountingPeriod + - value: >- + tracking_categories,delivery_address,vendor,accounting_period,payment_term + name: TrackingCategoriesDeliveryAddressVendorAccountingPeriodPaymentTerm + - value: tracking_categories,delivery_address,vendor,company + name: TrackingCategoriesDeliveryAddressVendorCompany + - value: tracking_categories,delivery_address,vendor,company,accounting_period + name: TrackingCategoriesDeliveryAddressVendorCompanyAccountingPeriod + - value: >- + tracking_categories,delivery_address,vendor,company,accounting_period,payment_term + name: >- + TrackingCategoriesDeliveryAddressVendorCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,delivery_address,vendor,company,payment_term + name: TrackingCategoriesDeliveryAddressVendorCompanyPaymentTerm + - value: tracking_categories,delivery_address,vendor,payment_term + name: TrackingCategoriesDeliveryAddressVendorPaymentTerm + - value: tracking_categories,payment_term + name: TrackingCategoriesPaymentTerm + - value: tracking_categories,vendor + name: TrackingCategoriesVendor + - value: tracking_categories,vendor,accounting_period + name: TrackingCategoriesVendorAccountingPeriod + - value: tracking_categories,vendor,accounting_period,payment_term + name: TrackingCategoriesVendorAccountingPeriodPaymentTerm + - value: tracking_categories,vendor,company + name: TrackingCategoriesVendorCompany + - value: tracking_categories,vendor,company,accounting_period + name: TrackingCategoriesVendorCompanyAccountingPeriod + - value: tracking_categories,vendor,company,accounting_period,payment_term + name: TrackingCategoriesVendorCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,vendor,company,payment_term + name: TrackingCategoriesVendorCompanyPaymentTerm + - value: tracking_categories,vendor,payment_term + name: TrackingCategoriesVendorPaymentTerm + - vendor + - value: vendor,accounting_period + name: VendorAccountingPeriod + - value: vendor,accounting_period,payment_term + name: VendorAccountingPeriodPaymentTerm + - value: vendor,company + name: VendorCompany + - value: vendor,company,accounting_period + name: VendorCompanyAccountingPeriod + - value: vendor,company,accounting_period,payment_term + name: VendorCompanyAccountingPeriodPaymentTerm + - value: vendor,company,payment_term + name: VendorCompanyPaymentTerm + - value: vendor,payment_term + name: VendorPaymentTerm + source: + openapi: openapi/openapi.yml + PurchaseOrdersRetrieveRequestExpand: + enum: + - accounting_period + - value: accounting_period,payment_term + name: AccountingPeriodPaymentTerm + - company + - value: company,accounting_period + name: CompanyAccountingPeriod + - value: company,accounting_period,payment_term + name: CompanyAccountingPeriodPaymentTerm + - value: company,payment_term + name: CompanyPaymentTerm + - delivery_address + - value: delivery_address,accounting_period + name: DeliveryAddressAccountingPeriod + - value: delivery_address,accounting_period,payment_term + name: DeliveryAddressAccountingPeriodPaymentTerm + - value: delivery_address,company + name: DeliveryAddressCompany + - value: delivery_address,company,accounting_period + name: DeliveryAddressCompanyAccountingPeriod + - value: delivery_address,company,accounting_period,payment_term + name: DeliveryAddressCompanyAccountingPeriodPaymentTerm + - value: delivery_address,company,payment_term + name: DeliveryAddressCompanyPaymentTerm + - value: delivery_address,payment_term + name: DeliveryAddressPaymentTerm + - value: delivery_address,vendor + name: DeliveryAddressVendor + - value: delivery_address,vendor,accounting_period + name: DeliveryAddressVendorAccountingPeriod + - value: delivery_address,vendor,accounting_period,payment_term + name: DeliveryAddressVendorAccountingPeriodPaymentTerm + - value: delivery_address,vendor,company + name: DeliveryAddressVendorCompany + - value: delivery_address,vendor,company,accounting_period + name: DeliveryAddressVendorCompanyAccountingPeriod + - value: delivery_address,vendor,company,accounting_period,payment_term + name: DeliveryAddressVendorCompanyAccountingPeriodPaymentTerm + - value: delivery_address,vendor,company,payment_term + name: DeliveryAddressVendorCompanyPaymentTerm + - value: delivery_address,vendor,payment_term + name: DeliveryAddressVendorPaymentTerm + - line_items + - value: line_items,accounting_period + name: LineItemsAccountingPeriod + - value: line_items,accounting_period,payment_term + name: LineItemsAccountingPeriodPaymentTerm + - value: line_items,company + name: LineItemsCompany + - value: line_items,company,accounting_period + name: LineItemsCompanyAccountingPeriod + - value: line_items,company,accounting_period,payment_term + name: LineItemsCompanyAccountingPeriodPaymentTerm + - value: line_items,company,payment_term + name: LineItemsCompanyPaymentTerm + - value: line_items,delivery_address + name: LineItemsDeliveryAddress + - value: line_items,delivery_address,accounting_period + name: LineItemsDeliveryAddressAccountingPeriod + - value: line_items,delivery_address,accounting_period,payment_term + name: LineItemsDeliveryAddressAccountingPeriodPaymentTerm + - value: line_items,delivery_address,company + name: LineItemsDeliveryAddressCompany + - value: line_items,delivery_address,company,accounting_period + name: LineItemsDeliveryAddressCompanyAccountingPeriod + - value: line_items,delivery_address,company,accounting_period,payment_term + name: LineItemsDeliveryAddressCompanyAccountingPeriodPaymentTerm + - value: line_items,delivery_address,company,payment_term + name: LineItemsDeliveryAddressCompanyPaymentTerm + - value: line_items,delivery_address,payment_term + name: LineItemsDeliveryAddressPaymentTerm + - value: line_items,delivery_address,vendor + name: LineItemsDeliveryAddressVendor + - value: line_items,delivery_address,vendor,accounting_period + name: LineItemsDeliveryAddressVendorAccountingPeriod + - value: line_items,delivery_address,vendor,accounting_period,payment_term + name: LineItemsDeliveryAddressVendorAccountingPeriodPaymentTerm + - value: line_items,delivery_address,vendor,company + name: LineItemsDeliveryAddressVendorCompany + - value: line_items,delivery_address,vendor,company,accounting_period + name: LineItemsDeliveryAddressVendorCompanyAccountingPeriod + - value: >- + line_items,delivery_address,vendor,company,accounting_period,payment_term + name: LineItemsDeliveryAddressVendorCompanyAccountingPeriodPaymentTerm + - value: line_items,delivery_address,vendor,company,payment_term + name: LineItemsDeliveryAddressVendorCompanyPaymentTerm + - value: line_items,delivery_address,vendor,payment_term + name: LineItemsDeliveryAddressVendorPaymentTerm + - value: line_items,payment_term + name: LineItemsPaymentTerm + - value: line_items,tracking_categories + name: LineItemsTrackingCategories + - value: line_items,tracking_categories,accounting_period + name: LineItemsTrackingCategoriesAccountingPeriod + - value: line_items,tracking_categories,accounting_period,payment_term + name: LineItemsTrackingCategoriesAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,company + name: LineItemsTrackingCategoriesCompany + - value: line_items,tracking_categories,company,accounting_period + name: LineItemsTrackingCategoriesCompanyAccountingPeriod + - value: line_items,tracking_categories,company,accounting_period,payment_term + name: LineItemsTrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,company,payment_term + name: LineItemsTrackingCategoriesCompanyPaymentTerm + - value: line_items,tracking_categories,delivery_address + name: LineItemsTrackingCategoriesDeliveryAddress + - value: line_items,tracking_categories,delivery_address,accounting_period + name: LineItemsTrackingCategoriesDeliveryAddressAccountingPeriod + - value: >- + line_items,tracking_categories,delivery_address,accounting_period,payment_term + name: LineItemsTrackingCategoriesDeliveryAddressAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,delivery_address,company + name: LineItemsTrackingCategoriesDeliveryAddressCompany + - value: >- + line_items,tracking_categories,delivery_address,company,accounting_period + name: LineItemsTrackingCategoriesDeliveryAddressCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,delivery_address,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesDeliveryAddressCompanyAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,delivery_address,company,payment_term + name: LineItemsTrackingCategoriesDeliveryAddressCompanyPaymentTerm + - value: line_items,tracking_categories,delivery_address,payment_term + name: LineItemsTrackingCategoriesDeliveryAddressPaymentTerm + - value: line_items,tracking_categories,delivery_address,vendor + name: LineItemsTrackingCategoriesDeliveryAddressVendor + - value: >- + line_items,tracking_categories,delivery_address,vendor,accounting_period + name: LineItemsTrackingCategoriesDeliveryAddressVendorAccountingPeriod + - value: >- + line_items,tracking_categories,delivery_address,vendor,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesDeliveryAddressVendorAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,delivery_address,vendor,company + name: LineItemsTrackingCategoriesDeliveryAddressVendorCompany + - value: >- + line_items,tracking_categories,delivery_address,vendor,company,accounting_period + name: >- + LineItemsTrackingCategoriesDeliveryAddressVendorCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,delivery_address,vendor,company,accounting_period,payment_term + name: >- + LineItemsTrackingCategoriesDeliveryAddressVendorCompanyAccountingPeriodPaymentTerm + - value: >- + line_items,tracking_categories,delivery_address,vendor,company,payment_term + name: LineItemsTrackingCategoriesDeliveryAddressVendorCompanyPaymentTerm + - value: line_items,tracking_categories,delivery_address,vendor,payment_term + name: LineItemsTrackingCategoriesDeliveryAddressVendorPaymentTerm + - value: line_items,tracking_categories,payment_term + name: LineItemsTrackingCategoriesPaymentTerm + - value: line_items,tracking_categories,vendor + name: LineItemsTrackingCategoriesVendor + - value: line_items,tracking_categories,vendor,accounting_period + name: LineItemsTrackingCategoriesVendorAccountingPeriod + - value: line_items,tracking_categories,vendor,accounting_period,payment_term + name: LineItemsTrackingCategoriesVendorAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,vendor,company + name: LineItemsTrackingCategoriesVendorCompany + - value: line_items,tracking_categories,vendor,company,accounting_period + name: LineItemsTrackingCategoriesVendorCompanyAccountingPeriod + - value: >- + line_items,tracking_categories,vendor,company,accounting_period,payment_term + name: LineItemsTrackingCategoriesVendorCompanyAccountingPeriodPaymentTerm + - value: line_items,tracking_categories,vendor,company,payment_term + name: LineItemsTrackingCategoriesVendorCompanyPaymentTerm + - value: line_items,tracking_categories,vendor,payment_term + name: LineItemsTrackingCategoriesVendorPaymentTerm + - value: line_items,vendor + name: LineItemsVendor + - value: line_items,vendor,accounting_period + name: LineItemsVendorAccountingPeriod + - value: line_items,vendor,accounting_period,payment_term + name: LineItemsVendorAccountingPeriodPaymentTerm + - value: line_items,vendor,company + name: LineItemsVendorCompany + - value: line_items,vendor,company,accounting_period + name: LineItemsVendorCompanyAccountingPeriod + - value: line_items,vendor,company,accounting_period,payment_term + name: LineItemsVendorCompanyAccountingPeriodPaymentTerm + - value: line_items,vendor,company,payment_term + name: LineItemsVendorCompanyPaymentTerm + - value: line_items,vendor,payment_term + name: LineItemsVendorPaymentTerm + - payment_term + - tracking_categories + - value: tracking_categories,accounting_period + name: TrackingCategoriesAccountingPeriod + - value: tracking_categories,accounting_period,payment_term + name: TrackingCategoriesAccountingPeriodPaymentTerm + - value: tracking_categories,company + name: TrackingCategoriesCompany + - value: tracking_categories,company,accounting_period + name: TrackingCategoriesCompanyAccountingPeriod + - value: tracking_categories,company,accounting_period,payment_term + name: TrackingCategoriesCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,company,payment_term + name: TrackingCategoriesCompanyPaymentTerm + - value: tracking_categories,delivery_address + name: TrackingCategoriesDeliveryAddress + - value: tracking_categories,delivery_address,accounting_period + name: TrackingCategoriesDeliveryAddressAccountingPeriod + - value: tracking_categories,delivery_address,accounting_period,payment_term + name: TrackingCategoriesDeliveryAddressAccountingPeriodPaymentTerm + - value: tracking_categories,delivery_address,company + name: TrackingCategoriesDeliveryAddressCompany + - value: tracking_categories,delivery_address,company,accounting_period + name: TrackingCategoriesDeliveryAddressCompanyAccountingPeriod + - value: >- + tracking_categories,delivery_address,company,accounting_period,payment_term + name: TrackingCategoriesDeliveryAddressCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,delivery_address,company,payment_term + name: TrackingCategoriesDeliveryAddressCompanyPaymentTerm + - value: tracking_categories,delivery_address,payment_term + name: TrackingCategoriesDeliveryAddressPaymentTerm + - value: tracking_categories,delivery_address,vendor + name: TrackingCategoriesDeliveryAddressVendor + - value: tracking_categories,delivery_address,vendor,accounting_period + name: TrackingCategoriesDeliveryAddressVendorAccountingPeriod + - value: >- + tracking_categories,delivery_address,vendor,accounting_period,payment_term + name: TrackingCategoriesDeliveryAddressVendorAccountingPeriodPaymentTerm + - value: tracking_categories,delivery_address,vendor,company + name: TrackingCategoriesDeliveryAddressVendorCompany + - value: tracking_categories,delivery_address,vendor,company,accounting_period + name: TrackingCategoriesDeliveryAddressVendorCompanyAccountingPeriod + - value: >- + tracking_categories,delivery_address,vendor,company,accounting_period,payment_term + name: >- + TrackingCategoriesDeliveryAddressVendorCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,delivery_address,vendor,company,payment_term + name: TrackingCategoriesDeliveryAddressVendorCompanyPaymentTerm + - value: tracking_categories,delivery_address,vendor,payment_term + name: TrackingCategoriesDeliveryAddressVendorPaymentTerm + - value: tracking_categories,payment_term + name: TrackingCategoriesPaymentTerm + - value: tracking_categories,vendor + name: TrackingCategoriesVendor + - value: tracking_categories,vendor,accounting_period + name: TrackingCategoriesVendorAccountingPeriod + - value: tracking_categories,vendor,accounting_period,payment_term + name: TrackingCategoriesVendorAccountingPeriodPaymentTerm + - value: tracking_categories,vendor,company + name: TrackingCategoriesVendorCompany + - value: tracking_categories,vendor,company,accounting_period + name: TrackingCategoriesVendorCompanyAccountingPeriod + - value: tracking_categories,vendor,company,accounting_period,payment_term + name: TrackingCategoriesVendorCompanyAccountingPeriodPaymentTerm + - value: tracking_categories,vendor,company,payment_term + name: TrackingCategoriesVendorCompanyPaymentTerm + - value: tracking_categories,vendor,payment_term + name: TrackingCategoriesVendorPaymentTerm + - vendor + - value: vendor,accounting_period + name: VendorAccountingPeriod + - value: vendor,accounting_period,payment_term + name: VendorAccountingPeriodPaymentTerm + - value: vendor,company + name: VendorCompany + - value: vendor,company,accounting_period + name: VendorCompanyAccountingPeriod + - value: vendor,company,accounting_period,payment_term + name: VendorCompanyAccountingPeriodPaymentTerm + - value: vendor,company,payment_term + name: VendorCompanyPaymentTerm + - value: vendor,payment_term + name: VendorPaymentTerm + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/purchase-orders + method: GET + auth: true + docs: Returns a list of `PurchaseOrder` objects. + source: + openapi: openapi/openapi.yml + request: + name: PurchaseOrdersListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return purchase orders for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + issue_date_after: + type: optional + docs: If provided, will only return objects created after this datetime. + issue_date_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.PaginatedPurchaseOrderList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0048ea5b-911e-4dff-9364-92070dea62ff + remote_id: '239741' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + status: DRAFT + issue_date: '2020-03-31T00:00:00Z' + purchase_order_number: PO1234 + delivery_date: '2020-04-15T00:00:00Z' + delivery_address: delivery_address + customer: 3e442c5d-8f51-4103-b5c9-dcee39c30a08 + vendor: vendor + memo: private note + company: company + total_amount: 260 + currency: XUA + exchange_rate: '2.9' + payment_term: payment_term + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball paddles + unit_price: 25 + quantity: 10 + item: 0958cbc6-6040-430a-848e-aafacbadf4ae + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + tax_amount: tax_amount + total_line_amount: total_line_amount + currency: USD + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball Balls + unit_price: 1 + quantity: 10 + item: 249c9faa-3045-4a31-953b-8f22d3613301 + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + tax_amount: tax_amount + total_line_amount: total_line_amount + inclusive_of_tax: true + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + accounting_period: accounting_period + remote_created_at: '2020-03-31T00:00:00Z' + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /accounting/v1/purchase-orders + method: POST + auth: true + docs: Creates a `PurchaseOrder` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: PurchaseOrderEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.PurchaseOrderRequest + content-type: application/json + response: + docs: '' + type: root.PurchaseOrderResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 0048ea5b-911e-4dff-9364-92070dea62ff + remote_id: '239741' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + status: DRAFT + issue_date: '2020-03-31T00:00:00Z' + purchase_order_number: PO1234 + delivery_date: '2020-04-15T00:00:00Z' + delivery_address: delivery_address + customer: 3e442c5d-8f51-4103-b5c9-dcee39c30a08 + vendor: vendor + memo: private note + company: company + total_amount: 260 + currency: XUA + exchange_rate: '2.9' + payment_term: payment_term + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball paddles + unit_price: 25 + quantity: 10 + item: 0958cbc6-6040-430a-848e-aafacbadf4ae + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + tax_amount: tax_amount + total_line_amount: total_line_amount + currency: USD + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball Balls + unit_price: 1 + quantity: 10 + item: 249c9faa-3045-4a31-953b-8f22d3613301 + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + tax_amount: tax_amount + total_line_amount: total_line_amount + inclusive_of_tax: true + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + accounting_period: accounting_period + remote_created_at: '2020-03-31T00:00:00Z' + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/purchase-orders/{id} + method: GET + auth: true + docs: Returns a `PurchaseOrder` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: PurchaseOrdersRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.PurchaseOrder + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 0048ea5b-911e-4dff-9364-92070dea62ff + remote_id: '239741' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + status: DRAFT + issue_date: '2020-03-31T00:00:00Z' + purchase_order_number: PO1234 + delivery_date: '2020-04-15T00:00:00Z' + delivery_address: delivery_address + customer: 3e442c5d-8f51-4103-b5c9-dcee39c30a08 + vendor: vendor + memo: private note + company: company + total_amount: 260 + currency: XUA + exchange_rate: '2.9' + payment_term: payment_term + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball paddles + unit_price: 25 + quantity: 10 + item: 0958cbc6-6040-430a-848e-aafacbadf4ae + account: account + tracking_category: tracking_category + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + tax_amount: tax_amount + total_line_amount: total_line_amount + currency: USD + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: false + remote_fields: + - remote_field_class: remote_field_class + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + description: Pickleball Balls + unit_price: 1 + quantity: 10 + item: 249c9faa-3045-4a31-953b-8f22d3613301 + account: account + tracking_category: tracking_category + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + tax_amount: tax_amount + total_line_amount: total_line_amount + currency: XUA + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + remote_fields: + - remote_field_class: remote_field_class + inclusive_of_tax: true + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + accounting_period: accounting_period + remote_created_at: '2020-03-31T00:00:00Z' + remote_updated_at: '2020-03-31T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + lineItemsRemoteFieldClassesList: + path: /accounting/v1/purchase-orders/line-items/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: PurchaseOrdersLineItemsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + metaPostRetrieve: + path: /accounting/v1/purchase-orders/meta/post + method: GET + auth: true + docs: Returns metadata for `PurchaseOrder` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /accounting/v1/purchase-orders/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: PurchaseOrdersRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - field_choices + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/regenerateKey.yml b/.mock/definition/accounting/regenerateKey.yml new file mode 100644 index 000000000..39fe26f92 --- /dev/null +++ b/.mock/definition/accounting/regenerateKey.yml @@ -0,0 +1,36 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /accounting/v1/regenerate-key + method: POST + auth: true + docs: Exchange remote keys. + source: + openapi: openapi/openapi.yml + request: + name: RemoteKeyForRegenerationRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/scopes.yml b/.mock/definition/accounting/scopes.yml new file mode 100644 index 000000000..ab81c591d --- /dev/null +++ b/.mock/definition/accounting/scopes.yml @@ -0,0 +1,160 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + default_scopes_retrieve: + path: /accounting/v1/default-scopes + method: GET + auth: true + docs: >- + Get the default permissions for Merge Common Models and fields across + all Linked Accounts of a given category. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.CommonModelScopeApi + status-code: 200 + examples: + - response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_retrieve: + path: /accounting/v1/linked-account-scopes + method: GET + auth: true + docs: >- + Get all available permissions for Merge Common Models and fields for a + single Linked Account. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_create: + path: /accounting/v1/linked-account-scopes + method: POST + auth: true + docs: >- + Update permissions for any Common Model or field for a single Linked + Account. Any Scopes not set in this POST request will inherit the + default Scopes. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) + source: + openapi: openapi/openapi.yml + request: + name: LinkedAccountCommonModelScopeDeserializerRequest + body: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + content-type: application/json + response: + docs: '' + type: root.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + request: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - home_location + disabled_fields: + - work_location + - model_name: Benefit + model_permissions: + WRITE: + is_enabled: false + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/syncStatus.yml b/.mock/definition/accounting/syncStatus.yml new file mode 100644 index 000000000..38dcf2cea --- /dev/null +++ b/.mock/definition/accounting/syncStatus.yml @@ -0,0 +1,55 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/sync-status + method: GET + auth: true + docs: >- + Get sync status for the current sync and the most recently finished + sync. `last_sync_start` represents the most recent time any sync began. + `last_sync_finished` represents the most recent time any sync completed. + These timestamps may correspond to different sync instances which may + result in a sync start time being later than a separate sync completed + time. To ensure you are retrieving the latest available data reference + the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. + Possible values for `status` and `last_sync_result` are `DISABLED`, + `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more + about sync status in our [Help + Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + source: + openapi: openapi/openapi.yml + request: + name: SyncStatusListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedSyncStatusList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - model_name: Invoice + model_id: accounting.Invoices + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/taxRates.yml b/.mock/definition/accounting/taxRates.yml new file mode 100644 index 000000000..3ff151957 --- /dev/null +++ b/.mock/definition/accounting/taxRates.yml @@ -0,0 +1,185 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/tax-rates + method: GET + auth: true + docs: Returns a list of `TaxRate` objects. + source: + openapi: openapi/openapi.yml + request: + name: TaxRatesListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return tax rates for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + name: + type: optional + docs: If provided, will only return TaxRates with this name. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedTaxRateList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b82302de-852e-4e60-b050-edf9da3b7c02 + remote_id: '039111' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + company: company + code: '890' + name: State tax rate + description: Sales Tax + status: ACTIVE + country: US + total_tax_rate: 15 + effective_tax_rate: 15 + tax_components: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '039111' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Drink Tax Component + rate: rate + is_compound: true + component_type: SALES + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/tax-rates/{id} + method: GET + auth: true + docs: Returns a `TaxRate` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: TaxRatesRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.TaxRate + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: b82302de-852e-4e60-b050-edf9da3b7c02 + remote_id: '039111' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + company: company + code: '890' + name: State tax rate + description: Sales Tax + status: ACTIVE + country: US + total_tax_rate: 15 + effective_tax_rate: 15 + tax_components: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '039111' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Drink Tax Component + rate: rate + is_compound: true + component_type: SALES + remote_was_deleted: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/trackingCategories.yml b/.mock/definition/accounting/trackingCategories.yml new file mode 100644 index 000000000..2e3f062f8 --- /dev/null +++ b/.mock/definition/accounting/trackingCategories.yml @@ -0,0 +1,182 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/tracking-categories + method: GET + auth: true + docs: Returns a list of `TrackingCategory` objects. + source: + openapi: openapi/openapi.yml + request: + name: TrackingCategoriesListRequest + query-parameters: + category_type: + type: optional + docs: If provided, will only return tracking categories with this type. + company_id: + type: optional + docs: >- + If provided, will only return tracking categories for this + company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + name: + type: optional + docs: If provided, will only return tracking categories with this name. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + status: + type: optional + docs: >- + If provided, will only return tracking categories with this + status. + response: + docs: '' + type: root.PaginatedTrackingCategoryList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '948201' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Marketing Department + status: ACTIVE + category_type: CLASS + parent_category: d25d609b-945f-4762-b55a-1c8fb220c43c + company: company + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + retrieve: + path: /accounting/v1/tracking-categories/{id} + method: GET + auth: true + docs: Returns a `TrackingCategory` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: TrackingCategoriesRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.TrackingCategory + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '948201' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Marketing Department + status: ACTIVE + category_type: CLASS + parent_category: d25d609b-945f-4762-b55a-1c8fb220c43c + company: company + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/transactions.yml b/.mock/definition/accounting/transactions.yml new file mode 100644 index 000000000..94a999db9 --- /dev/null +++ b/.mock/definition/accounting/transactions.yml @@ -0,0 +1,385 @@ +types: + TransactionsListRequestExpand: + enum: + - account + - value: account,accounting_period + name: AccountAccountingPeriod + - accounting_period + - contact + - value: contact,account + name: ContactAccount + - value: contact,account,accounting_period + name: ContactAccountAccountingPeriod + - value: contact,accounting_period + name: ContactAccountingPeriod + - line_items + - value: line_items,account + name: LineItemsAccount + - value: line_items,account,accounting_period + name: LineItemsAccountAccountingPeriod + - value: line_items,accounting_period + name: LineItemsAccountingPeriod + - value: line_items,contact + name: LineItemsContact + - value: line_items,contact,account + name: LineItemsContactAccount + - value: line_items,contact,account,accounting_period + name: LineItemsContactAccountAccountingPeriod + - value: line_items,contact,accounting_period + name: LineItemsContactAccountingPeriod + - value: line_items,tracking_categories + name: LineItemsTrackingCategories + - value: line_items,tracking_categories,account + name: LineItemsTrackingCategoriesAccount + - value: line_items,tracking_categories,account,accounting_period + name: LineItemsTrackingCategoriesAccountAccountingPeriod + - value: line_items,tracking_categories,accounting_period + name: LineItemsTrackingCategoriesAccountingPeriod + - value: line_items,tracking_categories,contact + name: LineItemsTrackingCategoriesContact + - value: line_items,tracking_categories,contact,account + name: LineItemsTrackingCategoriesContactAccount + - value: line_items,tracking_categories,contact,account,accounting_period + name: LineItemsTrackingCategoriesContactAccountAccountingPeriod + - value: line_items,tracking_categories,contact,accounting_period + name: LineItemsTrackingCategoriesContactAccountingPeriod + - tracking_categories + - value: tracking_categories,account + name: TrackingCategoriesAccount + - value: tracking_categories,account,accounting_period + name: TrackingCategoriesAccountAccountingPeriod + - value: tracking_categories,accounting_period + name: TrackingCategoriesAccountingPeriod + - value: tracking_categories,contact + name: TrackingCategoriesContact + - value: tracking_categories,contact,account + name: TrackingCategoriesContactAccount + - value: tracking_categories,contact,account,accounting_period + name: TrackingCategoriesContactAccountAccountingPeriod + - value: tracking_categories,contact,accounting_period + name: TrackingCategoriesContactAccountingPeriod + source: + openapi: openapi/openapi.yml + TransactionsRetrieveRequestExpand: + enum: + - account + - value: account,accounting_period + name: AccountAccountingPeriod + - accounting_period + - contact + - value: contact,account + name: ContactAccount + - value: contact,account,accounting_period + name: ContactAccountAccountingPeriod + - value: contact,accounting_period + name: ContactAccountingPeriod + - line_items + - value: line_items,account + name: LineItemsAccount + - value: line_items,account,accounting_period + name: LineItemsAccountAccountingPeriod + - value: line_items,accounting_period + name: LineItemsAccountingPeriod + - value: line_items,contact + name: LineItemsContact + - value: line_items,contact,account + name: LineItemsContactAccount + - value: line_items,contact,account,accounting_period + name: LineItemsContactAccountAccountingPeriod + - value: line_items,contact,accounting_period + name: LineItemsContactAccountingPeriod + - value: line_items,tracking_categories + name: LineItemsTrackingCategories + - value: line_items,tracking_categories,account + name: LineItemsTrackingCategoriesAccount + - value: line_items,tracking_categories,account,accounting_period + name: LineItemsTrackingCategoriesAccountAccountingPeriod + - value: line_items,tracking_categories,accounting_period + name: LineItemsTrackingCategoriesAccountingPeriod + - value: line_items,tracking_categories,contact + name: LineItemsTrackingCategoriesContact + - value: line_items,tracking_categories,contact,account + name: LineItemsTrackingCategoriesContactAccount + - value: line_items,tracking_categories,contact,account,accounting_period + name: LineItemsTrackingCategoriesContactAccountAccountingPeriod + - value: line_items,tracking_categories,contact,accounting_period + name: LineItemsTrackingCategoriesContactAccountingPeriod + - tracking_categories + - value: tracking_categories,account + name: TrackingCategoriesAccount + - value: tracking_categories,account,accounting_period + name: TrackingCategoriesAccountAccountingPeriod + - value: tracking_categories,accounting_period + name: TrackingCategoriesAccountingPeriod + - value: tracking_categories,contact + name: TrackingCategoriesContact + - value: tracking_categories,contact,account + name: TrackingCategoriesContactAccount + - value: tracking_categories,contact,account,accounting_period + name: TrackingCategoriesContactAccountAccountingPeriod + - value: tracking_categories,contact,accounting_period + name: TrackingCategoriesContactAccountingPeriod + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/transactions + method: GET + auth: true + docs: Returns a list of `Transaction` objects. + source: + openapi: openapi/openapi.yml + request: + name: TransactionsListRequest + query-parameters: + company_id: + type: optional + docs: >- + If provided, will only return accounting transactions for this + company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + transaction_date_after: + type: optional + docs: If provided, will only return objects created after this datetime. + transaction_date_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + response: + docs: '' + type: root.PaginatedTransactionList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0048ea5b-911e-4dff-9364-92070dea62ff + remote_id: '239741' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_type: estimate + number: '122' + transaction_date: '2020-03-31T00:00:00Z' + account: account + contact: contact + inclusive_of_tax: true + total_amount: total_amount + currency: XUA + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + memo: Pickleball paddles + unit_price: '25.0' + quantity: '10.0' + item: 0958cbc6-6040-430a-848e-aafacbadf4ae + account: 2b38c085-2620-4269-b5ec-75dd9095ed2c + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + total_line_amount: total_line_amount + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + currency: USD + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + memo: Pickleball balls + unit_price: '25.0' + quantity: '10.0' + item: 249c9faa-3045-4a31-953b-8f22d3613301 + account: 3e442c5d-8f51-4103-b5c9-dcee39c30a08 + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + total_line_amount: total_line_amount + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + remote_was_deleted: true + accounting_period: accounting_period + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /accounting/v1/transactions/{id} + method: GET + auth: true + docs: Returns a `Transaction` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: TransactionsRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Transaction + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 0048ea5b-911e-4dff-9364-92070dea62ff + remote_id: '239741' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + transaction_type: estimate + number: '122' + transaction_date: '2020-03-31T00:00:00Z' + account: account + contact: contact + inclusive_of_tax: true + total_amount: total_amount + currency: XUA + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + line_items: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + memo: Pickleball paddles + unit_price: '25.0' + quantity: '10.0' + item: 0958cbc6-6040-430a-848e-aafacbadf4ae + account: 2b38c085-2620-4269-b5ec-75dd9095ed2c + tracking_category: tracking_category + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + total_line_amount: total_line_amount + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + currency: USD + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + memo: Pickleball balls + unit_price: '25.0' + quantity: '10.0' + item: 249c9faa-3045-4a31-953b-8f22d3613301 + account: 3e442c5d-8f51-4103-b5c9-dcee39c30a08 + tracking_category: tracking_category + tracking_categories: + - f1214c24-2702-4617-b74b-3ddecfc0d384 + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + total_line_amount: total_line_amount + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + currency: XUA + exchange_rate: '2.9' + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + remote_was_deleted: true + remote_was_deleted: true + accounting_period: accounting_period + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/vendorCredits.yml b/.mock/definition/accounting/vendorCredits.yml new file mode 100644 index 000000000..39b414150 --- /dev/null +++ b/.mock/definition/accounting/vendorCredits.yml @@ -0,0 +1,683 @@ +types: + VendorCreditsListRequestExpand: + enum: + - accounting_period + - company + - value: company,accounting_period + name: CompanyAccountingPeriod + - lines + - value: lines,accounting_period + name: LinesAccountingPeriod + - value: lines,company + name: LinesCompany + - value: lines,company,accounting_period + name: LinesCompanyAccountingPeriod + - value: lines,tracking_categories + name: LinesTrackingCategories + - value: lines,tracking_categories,accounting_period + name: LinesTrackingCategoriesAccountingPeriod + - value: lines,tracking_categories,company + name: LinesTrackingCategoriesCompany + - value: lines,tracking_categories,company,accounting_period + name: LinesTrackingCategoriesCompanyAccountingPeriod + - value: lines,tracking_categories,vendor + name: LinesTrackingCategoriesVendor + - value: lines,tracking_categories,vendor,accounting_period + name: LinesTrackingCategoriesVendorAccountingPeriod + - value: lines,tracking_categories,vendor,company + name: LinesTrackingCategoriesVendorCompany + - value: lines,tracking_categories,vendor,company,accounting_period + name: LinesTrackingCategoriesVendorCompanyAccountingPeriod + - value: lines,vendor + name: LinesVendor + - value: lines,vendor,accounting_period + name: LinesVendorAccountingPeriod + - value: lines,vendor,company + name: LinesVendorCompany + - value: lines,vendor,company,accounting_period + name: LinesVendorCompanyAccountingPeriod + - tracking_categories + - value: tracking_categories,accounting_period + name: TrackingCategoriesAccountingPeriod + - value: tracking_categories,company + name: TrackingCategoriesCompany + - value: tracking_categories,company,accounting_period + name: TrackingCategoriesCompanyAccountingPeriod + - value: tracking_categories,vendor + name: TrackingCategoriesVendor + - value: tracking_categories,vendor,accounting_period + name: TrackingCategoriesVendorAccountingPeriod + - value: tracking_categories,vendor,company + name: TrackingCategoriesVendorCompany + - value: tracking_categories,vendor,company,accounting_period + name: TrackingCategoriesVendorCompanyAccountingPeriod + - vendor + - value: vendor,accounting_period + name: VendorAccountingPeriod + - value: vendor,company + name: VendorCompany + - value: vendor,company,accounting_period + name: VendorCompanyAccountingPeriod + source: + openapi: openapi/openapi.yml + VendorCreditsRetrieveRequestExpand: + enum: + - accounting_period + - company + - value: company,accounting_period + name: CompanyAccountingPeriod + - lines + - value: lines,accounting_period + name: LinesAccountingPeriod + - value: lines,company + name: LinesCompany + - value: lines,company,accounting_period + name: LinesCompanyAccountingPeriod + - value: lines,tracking_categories + name: LinesTrackingCategories + - value: lines,tracking_categories,accounting_period + name: LinesTrackingCategoriesAccountingPeriod + - value: lines,tracking_categories,company + name: LinesTrackingCategoriesCompany + - value: lines,tracking_categories,company,accounting_period + name: LinesTrackingCategoriesCompanyAccountingPeriod + - value: lines,tracking_categories,vendor + name: LinesTrackingCategoriesVendor + - value: lines,tracking_categories,vendor,accounting_period + name: LinesTrackingCategoriesVendorAccountingPeriod + - value: lines,tracking_categories,vendor,company + name: LinesTrackingCategoriesVendorCompany + - value: lines,tracking_categories,vendor,company,accounting_period + name: LinesTrackingCategoriesVendorCompanyAccountingPeriod + - value: lines,vendor + name: LinesVendor + - value: lines,vendor,accounting_period + name: LinesVendorAccountingPeriod + - value: lines,vendor,company + name: LinesVendorCompany + - value: lines,vendor,company,accounting_period + name: LinesVendorCompanyAccountingPeriod + - tracking_categories + - value: tracking_categories,accounting_period + name: TrackingCategoriesAccountingPeriod + - value: tracking_categories,company + name: TrackingCategoriesCompany + - value: tracking_categories,company,accounting_period + name: TrackingCategoriesCompanyAccountingPeriod + - value: tracking_categories,vendor + name: TrackingCategoriesVendor + - value: tracking_categories,vendor,accounting_period + name: TrackingCategoriesVendorAccountingPeriod + - value: tracking_categories,vendor,company + name: TrackingCategoriesVendorCompany + - value: tracking_categories,vendor,company,accounting_period + name: TrackingCategoriesVendorCompanyAccountingPeriod + - vendor + - value: vendor,accounting_period + name: VendorAccountingPeriod + - value: vendor,company + name: VendorCompany + - value: vendor,company,accounting_period + name: VendorCompanyAccountingPeriod + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/vendor-credits + method: GET + auth: true + docs: Returns a list of `VendorCredit` objects. + source: + openapi: openapi/openapi.yml + request: + name: VendorCreditsListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return vendor credits for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + transaction_date_after: + type: optional + docs: If provided, will only return objects created after this datetime. + transaction_date_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + response: + docs: '' + type: root.PaginatedVendorCreditList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + number: '6' + transaction_date: '2020-03-31T00:00:00Z' + vendor: vendor + total_amount: 10000 + currency: XUA + exchange_rate: '2.9' + inclusive_of_tax: true + company: company + lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + net_amount: 25.54 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: Gifted Merge Credit + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: 908934-49j9-093f-0989-908923908 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + exchange_rate: '2.9' + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121223' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + net_amount: 10 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: Refund for overpayment + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + applied_to_lines: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + invoice: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + remote_was_deleted: true + accounting_period: accounting_period + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + create: + path: /accounting/v1/vendor-credits + method: POST + auth: true + docs: Creates a `VendorCredit` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: VendorCreditEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.VendorCreditRequest + content-type: application/json + response: + docs: '' + type: root.VendorCreditResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + number: '6' + transaction_date: '2020-03-31T00:00:00Z' + vendor: vendor + total_amount: 10000 + currency: XUA + exchange_rate: '2.9' + inclusive_of_tax: true + company: company + lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + net_amount: 25.54 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: Gifted Merge Credit + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: 908934-49j9-093f-0989-908923908 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + exchange_rate: '2.9' + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121223' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + net_amount: 10 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: Refund for overpayment + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + applied_to_lines: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + invoice: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + remote_was_deleted: true + accounting_period: accounting_period + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /accounting/v1/vendor-credits/{id} + method: GET + auth: true + docs: Returns a `VendorCredit` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: VendorCreditsRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.VendorCredit + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + number: '6' + transaction_date: '2020-03-31T00:00:00Z' + vendor: vendor + total_amount: 10000 + currency: XUA + exchange_rate: '2.9' + inclusive_of_tax: true + company: company + lines: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121222' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + net_amount: 25.54 + tracking_category: tracking_category + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: Gifted Merge Credit + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + project: 22e65a5d-2df5-4e6e-884a-e538d0339000 + contact: 908934-49j9-093f-0989-908923908 + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + exchange_rate: '2.9' + remote_was_deleted: false + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '121223' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + net_amount: 10 + tracking_category: tracking_category + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + description: Refund for overpayment + account: 9d892439-5fab-4dbb-8bd8-34f7f96c7912 + company: 595c8f97-2ac4-45b7-b000-41bdf43240b5 + project: project + contact: contact + tax_rate: a12e7c20-1922-9df7-s75n-edfeewnn7384 + exchange_rate: '2.9' + remote_was_deleted: true + tracking_categories: + - b38c59b0-a9d7-4740-b1ee-5436c6751e3d + - 9b840d2-686a-465a-8a8e-7b028498f8e4 + - a47e11b6-c73b-4a0c-be31-130fc48177fa + applied_to_lines: + - remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + invoice: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + applied_date: '2020-03-31T00:00:00Z' + applied_amount: '2.9' + remote_was_deleted: true + remote_was_deleted: true + accounting_period: accounting_period + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + metaPostRetrieve: + path: /accounting/v1/vendor-credits/meta/post + method: GET + auth: true + docs: Returns metadata for `VendorCredit` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/accounting/webhookReceivers.yml b/.mock/definition/accounting/webhookReceivers.yml new file mode 100644 index 000000000..0c90c8266 --- /dev/null +++ b/.mock/definition/accounting/webhookReceivers.yml @@ -0,0 +1,61 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /accounting/v1/webhook-receivers + method: GET + auth: true + docs: Returns a list of `WebhookReceiver` objects. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - event: event + is_active: true + key: key + create: + path: /accounting/v1/webhook-receivers + method: POST + auth: true + docs: Creates a `WebhookReceiver` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: WebhookReceiverRequest + body: + properties: + event: + type: string + validation: + minLength: 1 + is_active: boolean + key: + type: optional + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.WebhookReceiver + status-code: 201 + examples: + - headers: {} + request: + event: event + is_active: true + response: + body: + event: event + is_active: true + key: key + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/api.yml b/.mock/definition/api.yml new file mode 100644 index 000000000..6e83d1578 --- /dev/null +++ b/.mock/definition/api.yml @@ -0,0 +1,20 @@ +name: api +error-discrimination: + strategy: status-code +display-name: Merge +default-environment: Production +environments: + Production: https://api.merge.dev/api + Sandbox: https://api-sandbox.merge.dev/api + ProductionEu: https://api-eu.merge.dev/api +auth: BearerAuthScheme +auth-schemes: + BearerAuthScheme: + scheme: bearer + token: + name: api_key +headers: + X-Account-Token: + type: optional + docs: Token identifying the end user. + name: accountToken diff --git a/.mock/definition/ats/__package__.yml b/.mock/definition/ats/__package__.yml new file mode 100644 index 000000000..8f3c78574 --- /dev/null +++ b/.mock/definition/ats/__package__.yml @@ -0,0 +1,4730 @@ +types: + AccessRoleEnum: + enum: + - SUPER_ADMIN + - ADMIN + - TEAM_MEMBER + - LIMITED_TEAM_MEMBER + - INTERVIEWER + docs: |- + * `SUPER_ADMIN` - SUPER_ADMIN + * `ADMIN` - ADMIN + * `TEAM_MEMBER` - TEAM_MEMBER + * `LIMITED_TEAM_MEMBER` - LIMITED_TEAM_MEMBER + * `INTERVIEWER` - INTERVIEWER + source: + openapi: openapi/openapi.yml + AccountDetailsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountDetails: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + integration: + type: optional + access: read-only + integration_slug: + type: optional + access: read-only + category: optional + end_user_origin_id: + type: optional + access: read-only + end_user_organization_name: + type: optional + access: read-only + end_user_email_address: + type: optional + validation: + format: email + access: read-only + status: + type: optional + access: read-only + webhook_listener_url: + type: optional + validation: + format: uri + access: read-only + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + access: read-only + account_type: + type: optional + access: read-only + completed_at: + type: optional + docs: The time at which account completes the linking flow. + source: + openapi: openapi/openapi.yml + AccountDetailsAndActionsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountDetailsAndActionsStatus: + discriminated: false + union: + - AccountDetailsAndActionsStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountDetailsAndActions: + docs: >- + # The LinkedAccount Object + + ### Description + + The `LinkedAccount` object is used to represent an end user's link with a + specific integration. + + + ### Usage Example + + View a list of your organization's `LinkedAccount` objects. + properties: + id: string + category: optional + status: AccountDetailsAndActionsStatus + status_detail: optional + end_user_origin_id: optional + end_user_organization_name: string + end_user_email_address: string + subdomain: + type: optional + docs: The tenant or domain the customer has provided access to. + webhook_listener_url: string + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + integration: optional + account_type: string + completed_at: datetime + integration_specific_fields: optional> + source: + openapi: openapi/openapi.yml + AccountDetailsAndActionsIntegration: + properties: + name: string + categories: list + image: optional + square_image: optional + color: string + slug: string + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: openapi/openapi.yml + AccountDetailsAndActionsStatusEnum: + enum: + - COMPLETE + - INCOMPLETE + - RELINK_NEEDED + - IDLE + docs: |- + * `COMPLETE` - COMPLETE + * `INCOMPLETE` - INCOMPLETE + * `RELINK_NEEDED` - RELINK_NEEDED + * `IDLE` - IDLE + source: + openapi: openapi/openapi.yml + AccountIntegration: + properties: + name: + type: string + docs: Company name. + abbreviated_name: + type: optional + docs: >- + Optional. This shortened name appears in places with limited space, + usually in conjunction with the platform's logo (e.g., Merge Link + menu).

Example: Workforce Now (in lieu of ADP Workforce + Now), SuccessFactors (in lieu of SAP SuccessFactors) + categories: + type: optional> + docs: >- + Category or categories this integration belongs to. Multiple + categories should be comma separated, i.e. [ats, hris]. + access: read-only + image: + type: optional + docs: Company logo in rectangular shape. + validation: + format: uri + square_image: + type: optional + docs: Company logo in square shape. + validation: + format: uri + color: + type: optional + docs: >- + The color of this integration used for buttons and text throughout the + app and landing pages. Choose a darker, saturated color. + validation: + pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ + maxLength: 18 + slug: + type: optional + access: read-only + api_endpoints_to_documentation_urls: + type: optional> + docs: >- + Mapping of API endpoints to documentation urls for support. Example: + {'GET': [['/common-model-scopes', + 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', + 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], + 'POST': []} + webhook_setup_guide_url: + type: optional + docs: >- + Setup guide URL for third party webhook creation. Exposed in Merge + Docs. + category_beta_status: + type: optional> + docs: Category or categories this integration is in beta status for. + access: read-only + source: + openapi: openapi/openapi.yml + AccountToken: + properties: + account_token: string + integration: AccountIntegration + id: string + source: + openapi: openapi/openapi.yml + ActivityUser: + discriminated: false + docs: The user that performed the action. + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: openapi/openapi.yml + inline: true + ActivityActivityType: + discriminated: false + docs: |- + The activity's type. + + * `NOTE` - NOTE + * `EMAIL` - EMAIL + * `OTHER` - OTHER + union: + - ActivityTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + ActivityVisibility: + discriminated: false + docs: |- + The activity's visibility. + + * `ADMIN_ONLY` - ADMIN_ONLY + * `PUBLIC` - PUBLIC + * `PRIVATE` - PRIVATE + union: + - VisibilityEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Activity: + docs: >- + # The Activity Object + + ### Description + + The `Activity` object is used to represent an activity for a candidate + performed by a user. + + ### Usage Example + + Fetch from the `LIST Activities` endpoint and filter by `ID` to show all + activities. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + user: + type: optional + docs: The user that performed the action. + remote_created_at: + type: optional + docs: When the third party's activity was created. + activity_type: + type: optional + docs: |- + The activity's type. + + * `NOTE` - NOTE + * `EMAIL` - EMAIL + * `OTHER` - OTHER + subject: + type: optional + docs: The activity's subject. + body: + type: optional + docs: The activity's body. + visibility: + type: optional + docs: |- + The activity's visibility. + + * `ADMIN_ONLY` - ADMIN_ONLY + * `PUBLIC` - PUBLIC + * `PRIVATE` - PRIVATE + candidate: + type: optional + validation: + format: uuid + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + ActivityRequestUser: + discriminated: false + docs: The user that performed the action. + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: openapi/openapi.yml + inline: true + ActivityRequestActivityType: + discriminated: false + docs: |- + The activity's type. + + * `NOTE` - NOTE + * `EMAIL` - EMAIL + * `OTHER` - OTHER + union: + - ActivityTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + ActivityRequestVisibility: + discriminated: false + docs: |- + The activity's visibility. + + * `ADMIN_ONLY` - ADMIN_ONLY + * `PUBLIC` - PUBLIC + * `PRIVATE` - PRIVATE + union: + - VisibilityEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + ActivityRequest: + docs: >- + # The Activity Object + + ### Description + + The `Activity` object is used to represent an activity for a candidate + performed by a user. + + ### Usage Example + + Fetch from the `LIST Activities` endpoint and filter by `ID` to show all + activities. + properties: + user: + type: optional + docs: The user that performed the action. + activity_type: + type: optional + docs: |- + The activity's type. + + * `NOTE` - NOTE + * `EMAIL` - EMAIL + * `OTHER` - OTHER + subject: + type: optional + docs: The activity's subject. + body: + type: optional + docs: The activity's body. + visibility: + type: optional + docs: |- + The activity's visibility. + + * `ADMIN_ONLY` - ADMIN_ONLY + * `PUBLIC` - PUBLIC + * `PRIVATE` - PRIVATE + candidate: + type: optional + validation: + format: uuid + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + ActivityResponse: + properties: + model: Activity + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + ActivityTypeEnum: + enum: + - NOTE + - EMAIL + - OTHER + docs: |- + * `NOTE` - NOTE + * `EMAIL` - EMAIL + * `OTHER` - OTHER + source: + openapi: openapi/openapi.yml + AdvancedMetadata: + properties: + id: + type: string + validation: + format: uuid + display_name: optional + description: optional + is_required: optional + is_custom: optional + field_choices: optional> + source: + openapi: openapi/openapi.yml + ApplicationCandidate: + discriminated: false + docs: The candidate applying. + union: + - type: string + validation: + format: uuid + - Candidate + source: + openapi: openapi/openapi.yml + inline: true + ApplicationJob: + discriminated: false + docs: The job being applied for. + union: + - type: string + validation: + format: uuid + - Job + source: + openapi: openapi/openapi.yml + inline: true + ApplicationOffersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Offer + source: + openapi: openapi/openapi.yml + inline: true + ApplicationCreditedTo: + discriminated: false + docs: The user credited for this application. + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: openapi/openapi.yml + inline: true + ApplicationScreeningQuestionAnswersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - ScreeningQuestionAnswer + source: + openapi: openapi/openapi.yml + inline: true + ApplicationCurrentStage: + discriminated: false + docs: The application's current stage. + union: + - type: string + validation: + format: uuid + - JobInterviewStage + source: + openapi: openapi/openapi.yml + inline: true + ApplicationRejectReason: + discriminated: false + docs: The application's reason for rejection. + union: + - type: string + validation: + format: uuid + - RejectReason + source: + openapi: openapi/openapi.yml + inline: true + Application: + docs: >- + # The Application Object + + ### Description + + The Application Object is used to represent a candidate's journey through + a particular Job's recruiting process. If a Candidate applies for multiple + Jobs, there will be a separate Application for each Job if the third-party + integration allows it. + + + ### Usage Example + + Fetch from the `LIST Applications` endpoint and filter by `ID` to show all + applications. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + candidate: + type: optional + docs: The candidate applying. + job: + type: optional + docs: The job being applied for. + applied_at: + type: optional + docs: When the application was submitted. + rejected_at: + type: optional + docs: When the application was rejected. + offers: optional>> + source: + type: optional + docs: The application's source. + credited_to: + type: optional + docs: The user credited for this application. + screening_question_answers: optional> + current_stage: + type: optional + docs: The application's current stage. + reject_reason: + type: optional + docs: The application's reason for rejection. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + ApplicationRequestCandidate: + discriminated: false + docs: The candidate applying. + union: + - type: string + validation: + format: uuid + - Candidate + source: + openapi: openapi/openapi.yml + inline: true + ApplicationRequestJob: + discriminated: false + docs: The job being applied for. + union: + - type: string + validation: + format: uuid + - Job + source: + openapi: openapi/openapi.yml + inline: true + ApplicationRequestOffersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Offer + source: + openapi: openapi/openapi.yml + inline: true + ApplicationRequestCreditedTo: + discriminated: false + docs: The user credited for this application. + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: openapi/openapi.yml + inline: true + ApplicationRequestScreeningQuestionAnswersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - ScreeningQuestionAnswerRequest + source: + openapi: openapi/openapi.yml + inline: true + ApplicationRequestCurrentStage: + discriminated: false + docs: The application's current stage. + union: + - type: string + validation: + format: uuid + - JobInterviewStage + source: + openapi: openapi/openapi.yml + inline: true + ApplicationRequestRejectReason: + discriminated: false + docs: The application's reason for rejection. + union: + - type: string + validation: + format: uuid + - RejectReason + source: + openapi: openapi/openapi.yml + inline: true + ApplicationRequest: + docs: >- + # The Application Object + + ### Description + + The Application Object is used to represent a candidate's journey through + a particular Job's recruiting process. If a Candidate applies for multiple + Jobs, there will be a separate Application for each Job if the third-party + integration allows it. + + + ### Usage Example + + Fetch from the `LIST Applications` endpoint and filter by `ID` to show all + applications. + properties: + candidate: + type: optional + docs: The candidate applying. + job: + type: optional + docs: The job being applied for. + applied_at: + type: optional + docs: When the application was submitted. + rejected_at: + type: optional + docs: When the application was rejected. + offers: optional>> + source: + type: optional + docs: The application's source. + credited_to: + type: optional + docs: The user credited for this application. + screening_question_answers: optional> + current_stage: + type: optional + docs: The application's current stage. + reject_reason: + type: optional + docs: The application's reason for rejection. + remote_template_id: + type: optional + validation: + minLength: 1 + access: write-only + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + ApplicationResponse: + properties: + model: Application + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + AsyncPassthroughReciept: + properties: + async_passthrough_receipt_id: + type: string + validation: + format: uuid + source: + openapi: openapi/openapi.yml + AttachmentAttachmentType: + discriminated: false + docs: |- + The attachment's type. + + * `RESUME` - RESUME + * `COVER_LETTER` - COVER_LETTER + * `OFFER_LETTER` - OFFER_LETTER + * `OTHER` - OTHER + union: + - AttachmentTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Attachment: + docs: >- + # The Attachment Object + + ### Description + + The `Attachment` object is used to represent a file attached to a + candidate. + + ### Usage Example + + Fetch from the `LIST Attachments` endpoint and view attachments accessible + by a company. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + file_name: + type: optional + docs: The attachment's name. + file_url: + type: optional + docs: The attachment's url. + validation: + format: uri + maxLength: 2000 + candidate: + type: optional + docs: '' + validation: + format: uuid + attachment_type: + type: optional + docs: |- + The attachment's type. + + * `RESUME` - RESUME + * `COVER_LETTER` - COVER_LETTER + * `OFFER_LETTER` - OFFER_LETTER + * `OTHER` - OTHER + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + AttachmentRequestAttachmentType: + discriminated: false + docs: |- + The attachment's type. + + * `RESUME` - RESUME + * `COVER_LETTER` - COVER_LETTER + * `OFFER_LETTER` - OFFER_LETTER + * `OTHER` - OTHER + union: + - AttachmentTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AttachmentRequest: + docs: >- + # The Attachment Object + + ### Description + + The `Attachment` object is used to represent a file attached to a + candidate. + + ### Usage Example + + Fetch from the `LIST Attachments` endpoint and view attachments accessible + by a company. + properties: + file_name: + type: optional + docs: The attachment's name. + file_url: + type: optional + docs: The attachment's url. + validation: + format: uri + maxLength: 2000 + candidate: + type: optional + docs: '' + validation: + format: uuid + attachment_type: + type: optional + docs: |- + The attachment's type. + + * `RESUME` - RESUME + * `COVER_LETTER` - COVER_LETTER + * `OFFER_LETTER` - OFFER_LETTER + * `OTHER` - OTHER + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + AttachmentResponse: + properties: + model: Attachment + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + AttachmentTypeEnum: + enum: + - RESUME + - COVER_LETTER + - OFFER_LETTER + - OTHER + docs: |- + * `RESUME` - RESUME + * `COVER_LETTER` - COVER_LETTER + * `OFFER_LETTER` - OFFER_LETTER + * `OTHER` - OTHER + source: + openapi: openapi/openapi.yml + AuditLogEventRole: + discriminated: false + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by a + user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + union: + - RoleEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AuditLogEventEventType: + discriminated: false + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + union: + - EventTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AuditLogEvent: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + user_name: + type: optional + docs: The User's full name at the time of this Event occurring. + validation: + maxLength: 200 + user_email: + type: optional + docs: The User's email at the time of this Event occurring. + validation: + format: email + maxLength: 254 + role: + type: AuditLogEventRole + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by + a user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + ip_address: + type: string + validation: + maxLength: 45 + event_type: + type: AuditLogEventEventType + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - + CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - + DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + event_description: string + created_at: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + AvailableActions: + docs: >- + # The AvailableActions Object + + ### Description + + The `Activity` object is used to see all available model/operation + combinations for an integration. + + + ### Usage Example + + Fetch all the actions available for the `Zenefits` integration. + properties: + integration: AccountIntegration + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: openapi/openapi.yml + CandidateApplicationsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Application + source: + openapi: openapi/openapi.yml + inline: true + CandidateAttachmentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Attachment + source: + openapi: openapi/openapi.yml + inline: true + Candidate: + docs: >- + # The Candidate Object + + ### Description + + The `Candidate` object is used to represent profile information about a + given Candidate. Because it is specific to a Candidate, this information + stays constant across applications. + + ### Usage Example + + Fetch from the `LIST Candidates` endpoint and filter by `ID` to show all + candidates. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + first_name: + type: optional + docs: The candidate's first name. + last_name: + type: optional + docs: The candidate's last name. + company: + type: optional + docs: The candidate's current company. + title: + type: optional + docs: The candidate's current title. + remote_created_at: + type: optional + docs: When the third party's candidate was created. + remote_updated_at: + type: optional + docs: When the third party's candidate was updated. + last_interaction_at: + type: optional + docs: When the most recent interaction with the candidate occurred. + is_private: + type: optional + docs: Whether or not the candidate is private. + can_email: + type: optional + docs: Whether or not the candidate can be emailed. + locations: + type: optional>> + docs: The candidate's locations. + phone_numbers: optional> + email_addresses: optional> + urls: optional> + tags: + type: optional>> + docs: Array of `Tag` names as strings. + applications: + type: optional>> + docs: Array of `Application` object IDs. + attachments: + type: optional>> + docs: Array of `Attachment` object IDs. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + CandidateRequestApplicationsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Application + source: + openapi: openapi/openapi.yml + inline: true + CandidateRequestAttachmentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Attachment + source: + openapi: openapi/openapi.yml + inline: true + CandidateRequest: + docs: >- + # The Candidate Object + + ### Description + + The `Candidate` object is used to represent profile information about a + given Candidate. Because it is specific to a Candidate, this information + stays constant across applications. + + ### Usage Example + + Fetch from the `LIST Candidates` endpoint and filter by `ID` to show all + candidates. + properties: + first_name: + type: optional + docs: The candidate's first name. + last_name: + type: optional + docs: The candidate's last name. + company: + type: optional + docs: The candidate's current company. + title: + type: optional + docs: The candidate's current title. + last_interaction_at: + type: optional + docs: When the most recent interaction with the candidate occurred. + is_private: + type: optional + docs: Whether or not the candidate is private. + can_email: + type: optional + docs: Whether or not the candidate can be emailed. + locations: + type: optional>> + docs: The candidate's locations. + phone_numbers: optional> + email_addresses: optional> + urls: optional> + tags: + type: optional>> + docs: Array of `Tag` names as strings. + applications: + type: optional>> + docs: Array of `Application` object IDs. + attachments: + type: optional>> + docs: Array of `Attachment` object IDs. + remote_template_id: + type: optional + validation: + minLength: 1 + access: write-only + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + CandidateResponse: + properties: + model: Candidate + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + CategoriesEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: openapi/openapi.yml + CategoryEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: openapi/openapi.yml + CommonModelScopeApi: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + source: + openapi: openapi/openapi.yml + CommonModelScopesBodyRequest: + properties: + model_id: + type: string + validation: + minLength: 1 + enabled_actions: list + disabled_fields: list + source: + openapi: openapi/openapi.yml + DataPassthroughRequest: + docs: >- + # The DataPassthrough Object + + ### Description + + The `DataPassthrough` object is used to send information to an + otherwise-unsupported third-party endpoint. + + + ### Usage Example + + Create a `DataPassthrough` to get team hierarchies from your Rippling + integration. + properties: + method: MethodEnum + path: + type: string + docs: The path of the request in the third party's platform. + validation: + minLength: 1 + base_url_override: + type: optional + docs: An optional override of the third party's base url for the request. + validation: + minLength: 1 + data: + type: optional + docs: >- + The data with the request. You must include a `request_format` + parameter matching the data's format + validation: + minLength: 1 + multipart_form_data: + type: optional> + docs: >- + Pass an array of `MultipartFormField` objects in here instead of using + the `data` param if `request_format` is set to `MULTIPART`. + headers: + type: optional> + docs: >- + The headers to use for the request (Merge will handle the account's + authorization headers). `Content-Type` header is required for + passthrough. Choose content type corresponding to expected format of + receiving server. + request_format: optional + normalize_response: + type: optional + docs: >- + Optional. If true, the response will always be an object of the form + `{"type": T, "value": ...}` where `T` will be one of `string, boolean, + number, null, array, object`. + source: + openapi: openapi/openapi.yml + DebugModeLog: + properties: + log_id: string + dashboard_view: string + log_summary: DebugModelLogSummary + source: + openapi: openapi/openapi.yml + DebugModelLogSummary: + properties: + url: string + method: string + status_code: integer + source: + openapi: openapi/openapi.yml + Department: + docs: >- + # The Department Object + + ### Description + + The `Department` object is used to represent a department within a + company. + + ### Usage Example + + Fetch from the `LIST Departments` endpoint and view the departments within + a company. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The department's name. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + DisabilityStatusEnum: + enum: + - YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY + - NO_I_DONT_HAVE_A_DISABILITY + - I_DONT_WISH_TO_ANSWER + docs: >- + * `YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY` - + YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY + + * `NO_I_DONT_HAVE_A_DISABILITY` - NO_I_DONT_HAVE_A_DISABILITY + + * `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER + source: + openapi: openapi/openapi.yml + EeocCandidate: + discriminated: false + docs: The candidate being represented. + union: + - type: string + validation: + format: uuid + - Candidate + source: + openapi: openapi/openapi.yml + inline: true + EeocRace: + discriminated: false + docs: >- + The candidate's race. + + + * `AMERICAN_INDIAN_OR_ALASKAN_NATIVE` - AMERICAN_INDIAN_OR_ALASKAN_NATIVE + + * `ASIAN` - ASIAN + + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + + * `WHITE` - WHITE + + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - + NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + + * `DECLINE_TO_SELF_IDENTIFY` - DECLINE_TO_SELF_IDENTIFY + union: + - RaceEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EeocGender: + discriminated: false + docs: |- + The candidate's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `DECLINE_TO_SELF_IDENTIFY` - DECLINE_TO_SELF_IDENTIFY + union: + - GenderEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EeocVeteranStatus: + discriminated: false + docs: >- + The candidate's veteran status. + + + * `I_AM_NOT_A_PROTECTED_VETERAN` - I_AM_NOT_A_PROTECTED_VETERAN + + * + `I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN` + - I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN + + * `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER + union: + - VeteranStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EeocDisabilityStatus: + discriminated: false + docs: >- + The candidate's disability status. + + + * `YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY` - + YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY + + * `NO_I_DONT_HAVE_A_DISABILITY` - NO_I_DONT_HAVE_A_DISABILITY + + * `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER + union: + - DisabilityStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Eeoc: + docs: >- + # The EEOC Object + + ### Description + + The `EEOC` object is used to represent the Equal Employment Opportunity + Commission information for a candidate (race, gender, veteran status, + disability status). + + ### Usage Example + + Fetch from the `LIST EEOCs` endpoint and filter by `candidate` to show all + EEOC information for a candidate. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + candidate: + type: optional + docs: The candidate being represented. + submitted_at: + type: optional + docs: When the information was submitted. + race: + type: optional + docs: >- + The candidate's race. + + + * `AMERICAN_INDIAN_OR_ALASKAN_NATIVE` - + AMERICAN_INDIAN_OR_ALASKAN_NATIVE + + * `ASIAN` - ASIAN + + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + + * `WHITE` - WHITE + + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - + NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + + * `DECLINE_TO_SELF_IDENTIFY` - DECLINE_TO_SELF_IDENTIFY + gender: + type: optional + docs: |- + The candidate's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `DECLINE_TO_SELF_IDENTIFY` - DECLINE_TO_SELF_IDENTIFY + veteran_status: + type: optional + docs: >- + The candidate's veteran status. + + + * `I_AM_NOT_A_PROTECTED_VETERAN` - I_AM_NOT_A_PROTECTED_VETERAN + + * + `I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN` + - + I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN + + * `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER + disability_status: + type: optional + docs: >- + The candidate's disability status. + + + * `YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY` - + YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY + + * `NO_I_DONT_HAVE_A_DISABILITY` - NO_I_DONT_HAVE_A_DISABILITY + + * `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + EmailAddressEmailAddressType: + discriminated: false + docs: |- + The type of email address. + + * `PERSONAL` - PERSONAL + * `WORK` - WORK + * `OTHER` - OTHER + union: + - EmailAddressTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EmailAddress: + docs: >- + # The EmailAddress Object + + ### Description + + The `EmailAddress` object is used to represent a candidate's email + address. + + ### Usage Example + + Fetch from the `GET Candidate` endpoint and view their email addresses. + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + value: + type: optional + docs: The email address. + validation: + format: email + maxLength: 254 + email_address_type: + type: optional + docs: |- + The type of email address. + + * `PERSONAL` - PERSONAL + * `WORK` - WORK + * `OTHER` - OTHER + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: openapi/openapi.yml + EmailAddressRequestEmailAddressType: + discriminated: false + docs: |- + The type of email address. + + * `PERSONAL` - PERSONAL + * `WORK` - WORK + * `OTHER` - OTHER + union: + - EmailAddressTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EmailAddressRequest: + docs: >- + # The EmailAddress Object + + ### Description + + The `EmailAddress` object is used to represent a candidate's email + address. + + ### Usage Example + + Fetch from the `GET Candidate` endpoint and view their email addresses. + properties: + value: + type: optional + docs: The email address. + validation: + format: email + maxLength: 254 + email_address_type: + type: optional + docs: |- + The type of email address. + + * `PERSONAL` - PERSONAL + * `WORK` - WORK + * `OTHER` - OTHER + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + EmailAddressTypeEnum: + enum: + - PERSONAL + - WORK + - OTHER + docs: |- + * `PERSONAL` - PERSONAL + * `WORK` - WORK + * `OTHER` - OTHER + source: + openapi: openapi/openapi.yml + EnabledActionsEnum: + enum: + - READ + - WRITE + docs: |- + * `READ` - READ + * `WRITE` - WRITE + source: + openapi: openapi/openapi.yml + EncodingEnum: + enum: + - RAW + - BASE64 + - GZIP_BASE64 + docs: |- + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + source: + openapi: openapi/openapi.yml + ErrorValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: openapi/openapi.yml + EventTypeEnum: + enum: + - CREATED_REMOTE_PRODUCTION_API_KEY + - DELETED_REMOTE_PRODUCTION_API_KEY + - CREATED_TEST_API_KEY + - DELETED_TEST_API_KEY + - REGENERATED_PRODUCTION_API_KEY + - INVITED_USER + - TWO_FACTOR_AUTH_ENABLED + - TWO_FACTOR_AUTH_DISABLED + - DELETED_LINKED_ACCOUNT + - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + - CREATED_DESTINATION + - DELETED_DESTINATION + - CHANGED_DESTINATION + - CHANGED_SCOPES + - CHANGED_PERSONAL_INFORMATION + - CHANGED_ORGANIZATION_SETTINGS + - ENABLED_INTEGRATION + - DISABLED_INTEGRATION + - ENABLED_CATEGORY + - DISABLED_CATEGORY + - CHANGED_PASSWORD + - RESET_PASSWORD + - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - FORCED_LINKED_ACCOUNT_RESYNC + - MUTED_ISSUE + - GENERATED_MAGIC_LINK + - ENABLED_MERGE_WEBHOOK + - DISABLED_MERGE_WEBHOOK + - MERGE_WEBHOOK_TARGET_CHANGED + - END_USER_CREDENTIALS_ACCESSED + docs: >- + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + source: + openapi: openapi/openapi.yml + ExternalTargetFieldApi: + properties: + name: + type: optional + access: read-only + description: + type: optional + access: read-only + is_mapped: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + ExternalTargetFieldApiResponse: + properties: + Activity: optional> + Application: optional> + Attachment: optional> + Candidate: optional> + Department: optional> + EEOC: optional> + ScheduledInterview: optional> + Job: optional> + JobPosting: optional> + JobInterviewStage: optional> + Offer: optional> + Office: optional> + RejectReason: optional> + Scorecard: optional> + Tag: optional> + RemoteUser: optional> + source: + openapi: openapi/openapi.yml + FieldMappingApiInstanceTargetField: + properties: + name: string + description: string + is_organization_wide: boolean + source: + openapi: openapi/openapi.yml + inline: true + FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo: + properties: + method: optional + url_path: optional + field_traversal_path: optional> + source: + openapi: openapi/openapi.yml + inline: true + FieldMappingApiInstanceRemoteField: + properties: + remote_key_name: optional + schema: optional> + remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo + source: + openapi: openapi/openapi.yml + inline: true + FieldMappingApiInstance: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + is_integration_wide: + type: optional + access: read-only + target_field: + type: optional + access: read-only + remote_field: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + FieldMappingApiInstanceResponse: + properties: + Activity: optional> + Application: optional> + Attachment: optional> + Candidate: optional> + Department: optional> + EEOC: optional> + ScheduledInterview: optional> + Job: optional> + JobPosting: optional> + JobInterviewStage: optional> + Offer: optional> + Office: optional> + RejectReason: optional> + Scorecard: optional> + Tag: optional> + RemoteUser: optional> + source: + openapi: openapi/openapi.yml + FieldMappingInstanceResponse: + properties: + model: FieldMappingApiInstance + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + FieldPermissionDeserializer: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: openapi/openapi.yml + FieldPermissionDeserializerRequest: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: openapi/openapi.yml + GenderEnum: + enum: + - MALE + - FEMALE + - value: NON-BINARY + name: NonBinary + - OTHER + - DECLINE_TO_SELF_IDENTIFY + docs: |- + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `DECLINE_TO_SELF_IDENTIFY` - DECLINE_TO_SELF_IDENTIFY + source: + openapi: openapi/openapi.yml + IndividualCommonModelScopeDeserializer: + properties: + model_name: string + model_permissions: optional> + field_permissions: optional + source: + openapi: openapi/openapi.yml + IndividualCommonModelScopeDeserializerRequest: + properties: + model_name: + type: string + validation: + minLength: 1 + model_permissions: optional> + field_permissions: optional + source: + openapi: openapi/openapi.yml + IssueStatus: + discriminated: false + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + union: + - IssueStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Issue: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + error_description: string + end_user: + type: optional> + access: read-only + first_incident_time: optional + last_incident_time: optional + is_muted: + type: optional + access: read-only + error_details: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + IssueStatusEnum: + enum: + - ONGOING + - RESOLVED + docs: |- + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + source: + openapi: openapi/openapi.yml + JobStatus: + discriminated: false + docs: |- + The job's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `DRAFT` - DRAFT + * `ARCHIVED` - ARCHIVED + * `PENDING` - PENDING + union: + - JobStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + JobType: + discriminated: false + docs: |- + The job's type. + + * `POSTING` - POSTING + * `REQUISITION` - REQUISITION + * `PROFILE` - PROFILE + union: + - JobTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + JobDepartmentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Department + source: + openapi: openapi/openapi.yml + inline: true + JobOfficesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Office + source: + openapi: openapi/openapi.yml + inline: true + JobHiringManagersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: openapi/openapi.yml + inline: true + JobRecruitersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: openapi/openapi.yml + inline: true + Job: + docs: >- + # The Job Object + + ### Description + + The `Job` object can be used to track any jobs that are currently or will + be open/closed for applications. + + ### Usage Example + + Fetch from the `LIST Jobs` endpoint to show all job postings. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The job's name. + description: + type: optional + docs: The job's description. + code: + type: optional + docs: >- + The job's code. Typically an additional identifier used to reference + the particular job that is displayed on the ATS. + status: + type: optional + docs: |- + The job's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `DRAFT` - DRAFT + * `ARCHIVED` - ARCHIVED + * `PENDING` - PENDING + type: + type: optional + docs: |- + The job's type. + + * `POSTING` - POSTING + * `REQUISITION` - REQUISITION + * `PROFILE` - PROFILE + job_postings: + type: optional>> + docs: IDs of `JobPosting` objects that serve as job postings for this `Job`. + job_posting_urls: optional> + remote_created_at: + type: optional + docs: When the third party's job was created. + remote_updated_at: + type: optional + docs: When the third party's job was updated. + confidential: + type: optional + docs: Whether the job is confidential. + departments: + type: optional>> + docs: IDs of `Department` objects for this `Job`. + offices: + type: optional>> + docs: IDs of `Office` objects for this `Job`. + hiring_managers: + type: optional>> + docs: >- + IDs of `RemoteUser` objects that serve as hiring managers for this + `Job`. + recruiters: + type: optional>> + docs: IDs of `RemoteUser` objects that serve as recruiters for this `Job`. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + JobInterviewStageJob: + discriminated: false + docs: >- + This field is populated only if the stage is specific to a particular job. + If the stage is generic, this field will not be populated. + union: + - type: string + validation: + format: uuid + - Job + source: + openapi: openapi/openapi.yml + inline: true + JobInterviewStage: + docs: >- + # The JobInterviewStage Object + + ### Description + + The `JobInterviewStage` object is used to represent a particular + recruiting stage for an `Application`. A given `Application` typically has + the `JobInterviewStage` object represented in the current_stage field. + + ### Usage Example + + Fetch from the `LIST JobInterviewStages` endpoint and view the job + interview stages used by a company. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: >- + Standard stage names are offered by ATS systems but can be modified by + users. + job: + type: optional + docs: >- + This field is populated only if the stage is specific to a particular + job. If the stage is generic, this field will not be populated. + stage_order: + type: optional + docs: >- + The stage’s order, with the lowest values ordered first. If the + third-party does not return details on the order of stages, this field + will not be populated. + validation: + min: -2147483648 + max: 2147483647 + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + JobPostingJobPostingUrlsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Url + source: + openapi: openapi/openapi.yml + inline: true + JobPostingJob: + discriminated: false + docs: ID of `Job` object for this `JobPosting`. + union: + - type: string + validation: + format: uuid + - Job + source: + openapi: openapi/openapi.yml + inline: true + JobPostingStatus: + discriminated: false + docs: |- + The job posting's status. + + * `PUBLISHED` - PUBLISHED + * `CLOSED` - CLOSED + * `DRAFT` - DRAFT + * `INTERNAL` - INTERNAL + * `PENDING` - PENDING + union: + - JobPostingStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + JobPosting: + docs: >- + # The JobPosting Object + + ### Description + + The `JobPosting` object represents an external announcement on a job board + created by an organization to attract qualified candidates to apply for a + specific `Job` opening + + ### Usage Example + + Fetch from the `LIST JobPostings` endpoint to show all job postings. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + title: + type: optional + docs: The job posting’s title. + job_posting_urls: + type: optional> + docs: >- + The Url object is used to represent hyperlinks for a candidate to + apply to a given job. + job: + type: optional + docs: ID of `Job` object for this `JobPosting`. + status: + type: optional + docs: |- + The job posting's status. + + * `PUBLISHED` - PUBLISHED + * `CLOSED` - CLOSED + * `DRAFT` - DRAFT + * `INTERNAL` - INTERNAL + * `PENDING` - PENDING + content: + type: optional + docs: The job posting’s content. + remote_created_at: + type: optional + docs: When the third party's job posting was created. + remote_updated_at: + type: optional + docs: When the third party's job posting was updated. + is_internal: + type: optional + docs: Indicates whether the job posting is internal or external. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + JobPostingStatusEnum: + enum: + - PUBLISHED + - CLOSED + - DRAFT + - INTERNAL + - PENDING + docs: |- + * `PUBLISHED` - PUBLISHED + * `CLOSED` - CLOSED + * `DRAFT` - DRAFT + * `INTERNAL` - INTERNAL + * `PENDING` - PENDING + source: + openapi: openapi/openapi.yml + JobStatusEnum: + enum: + - OPEN + - CLOSED + - DRAFT + - ARCHIVED + - PENDING + docs: |- + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `DRAFT` - DRAFT + * `ARCHIVED` - ARCHIVED + * `PENDING` - PENDING + source: + openapi: openapi/openapi.yml + JobTypeEnum: + enum: + - POSTING + - REQUISITION + - PROFILE + docs: |- + * `POSTING` - POSTING + * `REQUISITION` - REQUISITION + * `PROFILE` - PROFILE + source: + openapi: openapi/openapi.yml + LanguageEnum: + enum: + - en + - de + docs: |- + * `en` - en + * `de` - de + source: + openapi: openapi/openapi.yml + LastSyncResultEnum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: openapi/openapi.yml + LinkToken: + properties: + link_token: string + integration_name: optional + magic_link_url: optional + source: + openapi: openapi/openapi.yml + LinkedAccountStatus: + properties: + linked_account_status: string + can_make_request: boolean + source: + openapi: openapi/openapi.yml + MetaResponse: + properties: + request_schema: map + remote_field_classes: optional> + status: optional + has_conditional_params: boolean + has_required_linked_account_params: boolean + source: + openapi: openapi/openapi.yml + MethodEnum: + enum: + - GET + - OPTIONS + - HEAD + - POST + - PUT + - PATCH + - DELETE + docs: |- + * `GET` - GET + * `OPTIONS` - OPTIONS + * `HEAD` - HEAD + * `POST` - POST + * `PUT` - PUT + * `PATCH` - PATCH + * `DELETE` - DELETE + source: + openapi: openapi/openapi.yml + ModelOperation: + docs: >- + # The ModelOperation Object + + ### Description + + The `ModelOperation` object is used to represent the operations that are + currently supported for a given model. + + + ### Usage Example + + View what operations are supported for the `Candidate` endpoint. + properties: + model_name: string + available_operations: list + required_post_parameters: list + supported_fields: list + source: + openapi: openapi/openapi.yml + ModelPermissionDeserializer: + properties: + is_enabled: optional + source: + openapi: openapi/openapi.yml + ModelPermissionDeserializerRequest: + properties: + is_enabled: optional + source: + openapi: openapi/openapi.yml + MultipartFormFieldRequestEncoding: + discriminated: false + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + union: + - EncodingEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + MultipartFormFieldRequest: + docs: >- + # The MultipartFormField Object + + ### Description + + The `MultipartFormField` object is used to represent fields in an HTTP + request using `multipart/form-data`. + + + ### Usage Example + + Create a `MultipartFormField` to define a multipart form entry. + properties: + name: + type: string + docs: The name of the form field + validation: + minLength: 1 + data: + type: string + docs: The data for the form field. + validation: + minLength: 1 + encoding: + type: optional + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + file_name: + type: optional + docs: The file name of the form field, if the field is for a file. + validation: + minLength: 1 + content_type: + type: optional + docs: The MIME type of the file, if the field is for a file. + validation: + minLength: 1 + source: + openapi: openapi/openapi.yml + OfferApplication: + discriminated: false + docs: The application who is receiving the offer. + union: + - type: string + validation: + format: uuid + - Application + source: + openapi: openapi/openapi.yml + inline: true + OfferCreator: + discriminated: false + docs: The user who created the offer. + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: openapi/openapi.yml + inline: true + OfferStatus: + discriminated: false + docs: |- + The offer's status. + + * `DRAFT` - DRAFT + * `APPROVAL-SENT` - APPROVAL-SENT + * `APPROVED` - APPROVED + * `SENT` - SENT + * `SENT-MANUALLY` - SENT-MANUALLY + * `OPENED` - OPENED + * `DENIED` - DENIED + * `SIGNED` - SIGNED + * `DEPRECATED` - DEPRECATED + union: + - OfferStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Offer: + docs: >- + # The Offer Object + + ### Description + + The `Offer` object is used to represent an offer for a candidate's + application specific to a job. + + ### Usage Example + + Fetch from the `LIST Offers` endpoint and filter by `ID` to show all + offers. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + application: + type: optional + docs: The application who is receiving the offer. + creator: + type: optional + docs: The user who created the offer. + remote_created_at: + type: optional + docs: When the third party's offer was created. + closed_at: + type: optional + docs: When the offer was closed. + sent_at: + type: optional + docs: When the offer was sent. + start_date: + type: optional + docs: The employment start date on the offer. + status: + type: optional + docs: |- + The offer's status. + + * `DRAFT` - DRAFT + * `APPROVAL-SENT` - APPROVAL-SENT + * `APPROVED` - APPROVED + * `SENT` - SENT + * `SENT-MANUALLY` - SENT-MANUALLY + * `OPENED` - OPENED + * `DENIED` - DENIED + * `SIGNED` - SIGNED + * `DEPRECATED` - DEPRECATED + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + OfferStatusEnum: + enum: + - DRAFT + - value: APPROVAL-SENT + name: ApprovalSent + - APPROVED + - SENT + - value: SENT-MANUALLY + name: SentManually + - OPENED + - DENIED + - SIGNED + - DEPRECATED + docs: |- + * `DRAFT` - DRAFT + * `APPROVAL-SENT` - APPROVAL-SENT + * `APPROVED` - APPROVED + * `SENT` - SENT + * `SENT-MANUALLY` - SENT-MANUALLY + * `OPENED` - OPENED + * `DENIED` - DENIED + * `SIGNED` - SIGNED + * `DEPRECATED` - DEPRECATED + source: + openapi: openapi/openapi.yml + Office: + docs: >- + # The Office Object + + ### Description + + The `Office` object is used to represent an office within a company. A + given `Job` has the `Office` ID in its offices field. + + ### Usage Example + + Fetch from the `LIST Offices` endpoint and view the offices within a + company. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The office's name. + location: + type: optional + docs: The office's location. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + OverallRecommendationEnum: + enum: + - DEFINITELY_NO + - 'NO' + - 'YES' + - STRONG_YES + - NO_DECISION + docs: |- + * `DEFINITELY_NO` - DEFINITELY_NO + * `NO` - NO + * `YES` - YES + * `STRONG_YES` - STRONG_YES + * `NO_DECISION` - NO_DECISION + source: + openapi: openapi/openapi.yml + PaginatedAccountDetailsAndActionsList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedActivityList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedApplicationList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedAttachmentList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedAuditLogEventList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedCandidateList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedDepartmentList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedEeocList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedIssueList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedJobInterviewStageList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedJobList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedJobPostingList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedOfferList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedOfficeList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedRejectReasonList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedRemoteUserList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedScheduledInterviewList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedScorecardList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedScreeningQuestionList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedSyncStatusList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedTagList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PatchedCandidateRequest: + docs: >- + # The Candidate Object + + ### Description + + The `Candidate` object is used to represent profile information about a + given Candidate. Because it is specific to a Candidate, this information + stays constant across applications. + + ### Usage Example + + Fetch from the `LIST Candidates` endpoint and filter by `ID` to show all + candidates. + properties: + first_name: + type: optional + docs: The candidate's first name. + last_name: + type: optional + docs: The candidate's last name. + company: + type: optional + docs: The candidate's current company. + title: + type: optional + docs: The candidate's current title. + last_interaction_at: + type: optional + docs: When the most recent interaction with the candidate occurred. + is_private: + type: optional + docs: Whether or not the candidate is private. + can_email: + type: optional + docs: Whether or not the candidate can be emailed. + locations: + type: optional>> + docs: The candidate's locations. + phone_numbers: optional> + email_addresses: optional> + urls: optional> + tags: + type: optional>> + docs: Array of `Tag` names as strings. + applications: + type: optional>> + docs: Array of `Application` object IDs. + attachments: + type: optional>> + docs: Array of `Attachment` object IDs. + remote_template_id: + type: optional + validation: + minLength: 1 + access: write-only + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + PhoneNumberPhoneNumberType: + discriminated: false + docs: |- + The type of phone number. + + * `HOME` - HOME + * `WORK` - WORK + * `MOBILE` - MOBILE + * `SKYPE` - SKYPE + * `OTHER` - OTHER + union: + - PhoneNumberTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PhoneNumber: + docs: |- + # The PhoneNumber Object + ### Description + The `PhoneNumber` object is used to represent a candidate's phone number. + ### Usage Example + Fetch from the `GET Candidate` endpoint and view their phone numbers. + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + value: + type: optional + docs: The phone number. + phone_number_type: + type: optional + docs: |- + The type of phone number. + + * `HOME` - HOME + * `WORK` - WORK + * `MOBILE` - MOBILE + * `SKYPE` - SKYPE + * `OTHER` - OTHER + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: openapi/openapi.yml + PhoneNumberRequestPhoneNumberType: + discriminated: false + docs: |- + The type of phone number. + + * `HOME` - HOME + * `WORK` - WORK + * `MOBILE` - MOBILE + * `SKYPE` - SKYPE + * `OTHER` - OTHER + union: + - PhoneNumberTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PhoneNumberRequest: + docs: |- + # The PhoneNumber Object + ### Description + The `PhoneNumber` object is used to represent a candidate's phone number. + ### Usage Example + Fetch from the `GET Candidate` endpoint and view their phone numbers. + properties: + value: + type: optional + docs: The phone number. + phone_number_type: + type: optional + docs: |- + The type of phone number. + + * `HOME` - HOME + * `WORK` - WORK + * `MOBILE` - MOBILE + * `SKYPE` - SKYPE + * `OTHER` - OTHER + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + PhoneNumberTypeEnum: + enum: + - HOME + - WORK + - MOBILE + - SKYPE + - OTHER + docs: |- + * `HOME` - HOME + * `WORK` - WORK + * `MOBILE` - MOBILE + * `SKYPE` - SKYPE + * `OTHER` - OTHER + source: + openapi: openapi/openapi.yml + RaceEnum: + enum: + - AMERICAN_INDIAN_OR_ALASKAN_NATIVE + - ASIAN + - BLACK_OR_AFRICAN_AMERICAN + - HISPANIC_OR_LATINO + - WHITE + - NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + - TWO_OR_MORE_RACES + - DECLINE_TO_SELF_IDENTIFY + docs: >- + * `AMERICAN_INDIAN_OR_ALASKAN_NATIVE` - AMERICAN_INDIAN_OR_ALASKAN_NATIVE + + * `ASIAN` - ASIAN + + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + + * `WHITE` - WHITE + + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - + NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + + * `DECLINE_TO_SELF_IDENTIFY` - DECLINE_TO_SELF_IDENTIFY + source: + openapi: openapi/openapi.yml + ReasonEnum: + enum: + - GENERAL_CUSTOMER_REQUEST + - GDPR + - OTHER + docs: |- + * `GENERAL_CUSTOMER_REQUEST` - GENERAL_CUSTOMER_REQUEST + * `GDPR` - GDPR + * `OTHER` - OTHER + source: + openapi: openapi/openapi.yml + RejectReason: + docs: >- + # The RejectReason Object + + ### Description + + The `RejectReason` object is used to represent a reason for rejecting an + application. These can typically be configured within an ATS system. + + ### Usage Example + + Fetch from the `LIST RejectReasons` endpoint and filter by `ID` to show + all reasons. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The rejection reason’s name. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + RemoteData: + docs: >- + # The RemoteData Object + + ### Description + + The `RemoteData` object is used to represent the full data pulled from the + third-party API for an object. + + + ### Usage Example + + TODO + properties: + path: + type: string + docs: The third-party API path that is being called. + data: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + RemoteEndpointInfo: + properties: + method: string + url_path: string + field_traversal_path: list + source: + openapi: openapi/openapi.yml + RemoteFieldApiCoverage: + discriminated: false + union: + - integer + - double + source: + openapi: openapi/openapi.yml + inline: true + RemoteFieldApi: + properties: + schema: map + remote_key_name: string + remote_endpoint_info: RemoteEndpointInfo + example_values: optional> + advanced_metadata: optional + coverage: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + RemoteFieldApiResponse: + properties: + Activity: optional> + Application: optional> + Attachment: optional> + Candidate: optional> + Department: optional> + EEOC: optional> + ScheduledInterview: optional> + Job: optional> + JobPosting: optional> + JobInterviewStage: optional> + Offer: optional> + Office: optional> + RejectReason: optional> + Scorecard: optional> + Tag: optional> + RemoteUser: optional> + source: + openapi: openapi/openapi.yml + RemoteKey: + docs: >- + # The RemoteKey Object + + ### Description + + The `RemoteKey` object is used to represent a request for a new remote + key. + + + ### Usage Example + + Post a `GenerateRemoteKey` to receive a new `RemoteKey`. + properties: + name: string + key: string + source: + openapi: openapi/openapi.yml + RemoteResponseResponseType: + discriminated: false + union: + - ResponseTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + RemoteResponse: + docs: >- + # The RemoteResponse Object + + ### Description + + The `RemoteResponse` object is used to represent information returned from + a third-party endpoint. + + + ### Usage Example + + View the `RemoteResponse` returned from your `DataPassthrough`. + properties: + method: string + path: string + status: integer + response: unknown + response_headers: optional> + response_type: optional + headers: optional> + source: + openapi: openapi/openapi.yml + RemoteUserAccessRole: + discriminated: false + docs: |- + The user's role. + + * `SUPER_ADMIN` - SUPER_ADMIN + * `ADMIN` - ADMIN + * `TEAM_MEMBER` - TEAM_MEMBER + * `LIMITED_TEAM_MEMBER` - LIMITED_TEAM_MEMBER + * `INTERVIEWER` - INTERVIEWER + union: + - AccessRoleEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + RemoteUser: + docs: >- + # The RemoteUser Object + + ### Description + + The `RemoteUser` object is used to represent a user with a login to the + ATS system. + + ### Usage Example + + Fetch from the `LIST RemoteUsers` endpoint to show all users for a third + party. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + first_name: + type: optional + docs: The user's first name. + last_name: + type: optional + docs: The user's last name. + email: + type: optional + docs: The user's email. + validation: + format: email + maxLength: 254 + disabled: + type: optional + docs: Whether the user's account had been disabled. + remote_created_at: + type: optional + docs: When the third party's user was created. + access_role: + type: optional + docs: |- + The user's role. + + * `SUPER_ADMIN` - SUPER_ADMIN + * `ADMIN` - ADMIN + * `TEAM_MEMBER` - TEAM_MEMBER + * `LIMITED_TEAM_MEMBER` - LIMITED_TEAM_MEMBER + * `INTERVIEWER` - INTERVIEWER + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + RequestFormatEnum: + enum: + - JSON + - XML + - MULTIPART + docs: |- + * `JSON` - JSON + * `XML` - XML + * `MULTIPART` - MULTIPART + source: + openapi: openapi/openapi.yml + ResponseTypeEnum: + enum: + - JSON + - BASE64_GZIP + docs: |- + * `JSON` - JSON + * `BASE64_GZIP` - BASE64_GZIP + source: + openapi: openapi/openapi.yml + RoleEnum: + enum: + - ADMIN + - DEVELOPER + - MEMBER + - API + - SYSTEM + - MERGE_TEAM + docs: |- + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + source: + openapi: openapi/openapi.yml + ScheduledInterviewApplication: + discriminated: false + docs: The application being interviewed. + union: + - type: string + validation: + format: uuid + - Application + source: + openapi: openapi/openapi.yml + inline: true + ScheduledInterviewJobInterviewStage: + discriminated: false + docs: The stage of the interview. + union: + - type: string + validation: + format: uuid + - JobInterviewStage + source: + openapi: openapi/openapi.yml + inline: true + ScheduledInterviewOrganizer: + discriminated: false + docs: The user organizing the interview. + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: openapi/openapi.yml + inline: true + ScheduledInterviewInterviewersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: openapi/openapi.yml + inline: true + ScheduledInterviewStatus: + discriminated: false + docs: |- + The interview's status. + + * `SCHEDULED` - SCHEDULED + * `AWAITING_FEEDBACK` - AWAITING_FEEDBACK + * `COMPLETE` - COMPLETE + union: + - ScheduledInterviewStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + ScheduledInterview: + docs: >- + # The ScheduledInterview Object + + ### Description + + The `ScheduledInterview` object is used to represent a scheduled interview + for a given candidate’s application to a job. An `Application` can have + multiple `ScheduledInterview`s depending on the particular hiring process. + + ### Usage Example + + Fetch from the `LIST ScheduledInterviews` endpoint and filter by + `interviewers` to show all office locations. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + application: + type: optional + docs: The application being interviewed. + job_interview_stage: + type: optional + docs: The stage of the interview. + organizer: + type: optional + docs: The user organizing the interview. + interviewers: + type: optional>> + docs: Array of `RemoteUser` IDs. + location: + type: optional + docs: The interview's location. + start_at: + type: optional + docs: When the interview was started. + end_at: + type: optional + docs: When the interview was ended. + remote_created_at: + type: optional + docs: When the third party's interview was created. + remote_updated_at: + type: optional + docs: When the third party's interview was updated. + status: + type: optional + docs: |- + The interview's status. + + * `SCHEDULED` - SCHEDULED + * `AWAITING_FEEDBACK` - AWAITING_FEEDBACK + * `COMPLETE` - COMPLETE + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + ScheduledInterviewRequestApplication: + discriminated: false + docs: The application being interviewed. + union: + - type: string + validation: + format: uuid + - Application + source: + openapi: openapi/openapi.yml + inline: true + ScheduledInterviewRequestJobInterviewStage: + discriminated: false + docs: The stage of the interview. + union: + - type: string + validation: + format: uuid + - JobInterviewStage + source: + openapi: openapi/openapi.yml + inline: true + ScheduledInterviewRequestOrganizer: + discriminated: false + docs: The user organizing the interview. + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: openapi/openapi.yml + inline: true + ScheduledInterviewRequestInterviewersItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: openapi/openapi.yml + inline: true + ScheduledInterviewRequestStatus: + discriminated: false + docs: |- + The interview's status. + + * `SCHEDULED` - SCHEDULED + * `AWAITING_FEEDBACK` - AWAITING_FEEDBACK + * `COMPLETE` - COMPLETE + union: + - ScheduledInterviewStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + ScheduledInterviewRequest: + docs: >- + # The ScheduledInterview Object + + ### Description + + The `ScheduledInterview` object is used to represent a scheduled interview + for a given candidate’s application to a job. An `Application` can have + multiple `ScheduledInterview`s depending on the particular hiring process. + + ### Usage Example + + Fetch from the `LIST ScheduledInterviews` endpoint and filter by + `interviewers` to show all office locations. + properties: + application: + type: optional + docs: The application being interviewed. + job_interview_stage: + type: optional + docs: The stage of the interview. + organizer: + type: optional + docs: The user organizing the interview. + interviewers: + type: optional>> + docs: Array of `RemoteUser` IDs. + location: + type: optional + docs: The interview's location. + start_at: + type: optional + docs: When the interview was started. + end_at: + type: optional + docs: When the interview was ended. + status: + type: optional + docs: |- + The interview's status. + + * `SCHEDULED` - SCHEDULED + * `AWAITING_FEEDBACK` - AWAITING_FEEDBACK + * `COMPLETE` - COMPLETE + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + ScheduledInterviewResponse: + properties: + model: ScheduledInterview + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + ScheduledInterviewStatusEnum: + enum: + - SCHEDULED + - AWAITING_FEEDBACK + - COMPLETE + docs: |- + * `SCHEDULED` - SCHEDULED + * `AWAITING_FEEDBACK` - AWAITING_FEEDBACK + * `COMPLETE` - COMPLETE + source: + openapi: openapi/openapi.yml + ScorecardApplication: + discriminated: false + docs: The application being scored. + union: + - type: string + validation: + format: uuid + - Application + source: + openapi: openapi/openapi.yml + inline: true + ScorecardInterview: + discriminated: false + docs: The interview being scored. + union: + - type: string + validation: + format: uuid + - ScheduledInterview + source: + openapi: openapi/openapi.yml + inline: true + ScorecardInterviewer: + discriminated: false + docs: The interviewer doing the scoring. + union: + - type: string + validation: + format: uuid + - RemoteUser + source: + openapi: openapi/openapi.yml + inline: true + ScorecardOverallRecommendation: + discriminated: false + docs: |- + The inteviewer's recommendation. + + * `DEFINITELY_NO` - DEFINITELY_NO + * `NO` - NO + * `YES` - YES + * `STRONG_YES` - STRONG_YES + * `NO_DECISION` - NO_DECISION + union: + - OverallRecommendationEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Scorecard: + docs: >- + # The Scorecard Object + + ### Description + + The `Scorecard` object is used to represent an interviewer's candidate + recommendation based on a particular interview. + + ### Usage Example + + Fetch from the `LIST Scorecards` endpoint and filter by `application` to + show all scorecard for an applicant. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + application: + type: optional + docs: The application being scored. + interview: + type: optional + docs: The interview being scored. + interviewer: + type: optional + docs: The interviewer doing the scoring. + remote_created_at: + type: optional + docs: When the third party's scorecard was created. + submitted_at: + type: optional + docs: When the scorecard was submitted. + overall_recommendation: + type: optional + docs: |- + The inteviewer's recommendation. + + * `DEFINITELY_NO` - DEFINITELY_NO + * `NO` - NO + * `YES` - YES + * `STRONG_YES` - STRONG_YES + * `NO_DECISION` - NO_DECISION + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + ScreeningQuestionJob: + discriminated: false + docs: The job associated with the screening question. + union: + - type: string + validation: + format: uuid + - Job + source: + openapi: openapi/openapi.yml + inline: true + ScreeningQuestionType: + discriminated: false + docs: |- + The data type for the screening question. + + * `DATE` - DATE + * `FILE` - FILE + * `SINGLE_SELECT` - SINGLE_SELECT + * `MULTI_SELECT` - MULTI_SELECT + * `SINGLE_LINE_TEXT` - SINGLE_LINE_TEXT + * `MULTI_LINE_TEXT` - MULTI_LINE_TEXT + * `NUMERIC` - NUMERIC + * `BOOLEAN` - BOOLEAN + union: + - ScreeningQuestionTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + ScreeningQuestion: + docs: >- + # The ScreeningQuestion Object + + ### Description + + The `ScreeningQuestion` object is used to represent questions asked to + screen candidates for a job. + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + job: + type: optional + docs: The job associated with the screening question. + description: + type: optional + docs: The description of the screening question + validation: + maxLength: 500 + title: + type: optional + docs: The title of the screening question + validation: + maxLength: 2500 + type: + type: optional + docs: |- + The data type for the screening question. + + * `DATE` - DATE + * `FILE` - FILE + * `SINGLE_SELECT` - SINGLE_SELECT + * `MULTI_SELECT` - MULTI_SELECT + * `SINGLE_LINE_TEXT` - SINGLE_LINE_TEXT + * `MULTI_LINE_TEXT` - MULTI_LINE_TEXT + * `NUMERIC` - NUMERIC + * `BOOLEAN` - BOOLEAN + required: + type: optional + docs: Whether or not the screening question is required. + options: optional> + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + source: + openapi: openapi/openapi.yml + ScreeningQuestionAnswerQuestion: + discriminated: false + docs: >- + The screening question associated with the candidate’s answer. To + determine the data type of the answer, you can expand on the screening + question by adding `screening_question_answers.question` to the `expand` + query parameter. + union: + - type: string + validation: + format: uuid + - ScreeningQuestion + source: + openapi: openapi/openapi.yml + inline: true + ScreeningQuestionAnswer: + docs: >- + # The ScreeningQuestionAnswer Object + + ### Description + + The `ScreeningQuestionAnswer` object is used to represent candidate + responses to a screening question, for a specific application. + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + question: + type: optional + docs: >- + The screening question associated with the candidate’s answer. To + determine the data type of the answer, you can expand on the screening + question by adding `screening_question_answers.question` to the + `expand` query parameter. + answer: + type: optional + docs: The candidate’s response to the screening question. + validation: + maxLength: 10000 + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: openapi/openapi.yml + ScreeningQuestionAnswerRequestQuestion: + discriminated: false + docs: >- + The screening question associated with the candidate’s answer. To + determine the data type of the answer, you can expand on the screening + question by adding `screening_question_answers.question` to the `expand` + query parameter. + union: + - type: string + validation: + format: uuid + - ScreeningQuestion + source: + openapi: openapi/openapi.yml + inline: true + ScreeningQuestionAnswerRequest: + docs: >- + # The ScreeningQuestionAnswer Object + + ### Description + + The `ScreeningQuestionAnswer` object is used to represent candidate + responses to a screening question, for a specific application. + + + ### Usage Example + + TODO + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + question: + type: optional + docs: >- + The screening question associated with the candidate’s answer. To + determine the data type of the answer, you can expand on the screening + question by adding `screening_question_answers.question` to the + `expand` query parameter. + answer: + type: optional + docs: The candidate’s response to the screening question. + validation: + maxLength: 10000 + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + ScreeningQuestionOption: + docs: >- + # The ScreeningQuestionOption Object + + ### Description + + The `ScreeningQuestionOption` object is used to represent options for a + `ScreeningQuestion` object + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + label: + type: optional + docs: Available response options + validation: + maxLength: 300 + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + source: + openapi: openapi/openapi.yml + ScreeningQuestionTypeEnum: + enum: + - DATE + - FILE + - SINGLE_SELECT + - MULTI_SELECT + - SINGLE_LINE_TEXT + - MULTI_LINE_TEXT + - NUMERIC + - BOOLEAN + docs: |- + * `DATE` - DATE + * `FILE` - FILE + * `SINGLE_SELECT` - SINGLE_SELECT + * `MULTI_SELECT` - MULTI_SELECT + * `SINGLE_LINE_TEXT` - SINGLE_LINE_TEXT + * `MULTI_LINE_TEXT` - MULTI_LINE_TEXT + * `NUMERIC` - NUMERIC + * `BOOLEAN` - BOOLEAN + source: + openapi: openapi/openapi.yml + SelectiveSyncConfigurationsUsageEnum: + enum: + - IN_NEXT_SYNC + - IN_LAST_SYNC + docs: |- + * `IN_NEXT_SYNC` - IN_NEXT_SYNC + * `IN_LAST_SYNC` - IN_LAST_SYNC + source: + openapi: openapi/openapi.yml + StatusFd5Enum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: openapi/openapi.yml + SyncStatusLastSyncResult: + discriminated: false + union: + - LastSyncResultEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + SyncStatusStatus: + discriminated: false + union: + - StatusFd5Enum + - string + source: + openapi: openapi/openapi.yml + inline: true + SyncStatus: + docs: >- + # The SyncStatus Object + + ### Description + + The `SyncStatus` object is used to represent the syncing state of an + account + + + ### Usage Example + + View the `SyncStatus` for an account to see how recently its models were + synced. + properties: + model_name: string + model_id: string + last_sync_start: optional + next_sync_start: optional + last_sync_result: optional + last_sync_finished: optional + status: SyncStatusStatus + is_initial_sync: boolean + selective_sync_configurations_usage: optional + source: + openapi: openapi/openapi.yml + Tag: + docs: >- + # The Tag Object + + ### Description + + The `Tag` object is used to represent a tag for a candidate. + + ### Usage Example + + Fetch from the `LIST Tags` endpoint and view the tags used within a + company. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The tag's name. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: optional>>> + source: + openapi: openapi/openapi.yml + UrlUrlType: + discriminated: false + docs: |- + The type of site. + + * `PERSONAL` - PERSONAL + * `COMPANY` - COMPANY + * `PORTFOLIO` - PORTFOLIO + * `BLOG` - BLOG + * `SOCIAL_MEDIA` - SOCIAL_MEDIA + * `OTHER` - OTHER + * `JOB_POSTING` - JOB_POSTING + union: + - UrlTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Url: + docs: >- + # The Url Object + + ### Description + + The `Url` object is used to represent hyperlinks associated with the + parent model. + + ### Usage Example + + Fetch from the `GET Candidate` endpoint and view their website urls. + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + value: + type: optional + docs: The site's url. + validation: + format: uri + maxLength: 2000 + url_type: + type: optional + docs: |- + The type of site. + + * `PERSONAL` - PERSONAL + * `COMPANY` - COMPANY + * `PORTFOLIO` - PORTFOLIO + * `BLOG` - BLOG + * `SOCIAL_MEDIA` - SOCIAL_MEDIA + * `OTHER` - OTHER + * `JOB_POSTING` - JOB_POSTING + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + source: + openapi: openapi/openapi.yml + UrlRequestUrlType: + discriminated: false + docs: |- + The type of site. + + * `PERSONAL` - PERSONAL + * `COMPANY` - COMPANY + * `PORTFOLIO` - PORTFOLIO + * `BLOG` - BLOG + * `SOCIAL_MEDIA` - SOCIAL_MEDIA + * `OTHER` - OTHER + * `JOB_POSTING` - JOB_POSTING + union: + - UrlTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + UrlRequest: + docs: >- + # The Url Object + + ### Description + + The `Url` object is used to represent hyperlinks associated with the + parent model. + + ### Usage Example + + Fetch from the `GET Candidate` endpoint and view their website urls. + properties: + value: + type: optional + docs: The site's url. + validation: + format: uri + maxLength: 2000 + url_type: + type: optional + docs: |- + The type of site. + + * `PERSONAL` - PERSONAL + * `COMPANY` - COMPANY + * `PORTFOLIO` - PORTFOLIO + * `BLOG` - BLOG + * `SOCIAL_MEDIA` - SOCIAL_MEDIA + * `OTHER` - OTHER + * `JOB_POSTING` - JOB_POSTING + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + UrlTypeEnum: + enum: + - PERSONAL + - COMPANY + - PORTFOLIO + - BLOG + - SOCIAL_MEDIA + - OTHER + - JOB_POSTING + docs: |- + * `PERSONAL` - PERSONAL + * `COMPANY` - COMPANY + * `PORTFOLIO` - PORTFOLIO + * `BLOG` - BLOG + * `SOCIAL_MEDIA` - SOCIAL_MEDIA + * `OTHER` - OTHER + * `JOB_POSTING` - JOB_POSTING + source: + openapi: openapi/openapi.yml + ValidationProblemSource: + properties: + pointer: string + source: + openapi: openapi/openapi.yml + VeteranStatusEnum: + enum: + - I_AM_NOT_A_PROTECTED_VETERAN + - I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN + - I_DONT_WISH_TO_ANSWER + docs: >- + * `I_AM_NOT_A_PROTECTED_VETERAN` - I_AM_NOT_A_PROTECTED_VETERAN + + * + `I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN` + - I_IDENTIFY_AS_ONE_OR_MORE_OF_THE_CLASSIFICATIONS_OF_A_PROTECTED_VETERAN + + * `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER + source: + openapi: openapi/openapi.yml + VisibilityEnum: + enum: + - ADMIN_ONLY + - PUBLIC + - PRIVATE + docs: |- + * `ADMIN_ONLY` - ADMIN_ONLY + * `PUBLIC` - PUBLIC + * `PRIVATE` - PRIVATE + source: + openapi: openapi/openapi.yml + WarningValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: openapi/openapi.yml + WebhookReceiver: + properties: + event: string + is_active: boolean + key: optional + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/accountDetails.yml b/.mock/definition/ats/accountDetails.yml new file mode 100644 index 000000000..fe37fa601 --- /dev/null +++ b/.mock/definition/ats/accountDetails.yml @@ -0,0 +1,36 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /ats/v1/account-details + method: GET + auth: true + docs: Get details for a linked account. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.AccountDetails + status-code: 200 + examples: + - headers: {} + response: + body: + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + integration: BambooHR + integration_slug: bamboohr + category: hris + end_user_origin_id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + end_user_organization_name: Waystar Royco + end_user_email_address: kendall.roy@waystar-royco.com + status: COMPLETE + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/accountToken.yml b/.mock/definition/ats/accountToken.yml new file mode 100644 index 000000000..0c372796f --- /dev/null +++ b/.mock/definition/ats/accountToken.yml @@ -0,0 +1,44 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /ats/v1/account-token/{public_token} + method: GET + auth: true + docs: >- + Returns the account token for the end user with the provided public + token. + source: + openapi: openapi/openapi.yml + path-parameters: + public_token: string + response: + docs: '' + type: root.AccountToken + status-code: 200 + examples: + - path-parameters: + public_token: public_token + response: + body: + account_token: T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/activities.yml b/.mock/definition/ats/activities.yml new file mode 100644 index 000000000..362836ad7 --- /dev/null +++ b/.mock/definition/ats/activities.yml @@ -0,0 +1,474 @@ +types: + ActivitiesListRequestRemoteFields: + enum: + - activity_type + - value: activity_type,visibility + name: ActivityTypeVisibility + - visibility + source: + openapi: openapi/openapi.yml + ActivitiesListRequestShowEnumOrigins: + enum: + - activity_type + - value: activity_type,visibility + name: ActivityTypeVisibility + - visibility + source: + openapi: openapi/openapi.yml + ActivitiesRetrieveRequestRemoteFields: + enum: + - activity_type + - value: activity_type,visibility + name: ActivityTypeVisibility + - visibility + source: + openapi: openapi/openapi.yml + ActivitiesRetrieveRequestShowEnumOrigins: + enum: + - activity_type + - value: activity_type,visibility + name: ActivityTypeVisibility + - visibility + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/activities + method: GET + auth: true + docs: Returns a list of `Activity` objects. + source: + openapi: openapi/openapi.yml + request: + name: ActivitiesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + user_id: + type: optional + docs: If provided, will only return activities done by this user. + response: + docs: '' + type: root.PaginatedActivityList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '198123' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + user: user + remote_created_at: '2021-10-15T00:00:00Z' + activity_type: NOTE + subject: Gil Feig's interview + body: Candidate loves integrations! + visibility: ADMIN_ONLY + candidate: 550e8400-e29b-41d4-a716-446655440000 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + create: + path: /ats/v1/activities + method: POST + auth: true + docs: Creates an `Activity` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: ActivityEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.ActivityRequest + remote_user_id: string + content-type: application/json + response: + docs: '' + type: root.ActivityResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + remote_user_id: remote_user_id + response: + body: + model: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '198123' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + user: user + remote_created_at: '2021-10-15T00:00:00Z' + activity_type: NOTE + subject: Gil Feig's interview + body: Candidate loves integrations! + visibility: ADMIN_ONLY + candidate: 550e8400-e29b-41d4-a716-446655440000 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /ats/v1/activities/{id} + method: GET + auth: true + docs: Returns an `Activity` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: ActivitiesRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.Activity + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ecbe05ac-62a3-46c5-ab31-4b478b37d1b4 + remote_id: '198123' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + user: user + remote_created_at: '2021-10-15T00:00:00Z' + activity_type: NOTE + subject: Gil Feig's interview + body: Candidate loves integrations! + visibility: ADMIN_ONLY + candidate: 550e8400-e29b-41d4-a716-446655440000 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + metaPostRetrieve: + path: /ats/v1/activities/meta/post + method: GET + auth: true + docs: Returns metadata for `Activity` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/applications.yml b/.mock/definition/ats/applications.yml new file mode 100644 index 000000000..4a5822f90 --- /dev/null +++ b/.mock/definition/ats/applications.yml @@ -0,0 +1,1903 @@ +types: + ApplicationsListRequestExpand: + enum: + - candidate + - value: candidate,credited_to + name: CandidateCreditedTo + - value: candidate,credited_to,current_stage + name: CandidateCreditedToCurrentStage + - value: candidate,credited_to,current_stage,reject_reason + name: CandidateCreditedToCurrentStageRejectReason + - value: candidate,credited_to,reject_reason + name: CandidateCreditedToRejectReason + - value: candidate,current_stage + name: CandidateCurrentStage + - value: candidate,current_stage,reject_reason + name: CandidateCurrentStageRejectReason + - value: candidate,job + name: CandidateJob + - value: candidate,job,credited_to + name: CandidateJobCreditedTo + - value: candidate,job,credited_to,current_stage + name: CandidateJobCreditedToCurrentStage + - value: candidate,job,credited_to,current_stage,reject_reason + name: CandidateJobCreditedToCurrentStageRejectReason + - value: candidate,job,credited_to,reject_reason + name: CandidateJobCreditedToRejectReason + - value: candidate,job,current_stage + name: CandidateJobCurrentStage + - value: candidate,job,current_stage,reject_reason + name: CandidateJobCurrentStageRejectReason + - value: candidate,job,reject_reason + name: CandidateJobRejectReason + - value: candidate,reject_reason + name: CandidateRejectReason + - credited_to + - value: credited_to,current_stage + name: CreditedToCurrentStage + - value: credited_to,current_stage,reject_reason + name: CreditedToCurrentStageRejectReason + - value: credited_to,reject_reason + name: CreditedToRejectReason + - current_stage + - value: current_stage,reject_reason + name: CurrentStageRejectReason + - job + - value: job,credited_to + name: JobCreditedTo + - value: job,credited_to,current_stage + name: JobCreditedToCurrentStage + - value: job,credited_to,current_stage,reject_reason + name: JobCreditedToCurrentStageRejectReason + - value: job,credited_to,reject_reason + name: JobCreditedToRejectReason + - value: job,current_stage + name: JobCurrentStage + - value: job,current_stage,reject_reason + name: JobCurrentStageRejectReason + - value: job,reject_reason + name: JobRejectReason + - offers + - value: offers,candidate + name: OffersCandidate + - value: offers,candidate,credited_to + name: OffersCandidateCreditedTo + - value: offers,candidate,credited_to,current_stage + name: OffersCandidateCreditedToCurrentStage + - value: offers,candidate,credited_to,current_stage,reject_reason + name: OffersCandidateCreditedToCurrentStageRejectReason + - value: offers,candidate,credited_to,reject_reason + name: OffersCandidateCreditedToRejectReason + - value: offers,candidate,current_stage + name: OffersCandidateCurrentStage + - value: offers,candidate,current_stage,reject_reason + name: OffersCandidateCurrentStageRejectReason + - value: offers,candidate,job + name: OffersCandidateJob + - value: offers,candidate,job,credited_to + name: OffersCandidateJobCreditedTo + - value: offers,candidate,job,credited_to,current_stage + name: OffersCandidateJobCreditedToCurrentStage + - value: offers,candidate,job,credited_to,current_stage,reject_reason + name: OffersCandidateJobCreditedToCurrentStageRejectReason + - value: offers,candidate,job,credited_to,reject_reason + name: OffersCandidateJobCreditedToRejectReason + - value: offers,candidate,job,current_stage + name: OffersCandidateJobCurrentStage + - value: offers,candidate,job,current_stage,reject_reason + name: OffersCandidateJobCurrentStageRejectReason + - value: offers,candidate,job,reject_reason + name: OffersCandidateJobRejectReason + - value: offers,candidate,reject_reason + name: OffersCandidateRejectReason + - value: offers,credited_to + name: OffersCreditedTo + - value: offers,credited_to,current_stage + name: OffersCreditedToCurrentStage + - value: offers,credited_to,current_stage,reject_reason + name: OffersCreditedToCurrentStageRejectReason + - value: offers,credited_to,reject_reason + name: OffersCreditedToRejectReason + - value: offers,current_stage + name: OffersCurrentStage + - value: offers,current_stage,reject_reason + name: OffersCurrentStageRejectReason + - value: offers,job + name: OffersJob + - value: offers,job,credited_to + name: OffersJobCreditedTo + - value: offers,job,credited_to,current_stage + name: OffersJobCreditedToCurrentStage + - value: offers,job,credited_to,current_stage,reject_reason + name: OffersJobCreditedToCurrentStageRejectReason + - value: offers,job,credited_to,reject_reason + name: OffersJobCreditedToRejectReason + - value: offers,job,current_stage + name: OffersJobCurrentStage + - value: offers,job,current_stage,reject_reason + name: OffersJobCurrentStageRejectReason + - value: offers,job,reject_reason + name: OffersJobRejectReason + - value: offers,reject_reason + name: OffersRejectReason + - value: offers,screening_question_answers + name: OffersScreeningQuestionAnswers + - value: offers,screening_question_answers,candidate + name: OffersScreeningQuestionAnswersCandidate + - value: offers,screening_question_answers,candidate,credited_to + name: OffersScreeningQuestionAnswersCandidateCreditedTo + - value: offers,screening_question_answers,candidate,credited_to,current_stage + name: OffersScreeningQuestionAnswersCandidateCreditedToCurrentStage + - value: >- + offers,screening_question_answers,candidate,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersCandidateCreditedToCurrentStageRejectReason + - value: offers,screening_question_answers,candidate,credited_to,reject_reason + name: OffersScreeningQuestionAnswersCandidateCreditedToRejectReason + - value: offers,screening_question_answers,candidate,current_stage + name: OffersScreeningQuestionAnswersCandidateCurrentStage + - value: >- + offers,screening_question_answers,candidate,current_stage,reject_reason + name: OffersScreeningQuestionAnswersCandidateCurrentStageRejectReason + - value: offers,screening_question_answers,candidate,job + name: OffersScreeningQuestionAnswersCandidateJob + - value: offers,screening_question_answers,candidate,job,credited_to + name: OffersScreeningQuestionAnswersCandidateJobCreditedTo + - value: >- + offers,screening_question_answers,candidate,job,credited_to,current_stage + name: OffersScreeningQuestionAnswersCandidateJobCreditedToCurrentStage + - value: >- + offers,screening_question_answers,candidate,job,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersCandidateJobCreditedToCurrentStageRejectReason + - value: >- + offers,screening_question_answers,candidate,job,credited_to,reject_reason + name: OffersScreeningQuestionAnswersCandidateJobCreditedToRejectReason + - value: offers,screening_question_answers,candidate,job,current_stage + name: OffersScreeningQuestionAnswersCandidateJobCurrentStage + - value: >- + offers,screening_question_answers,candidate,job,current_stage,reject_reason + name: OffersScreeningQuestionAnswersCandidateJobCurrentStageRejectReason + - value: offers,screening_question_answers,candidate,job,reject_reason + name: OffersScreeningQuestionAnswersCandidateJobRejectReason + - value: offers,screening_question_answers,candidate,reject_reason + name: OffersScreeningQuestionAnswersCandidateRejectReason + - value: offers,screening_question_answers,credited_to + name: OffersScreeningQuestionAnswersCreditedTo + - value: offers,screening_question_answers,credited_to,current_stage + name: OffersScreeningQuestionAnswersCreditedToCurrentStage + - value: >- + offers,screening_question_answers,credited_to,current_stage,reject_reason + name: OffersScreeningQuestionAnswersCreditedToCurrentStageRejectReason + - value: offers,screening_question_answers,credited_to,reject_reason + name: OffersScreeningQuestionAnswersCreditedToRejectReason + - value: offers,screening_question_answers,current_stage + name: OffersScreeningQuestionAnswersCurrentStage + - value: offers,screening_question_answers,current_stage,reject_reason + name: OffersScreeningQuestionAnswersCurrentStageRejectReason + - value: offers,screening_question_answers,job + name: OffersScreeningQuestionAnswersJob + - value: offers,screening_question_answers,job,credited_to + name: OffersScreeningQuestionAnswersJobCreditedTo + - value: offers,screening_question_answers,job,credited_to,current_stage + name: OffersScreeningQuestionAnswersJobCreditedToCurrentStage + - value: >- + offers,screening_question_answers,job,credited_to,current_stage,reject_reason + name: OffersScreeningQuestionAnswersJobCreditedToCurrentStageRejectReason + - value: offers,screening_question_answers,job,credited_to,reject_reason + name: OffersScreeningQuestionAnswersJobCreditedToRejectReason + - value: offers,screening_question_answers,job,current_stage + name: OffersScreeningQuestionAnswersJobCurrentStage + - value: offers,screening_question_answers,job,current_stage,reject_reason + name: OffersScreeningQuestionAnswersJobCurrentStageRejectReason + - value: offers,screening_question_answers,job,reject_reason + name: OffersScreeningQuestionAnswersJobRejectReason + - value: offers,screening_question_answers,reject_reason + name: OffersScreeningQuestionAnswersRejectReason + - value: offers,screening_question_answers,screening_question_answers.question + name: OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestion + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidate + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,credited_to + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCreditedTo + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,credited_to,current_stage + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCreditedToCurrentStage + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCreditedToCurrentStageRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,credited_to,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCreditedToRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,current_stage + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCurrentStage + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCurrentStageRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,job + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJob + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,job,credited_to + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCreditedTo + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,job,credited_to,current_stage + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCreditedToCurrentStage + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,job,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCreditedToCurrentStageRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,job,credited_to,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCreditedToRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,job,current_stage + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCurrentStage + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,job,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCurrentStageRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,job,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,credited_to + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCreditedTo + - value: >- + offers,screening_question_answers,screening_question_answers.question,credited_to,current_stage + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCreditedToCurrentStage + - value: >- + offers,screening_question_answers,screening_question_answers.question,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCreditedToCurrentStageRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,credited_to,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCreditedToRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,current_stage + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCurrentStage + - value: >- + offers,screening_question_answers,screening_question_answers.question,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCurrentStageRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,job + name: OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionJob + - value: >- + offers,screening_question_answers,screening_question_answers.question,job,credited_to + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCreditedTo + - value: >- + offers,screening_question_answers,screening_question_answers.question,job,credited_to,current_stage + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCreditedToCurrentStage + - value: >- + offers,screening_question_answers,screening_question_answers.question,job,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCreditedToCurrentStageRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,job,credited_to,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCreditedToRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,job,current_stage + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCurrentStage + - value: >- + offers,screening_question_answers,screening_question_answers.question,job,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCurrentStageRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,job,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionRejectReason + - value: offers,screening_question_answers.question + name: OffersScreeningQuestionAnswersQuestion + - value: offers,screening_question_answers.question,candidate + name: OffersScreeningQuestionAnswersQuestionCandidate + - value: offers,screening_question_answers.question,candidate,credited_to + name: OffersScreeningQuestionAnswersQuestionCandidateCreditedTo + - value: >- + offers,screening_question_answers.question,candidate,credited_to,current_stage + name: OffersScreeningQuestionAnswersQuestionCandidateCreditedToCurrentStage + - value: >- + offers,screening_question_answers.question,candidate,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersQuestionCandidateCreditedToCurrentStageRejectReason + - value: >- + offers,screening_question_answers.question,candidate,credited_to,reject_reason + name: OffersScreeningQuestionAnswersQuestionCandidateCreditedToRejectReason + - value: offers,screening_question_answers.question,candidate,current_stage + name: OffersScreeningQuestionAnswersQuestionCandidateCurrentStage + - value: >- + offers,screening_question_answers.question,candidate,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersQuestionCandidateCurrentStageRejectReason + - value: offers,screening_question_answers.question,candidate,job + name: OffersScreeningQuestionAnswersQuestionCandidateJob + - value: offers,screening_question_answers.question,candidate,job,credited_to + name: OffersScreeningQuestionAnswersQuestionCandidateJobCreditedTo + - value: >- + offers,screening_question_answers.question,candidate,job,credited_to,current_stage + name: >- + OffersScreeningQuestionAnswersQuestionCandidateJobCreditedToCurrentStage + - value: >- + offers,screening_question_answers.question,candidate,job,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersQuestionCandidateJobCreditedToCurrentStageRejectReason + - value: >- + offers,screening_question_answers.question,candidate,job,credited_to,reject_reason + name: >- + OffersScreeningQuestionAnswersQuestionCandidateJobCreditedToRejectReason + - value: offers,screening_question_answers.question,candidate,job,current_stage + name: OffersScreeningQuestionAnswersQuestionCandidateJobCurrentStage + - value: >- + offers,screening_question_answers.question,candidate,job,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersQuestionCandidateJobCurrentStageRejectReason + - value: offers,screening_question_answers.question,candidate,job,reject_reason + name: OffersScreeningQuestionAnswersQuestionCandidateJobRejectReason + - value: offers,screening_question_answers.question,candidate,reject_reason + name: OffersScreeningQuestionAnswersQuestionCandidateRejectReason + - value: offers,screening_question_answers.question,credited_to + name: OffersScreeningQuestionAnswersQuestionCreditedTo + - value: offers,screening_question_answers.question,credited_to,current_stage + name: OffersScreeningQuestionAnswersQuestionCreditedToCurrentStage + - value: >- + offers,screening_question_answers.question,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersQuestionCreditedToCurrentStageRejectReason + - value: offers,screening_question_answers.question,credited_to,reject_reason + name: OffersScreeningQuestionAnswersQuestionCreditedToRejectReason + - value: offers,screening_question_answers.question,current_stage + name: OffersScreeningQuestionAnswersQuestionCurrentStage + - value: offers,screening_question_answers.question,current_stage,reject_reason + name: OffersScreeningQuestionAnswersQuestionCurrentStageRejectReason + - value: offers,screening_question_answers.question,job + name: OffersScreeningQuestionAnswersQuestionJob + - value: offers,screening_question_answers.question,job,credited_to + name: OffersScreeningQuestionAnswersQuestionJobCreditedTo + - value: >- + offers,screening_question_answers.question,job,credited_to,current_stage + name: OffersScreeningQuestionAnswersQuestionJobCreditedToCurrentStage + - value: >- + offers,screening_question_answers.question,job,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersQuestionJobCreditedToCurrentStageRejectReason + - value: >- + offers,screening_question_answers.question,job,credited_to,reject_reason + name: OffersScreeningQuestionAnswersQuestionJobCreditedToRejectReason + - value: offers,screening_question_answers.question,job,current_stage + name: OffersScreeningQuestionAnswersQuestionJobCurrentStage + - value: >- + offers,screening_question_answers.question,job,current_stage,reject_reason + name: OffersScreeningQuestionAnswersQuestionJobCurrentStageRejectReason + - value: offers,screening_question_answers.question,job,reject_reason + name: OffersScreeningQuestionAnswersQuestionJobRejectReason + - value: offers,screening_question_answers.question,reject_reason + name: OffersScreeningQuestionAnswersQuestionRejectReason + - reject_reason + - screening_question_answers + - value: screening_question_answers,candidate + name: ScreeningQuestionAnswersCandidate + - value: screening_question_answers,candidate,credited_to + name: ScreeningQuestionAnswersCandidateCreditedTo + - value: screening_question_answers,candidate,credited_to,current_stage + name: ScreeningQuestionAnswersCandidateCreditedToCurrentStage + - value: >- + screening_question_answers,candidate,credited_to,current_stage,reject_reason + name: ScreeningQuestionAnswersCandidateCreditedToCurrentStageRejectReason + - value: screening_question_answers,candidate,credited_to,reject_reason + name: ScreeningQuestionAnswersCandidateCreditedToRejectReason + - value: screening_question_answers,candidate,current_stage + name: ScreeningQuestionAnswersCandidateCurrentStage + - value: screening_question_answers,candidate,current_stage,reject_reason + name: ScreeningQuestionAnswersCandidateCurrentStageRejectReason + - value: screening_question_answers,candidate,job + name: ScreeningQuestionAnswersCandidateJob + - value: screening_question_answers,candidate,job,credited_to + name: ScreeningQuestionAnswersCandidateJobCreditedTo + - value: screening_question_answers,candidate,job,credited_to,current_stage + name: ScreeningQuestionAnswersCandidateJobCreditedToCurrentStage + - value: >- + screening_question_answers,candidate,job,credited_to,current_stage,reject_reason + name: ScreeningQuestionAnswersCandidateJobCreditedToCurrentStageRejectReason + - value: screening_question_answers,candidate,job,credited_to,reject_reason + name: ScreeningQuestionAnswersCandidateJobCreditedToRejectReason + - value: screening_question_answers,candidate,job,current_stage + name: ScreeningQuestionAnswersCandidateJobCurrentStage + - value: screening_question_answers,candidate,job,current_stage,reject_reason + name: ScreeningQuestionAnswersCandidateJobCurrentStageRejectReason + - value: screening_question_answers,candidate,job,reject_reason + name: ScreeningQuestionAnswersCandidateJobRejectReason + - value: screening_question_answers,candidate,reject_reason + name: ScreeningQuestionAnswersCandidateRejectReason + - value: screening_question_answers,credited_to + name: ScreeningQuestionAnswersCreditedTo + - value: screening_question_answers,credited_to,current_stage + name: ScreeningQuestionAnswersCreditedToCurrentStage + - value: screening_question_answers,credited_to,current_stage,reject_reason + name: ScreeningQuestionAnswersCreditedToCurrentStageRejectReason + - value: screening_question_answers,credited_to,reject_reason + name: ScreeningQuestionAnswersCreditedToRejectReason + - value: screening_question_answers,current_stage + name: ScreeningQuestionAnswersCurrentStage + - value: screening_question_answers,current_stage,reject_reason + name: ScreeningQuestionAnswersCurrentStageRejectReason + - value: screening_question_answers,job + name: ScreeningQuestionAnswersJob + - value: screening_question_answers,job,credited_to + name: ScreeningQuestionAnswersJobCreditedTo + - value: screening_question_answers,job,credited_to,current_stage + name: ScreeningQuestionAnswersJobCreditedToCurrentStage + - value: screening_question_answers,job,credited_to,current_stage,reject_reason + name: ScreeningQuestionAnswersJobCreditedToCurrentStageRejectReason + - value: screening_question_answers,job,credited_to,reject_reason + name: ScreeningQuestionAnswersJobCreditedToRejectReason + - value: screening_question_answers,job,current_stage + name: ScreeningQuestionAnswersJobCurrentStage + - value: screening_question_answers,job,current_stage,reject_reason + name: ScreeningQuestionAnswersJobCurrentStageRejectReason + - value: screening_question_answers,job,reject_reason + name: ScreeningQuestionAnswersJobRejectReason + - value: screening_question_answers,reject_reason + name: ScreeningQuestionAnswersRejectReason + - value: screening_question_answers,screening_question_answers.question + name: ScreeningQuestionAnswersScreeningQuestionAnswersQuestion + - value: >- + screening_question_answers,screening_question_answers.question,candidate + name: ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidate + - value: >- + screening_question_answers,screening_question_answers.question,candidate,credited_to + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCreditedTo + - value: >- + screening_question_answers,screening_question_answers.question,candidate,credited_to,current_stage + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCreditedToCurrentStage + - value: >- + screening_question_answers,screening_question_answers.question,candidate,credited_to,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCreditedToCurrentStageRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,candidate,credited_to,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCreditedToRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,candidate,current_stage + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCurrentStage + - value: >- + screening_question_answers,screening_question_answers.question,candidate,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCurrentStageRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,candidate,job + name: ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJob + - value: >- + screening_question_answers,screening_question_answers.question,candidate,job,credited_to + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCreditedTo + - value: >- + screening_question_answers,screening_question_answers.question,candidate,job,credited_to,current_stage + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCreditedToCurrentStage + - value: >- + screening_question_answers,screening_question_answers.question,candidate,job,credited_to,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCreditedToCurrentStageRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,candidate,job,credited_to,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCreditedToRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,candidate,job,current_stage + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCurrentStage + - value: >- + screening_question_answers,screening_question_answers.question,candidate,job,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCurrentStageRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,candidate,job,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,candidate,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,credited_to + name: ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCreditedTo + - value: >- + screening_question_answers,screening_question_answers.question,credited_to,current_stage + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCreditedToCurrentStage + - value: >- + screening_question_answers,screening_question_answers.question,credited_to,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCreditedToCurrentStageRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,credited_to,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCreditedToRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,current_stage + name: ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCurrentStage + - value: >- + screening_question_answers,screening_question_answers.question,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCurrentStageRejectReason + - value: screening_question_answers,screening_question_answers.question,job + name: ScreeningQuestionAnswersScreeningQuestionAnswersQuestionJob + - value: >- + screening_question_answers,screening_question_answers.question,job,credited_to + name: ScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCreditedTo + - value: >- + screening_question_answers,screening_question_answers.question,job,credited_to,current_stage + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCreditedToCurrentStage + - value: >- + screening_question_answers,screening_question_answers.question,job,credited_to,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCreditedToCurrentStageRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,job,credited_to,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCreditedToRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,job,current_stage + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCurrentStage + - value: >- + screening_question_answers,screening_question_answers.question,job,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCurrentStageRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,job,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,reject_reason + name: ScreeningQuestionAnswersScreeningQuestionAnswersQuestionRejectReason + - value: screening_question_answers.question + name: ScreeningQuestionAnswersQuestion + - value: screening_question_answers.question,candidate + name: ScreeningQuestionAnswersQuestionCandidate + - value: screening_question_answers.question,candidate,credited_to + name: ScreeningQuestionAnswersQuestionCandidateCreditedTo + - value: >- + screening_question_answers.question,candidate,credited_to,current_stage + name: ScreeningQuestionAnswersQuestionCandidateCreditedToCurrentStage + - value: >- + screening_question_answers.question,candidate,credited_to,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersQuestionCandidateCreditedToCurrentStageRejectReason + - value: >- + screening_question_answers.question,candidate,credited_to,reject_reason + name: ScreeningQuestionAnswersQuestionCandidateCreditedToRejectReason + - value: screening_question_answers.question,candidate,current_stage + name: ScreeningQuestionAnswersQuestionCandidateCurrentStage + - value: >- + screening_question_answers.question,candidate,current_stage,reject_reason + name: ScreeningQuestionAnswersQuestionCandidateCurrentStageRejectReason + - value: screening_question_answers.question,candidate,job + name: ScreeningQuestionAnswersQuestionCandidateJob + - value: screening_question_answers.question,candidate,job,credited_to + name: ScreeningQuestionAnswersQuestionCandidateJobCreditedTo + - value: >- + screening_question_answers.question,candidate,job,credited_to,current_stage + name: ScreeningQuestionAnswersQuestionCandidateJobCreditedToCurrentStage + - value: >- + screening_question_answers.question,candidate,job,credited_to,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersQuestionCandidateJobCreditedToCurrentStageRejectReason + - value: >- + screening_question_answers.question,candidate,job,credited_to,reject_reason + name: ScreeningQuestionAnswersQuestionCandidateJobCreditedToRejectReason + - value: screening_question_answers.question,candidate,job,current_stage + name: ScreeningQuestionAnswersQuestionCandidateJobCurrentStage + - value: >- + screening_question_answers.question,candidate,job,current_stage,reject_reason + name: ScreeningQuestionAnswersQuestionCandidateJobCurrentStageRejectReason + - value: screening_question_answers.question,candidate,job,reject_reason + name: ScreeningQuestionAnswersQuestionCandidateJobRejectReason + - value: screening_question_answers.question,candidate,reject_reason + name: ScreeningQuestionAnswersQuestionCandidateRejectReason + - value: screening_question_answers.question,credited_to + name: ScreeningQuestionAnswersQuestionCreditedTo + - value: screening_question_answers.question,credited_to,current_stage + name: ScreeningQuestionAnswersQuestionCreditedToCurrentStage + - value: >- + screening_question_answers.question,credited_to,current_stage,reject_reason + name: ScreeningQuestionAnswersQuestionCreditedToCurrentStageRejectReason + - value: screening_question_answers.question,credited_to,reject_reason + name: ScreeningQuestionAnswersQuestionCreditedToRejectReason + - value: screening_question_answers.question,current_stage + name: ScreeningQuestionAnswersQuestionCurrentStage + - value: screening_question_answers.question,current_stage,reject_reason + name: ScreeningQuestionAnswersQuestionCurrentStageRejectReason + - value: screening_question_answers.question,job + name: ScreeningQuestionAnswersQuestionJob + - value: screening_question_answers.question,job,credited_to + name: ScreeningQuestionAnswersQuestionJobCreditedTo + - value: screening_question_answers.question,job,credited_to,current_stage + name: ScreeningQuestionAnswersQuestionJobCreditedToCurrentStage + - value: >- + screening_question_answers.question,job,credited_to,current_stage,reject_reason + name: ScreeningQuestionAnswersQuestionJobCreditedToCurrentStageRejectReason + - value: screening_question_answers.question,job,credited_to,reject_reason + name: ScreeningQuestionAnswersQuestionJobCreditedToRejectReason + - value: screening_question_answers.question,job,current_stage + name: ScreeningQuestionAnswersQuestionJobCurrentStage + - value: screening_question_answers.question,job,current_stage,reject_reason + name: ScreeningQuestionAnswersQuestionJobCurrentStageRejectReason + - value: screening_question_answers.question,job,reject_reason + name: ScreeningQuestionAnswersQuestionJobRejectReason + - value: screening_question_answers.question,reject_reason + name: ScreeningQuestionAnswersQuestionRejectReason + source: + openapi: openapi/openapi.yml + ApplicationsRetrieveRequestExpand: + enum: + - candidate + - value: candidate,credited_to + name: CandidateCreditedTo + - value: candidate,credited_to,current_stage + name: CandidateCreditedToCurrentStage + - value: candidate,credited_to,current_stage,reject_reason + name: CandidateCreditedToCurrentStageRejectReason + - value: candidate,credited_to,reject_reason + name: CandidateCreditedToRejectReason + - value: candidate,current_stage + name: CandidateCurrentStage + - value: candidate,current_stage,reject_reason + name: CandidateCurrentStageRejectReason + - value: candidate,job + name: CandidateJob + - value: candidate,job,credited_to + name: CandidateJobCreditedTo + - value: candidate,job,credited_to,current_stage + name: CandidateJobCreditedToCurrentStage + - value: candidate,job,credited_to,current_stage,reject_reason + name: CandidateJobCreditedToCurrentStageRejectReason + - value: candidate,job,credited_to,reject_reason + name: CandidateJobCreditedToRejectReason + - value: candidate,job,current_stage + name: CandidateJobCurrentStage + - value: candidate,job,current_stage,reject_reason + name: CandidateJobCurrentStageRejectReason + - value: candidate,job,reject_reason + name: CandidateJobRejectReason + - value: candidate,reject_reason + name: CandidateRejectReason + - credited_to + - value: credited_to,current_stage + name: CreditedToCurrentStage + - value: credited_to,current_stage,reject_reason + name: CreditedToCurrentStageRejectReason + - value: credited_to,reject_reason + name: CreditedToRejectReason + - current_stage + - value: current_stage,reject_reason + name: CurrentStageRejectReason + - job + - value: job,credited_to + name: JobCreditedTo + - value: job,credited_to,current_stage + name: JobCreditedToCurrentStage + - value: job,credited_to,current_stage,reject_reason + name: JobCreditedToCurrentStageRejectReason + - value: job,credited_to,reject_reason + name: JobCreditedToRejectReason + - value: job,current_stage + name: JobCurrentStage + - value: job,current_stage,reject_reason + name: JobCurrentStageRejectReason + - value: job,reject_reason + name: JobRejectReason + - offers + - value: offers,candidate + name: OffersCandidate + - value: offers,candidate,credited_to + name: OffersCandidateCreditedTo + - value: offers,candidate,credited_to,current_stage + name: OffersCandidateCreditedToCurrentStage + - value: offers,candidate,credited_to,current_stage,reject_reason + name: OffersCandidateCreditedToCurrentStageRejectReason + - value: offers,candidate,credited_to,reject_reason + name: OffersCandidateCreditedToRejectReason + - value: offers,candidate,current_stage + name: OffersCandidateCurrentStage + - value: offers,candidate,current_stage,reject_reason + name: OffersCandidateCurrentStageRejectReason + - value: offers,candidate,job + name: OffersCandidateJob + - value: offers,candidate,job,credited_to + name: OffersCandidateJobCreditedTo + - value: offers,candidate,job,credited_to,current_stage + name: OffersCandidateJobCreditedToCurrentStage + - value: offers,candidate,job,credited_to,current_stage,reject_reason + name: OffersCandidateJobCreditedToCurrentStageRejectReason + - value: offers,candidate,job,credited_to,reject_reason + name: OffersCandidateJobCreditedToRejectReason + - value: offers,candidate,job,current_stage + name: OffersCandidateJobCurrentStage + - value: offers,candidate,job,current_stage,reject_reason + name: OffersCandidateJobCurrentStageRejectReason + - value: offers,candidate,job,reject_reason + name: OffersCandidateJobRejectReason + - value: offers,candidate,reject_reason + name: OffersCandidateRejectReason + - value: offers,credited_to + name: OffersCreditedTo + - value: offers,credited_to,current_stage + name: OffersCreditedToCurrentStage + - value: offers,credited_to,current_stage,reject_reason + name: OffersCreditedToCurrentStageRejectReason + - value: offers,credited_to,reject_reason + name: OffersCreditedToRejectReason + - value: offers,current_stage + name: OffersCurrentStage + - value: offers,current_stage,reject_reason + name: OffersCurrentStageRejectReason + - value: offers,job + name: OffersJob + - value: offers,job,credited_to + name: OffersJobCreditedTo + - value: offers,job,credited_to,current_stage + name: OffersJobCreditedToCurrentStage + - value: offers,job,credited_to,current_stage,reject_reason + name: OffersJobCreditedToCurrentStageRejectReason + - value: offers,job,credited_to,reject_reason + name: OffersJobCreditedToRejectReason + - value: offers,job,current_stage + name: OffersJobCurrentStage + - value: offers,job,current_stage,reject_reason + name: OffersJobCurrentStageRejectReason + - value: offers,job,reject_reason + name: OffersJobRejectReason + - value: offers,reject_reason + name: OffersRejectReason + - value: offers,screening_question_answers + name: OffersScreeningQuestionAnswers + - value: offers,screening_question_answers,candidate + name: OffersScreeningQuestionAnswersCandidate + - value: offers,screening_question_answers,candidate,credited_to + name: OffersScreeningQuestionAnswersCandidateCreditedTo + - value: offers,screening_question_answers,candidate,credited_to,current_stage + name: OffersScreeningQuestionAnswersCandidateCreditedToCurrentStage + - value: >- + offers,screening_question_answers,candidate,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersCandidateCreditedToCurrentStageRejectReason + - value: offers,screening_question_answers,candidate,credited_to,reject_reason + name: OffersScreeningQuestionAnswersCandidateCreditedToRejectReason + - value: offers,screening_question_answers,candidate,current_stage + name: OffersScreeningQuestionAnswersCandidateCurrentStage + - value: >- + offers,screening_question_answers,candidate,current_stage,reject_reason + name: OffersScreeningQuestionAnswersCandidateCurrentStageRejectReason + - value: offers,screening_question_answers,candidate,job + name: OffersScreeningQuestionAnswersCandidateJob + - value: offers,screening_question_answers,candidate,job,credited_to + name: OffersScreeningQuestionAnswersCandidateJobCreditedTo + - value: >- + offers,screening_question_answers,candidate,job,credited_to,current_stage + name: OffersScreeningQuestionAnswersCandidateJobCreditedToCurrentStage + - value: >- + offers,screening_question_answers,candidate,job,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersCandidateJobCreditedToCurrentStageRejectReason + - value: >- + offers,screening_question_answers,candidate,job,credited_to,reject_reason + name: OffersScreeningQuestionAnswersCandidateJobCreditedToRejectReason + - value: offers,screening_question_answers,candidate,job,current_stage + name: OffersScreeningQuestionAnswersCandidateJobCurrentStage + - value: >- + offers,screening_question_answers,candidate,job,current_stage,reject_reason + name: OffersScreeningQuestionAnswersCandidateJobCurrentStageRejectReason + - value: offers,screening_question_answers,candidate,job,reject_reason + name: OffersScreeningQuestionAnswersCandidateJobRejectReason + - value: offers,screening_question_answers,candidate,reject_reason + name: OffersScreeningQuestionAnswersCandidateRejectReason + - value: offers,screening_question_answers,credited_to + name: OffersScreeningQuestionAnswersCreditedTo + - value: offers,screening_question_answers,credited_to,current_stage + name: OffersScreeningQuestionAnswersCreditedToCurrentStage + - value: >- + offers,screening_question_answers,credited_to,current_stage,reject_reason + name: OffersScreeningQuestionAnswersCreditedToCurrentStageRejectReason + - value: offers,screening_question_answers,credited_to,reject_reason + name: OffersScreeningQuestionAnswersCreditedToRejectReason + - value: offers,screening_question_answers,current_stage + name: OffersScreeningQuestionAnswersCurrentStage + - value: offers,screening_question_answers,current_stage,reject_reason + name: OffersScreeningQuestionAnswersCurrentStageRejectReason + - value: offers,screening_question_answers,job + name: OffersScreeningQuestionAnswersJob + - value: offers,screening_question_answers,job,credited_to + name: OffersScreeningQuestionAnswersJobCreditedTo + - value: offers,screening_question_answers,job,credited_to,current_stage + name: OffersScreeningQuestionAnswersJobCreditedToCurrentStage + - value: >- + offers,screening_question_answers,job,credited_to,current_stage,reject_reason + name: OffersScreeningQuestionAnswersJobCreditedToCurrentStageRejectReason + - value: offers,screening_question_answers,job,credited_to,reject_reason + name: OffersScreeningQuestionAnswersJobCreditedToRejectReason + - value: offers,screening_question_answers,job,current_stage + name: OffersScreeningQuestionAnswersJobCurrentStage + - value: offers,screening_question_answers,job,current_stage,reject_reason + name: OffersScreeningQuestionAnswersJobCurrentStageRejectReason + - value: offers,screening_question_answers,job,reject_reason + name: OffersScreeningQuestionAnswersJobRejectReason + - value: offers,screening_question_answers,reject_reason + name: OffersScreeningQuestionAnswersRejectReason + - value: offers,screening_question_answers,screening_question_answers.question + name: OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestion + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidate + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,credited_to + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCreditedTo + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,credited_to,current_stage + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCreditedToCurrentStage + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCreditedToCurrentStageRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,credited_to,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCreditedToRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,current_stage + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCurrentStage + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCurrentStageRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,job + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJob + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,job,credited_to + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCreditedTo + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,job,credited_to,current_stage + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCreditedToCurrentStage + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,job,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCreditedToCurrentStageRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,job,credited_to,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCreditedToRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,job,current_stage + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCurrentStage + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,job,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCurrentStageRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,job,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,candidate,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,credited_to + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCreditedTo + - value: >- + offers,screening_question_answers,screening_question_answers.question,credited_to,current_stage + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCreditedToCurrentStage + - value: >- + offers,screening_question_answers,screening_question_answers.question,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCreditedToCurrentStageRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,credited_to,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCreditedToRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,current_stage + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCurrentStage + - value: >- + offers,screening_question_answers,screening_question_answers.question,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionCurrentStageRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,job + name: OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionJob + - value: >- + offers,screening_question_answers,screening_question_answers.question,job,credited_to + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCreditedTo + - value: >- + offers,screening_question_answers,screening_question_answers.question,job,credited_to,current_stage + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCreditedToCurrentStage + - value: >- + offers,screening_question_answers,screening_question_answers.question,job,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCreditedToCurrentStageRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,job,credited_to,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCreditedToRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,job,current_stage + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCurrentStage + - value: >- + offers,screening_question_answers,screening_question_answers.question,job,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCurrentStageRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,job,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobRejectReason + - value: >- + offers,screening_question_answers,screening_question_answers.question,reject_reason + name: >- + OffersScreeningQuestionAnswersScreeningQuestionAnswersQuestionRejectReason + - value: offers,screening_question_answers.question + name: OffersScreeningQuestionAnswersQuestion + - value: offers,screening_question_answers.question,candidate + name: OffersScreeningQuestionAnswersQuestionCandidate + - value: offers,screening_question_answers.question,candidate,credited_to + name: OffersScreeningQuestionAnswersQuestionCandidateCreditedTo + - value: >- + offers,screening_question_answers.question,candidate,credited_to,current_stage + name: OffersScreeningQuestionAnswersQuestionCandidateCreditedToCurrentStage + - value: >- + offers,screening_question_answers.question,candidate,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersQuestionCandidateCreditedToCurrentStageRejectReason + - value: >- + offers,screening_question_answers.question,candidate,credited_to,reject_reason + name: OffersScreeningQuestionAnswersQuestionCandidateCreditedToRejectReason + - value: offers,screening_question_answers.question,candidate,current_stage + name: OffersScreeningQuestionAnswersQuestionCandidateCurrentStage + - value: >- + offers,screening_question_answers.question,candidate,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersQuestionCandidateCurrentStageRejectReason + - value: offers,screening_question_answers.question,candidate,job + name: OffersScreeningQuestionAnswersQuestionCandidateJob + - value: offers,screening_question_answers.question,candidate,job,credited_to + name: OffersScreeningQuestionAnswersQuestionCandidateJobCreditedTo + - value: >- + offers,screening_question_answers.question,candidate,job,credited_to,current_stage + name: >- + OffersScreeningQuestionAnswersQuestionCandidateJobCreditedToCurrentStage + - value: >- + offers,screening_question_answers.question,candidate,job,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersQuestionCandidateJobCreditedToCurrentStageRejectReason + - value: >- + offers,screening_question_answers.question,candidate,job,credited_to,reject_reason + name: >- + OffersScreeningQuestionAnswersQuestionCandidateJobCreditedToRejectReason + - value: offers,screening_question_answers.question,candidate,job,current_stage + name: OffersScreeningQuestionAnswersQuestionCandidateJobCurrentStage + - value: >- + offers,screening_question_answers.question,candidate,job,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersQuestionCandidateJobCurrentStageRejectReason + - value: offers,screening_question_answers.question,candidate,job,reject_reason + name: OffersScreeningQuestionAnswersQuestionCandidateJobRejectReason + - value: offers,screening_question_answers.question,candidate,reject_reason + name: OffersScreeningQuestionAnswersQuestionCandidateRejectReason + - value: offers,screening_question_answers.question,credited_to + name: OffersScreeningQuestionAnswersQuestionCreditedTo + - value: offers,screening_question_answers.question,credited_to,current_stage + name: OffersScreeningQuestionAnswersQuestionCreditedToCurrentStage + - value: >- + offers,screening_question_answers.question,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersQuestionCreditedToCurrentStageRejectReason + - value: offers,screening_question_answers.question,credited_to,reject_reason + name: OffersScreeningQuestionAnswersQuestionCreditedToRejectReason + - value: offers,screening_question_answers.question,current_stage + name: OffersScreeningQuestionAnswersQuestionCurrentStage + - value: offers,screening_question_answers.question,current_stage,reject_reason + name: OffersScreeningQuestionAnswersQuestionCurrentStageRejectReason + - value: offers,screening_question_answers.question,job + name: OffersScreeningQuestionAnswersQuestionJob + - value: offers,screening_question_answers.question,job,credited_to + name: OffersScreeningQuestionAnswersQuestionJobCreditedTo + - value: >- + offers,screening_question_answers.question,job,credited_to,current_stage + name: OffersScreeningQuestionAnswersQuestionJobCreditedToCurrentStage + - value: >- + offers,screening_question_answers.question,job,credited_to,current_stage,reject_reason + name: >- + OffersScreeningQuestionAnswersQuestionJobCreditedToCurrentStageRejectReason + - value: >- + offers,screening_question_answers.question,job,credited_to,reject_reason + name: OffersScreeningQuestionAnswersQuestionJobCreditedToRejectReason + - value: offers,screening_question_answers.question,job,current_stage + name: OffersScreeningQuestionAnswersQuestionJobCurrentStage + - value: >- + offers,screening_question_answers.question,job,current_stage,reject_reason + name: OffersScreeningQuestionAnswersQuestionJobCurrentStageRejectReason + - value: offers,screening_question_answers.question,job,reject_reason + name: OffersScreeningQuestionAnswersQuestionJobRejectReason + - value: offers,screening_question_answers.question,reject_reason + name: OffersScreeningQuestionAnswersQuestionRejectReason + - reject_reason + - screening_question_answers + - value: screening_question_answers,candidate + name: ScreeningQuestionAnswersCandidate + - value: screening_question_answers,candidate,credited_to + name: ScreeningQuestionAnswersCandidateCreditedTo + - value: screening_question_answers,candidate,credited_to,current_stage + name: ScreeningQuestionAnswersCandidateCreditedToCurrentStage + - value: >- + screening_question_answers,candidate,credited_to,current_stage,reject_reason + name: ScreeningQuestionAnswersCandidateCreditedToCurrentStageRejectReason + - value: screening_question_answers,candidate,credited_to,reject_reason + name: ScreeningQuestionAnswersCandidateCreditedToRejectReason + - value: screening_question_answers,candidate,current_stage + name: ScreeningQuestionAnswersCandidateCurrentStage + - value: screening_question_answers,candidate,current_stage,reject_reason + name: ScreeningQuestionAnswersCandidateCurrentStageRejectReason + - value: screening_question_answers,candidate,job + name: ScreeningQuestionAnswersCandidateJob + - value: screening_question_answers,candidate,job,credited_to + name: ScreeningQuestionAnswersCandidateJobCreditedTo + - value: screening_question_answers,candidate,job,credited_to,current_stage + name: ScreeningQuestionAnswersCandidateJobCreditedToCurrentStage + - value: >- + screening_question_answers,candidate,job,credited_to,current_stage,reject_reason + name: ScreeningQuestionAnswersCandidateJobCreditedToCurrentStageRejectReason + - value: screening_question_answers,candidate,job,credited_to,reject_reason + name: ScreeningQuestionAnswersCandidateJobCreditedToRejectReason + - value: screening_question_answers,candidate,job,current_stage + name: ScreeningQuestionAnswersCandidateJobCurrentStage + - value: screening_question_answers,candidate,job,current_stage,reject_reason + name: ScreeningQuestionAnswersCandidateJobCurrentStageRejectReason + - value: screening_question_answers,candidate,job,reject_reason + name: ScreeningQuestionAnswersCandidateJobRejectReason + - value: screening_question_answers,candidate,reject_reason + name: ScreeningQuestionAnswersCandidateRejectReason + - value: screening_question_answers,credited_to + name: ScreeningQuestionAnswersCreditedTo + - value: screening_question_answers,credited_to,current_stage + name: ScreeningQuestionAnswersCreditedToCurrentStage + - value: screening_question_answers,credited_to,current_stage,reject_reason + name: ScreeningQuestionAnswersCreditedToCurrentStageRejectReason + - value: screening_question_answers,credited_to,reject_reason + name: ScreeningQuestionAnswersCreditedToRejectReason + - value: screening_question_answers,current_stage + name: ScreeningQuestionAnswersCurrentStage + - value: screening_question_answers,current_stage,reject_reason + name: ScreeningQuestionAnswersCurrentStageRejectReason + - value: screening_question_answers,job + name: ScreeningQuestionAnswersJob + - value: screening_question_answers,job,credited_to + name: ScreeningQuestionAnswersJobCreditedTo + - value: screening_question_answers,job,credited_to,current_stage + name: ScreeningQuestionAnswersJobCreditedToCurrentStage + - value: screening_question_answers,job,credited_to,current_stage,reject_reason + name: ScreeningQuestionAnswersJobCreditedToCurrentStageRejectReason + - value: screening_question_answers,job,credited_to,reject_reason + name: ScreeningQuestionAnswersJobCreditedToRejectReason + - value: screening_question_answers,job,current_stage + name: ScreeningQuestionAnswersJobCurrentStage + - value: screening_question_answers,job,current_stage,reject_reason + name: ScreeningQuestionAnswersJobCurrentStageRejectReason + - value: screening_question_answers,job,reject_reason + name: ScreeningQuestionAnswersJobRejectReason + - value: screening_question_answers,reject_reason + name: ScreeningQuestionAnswersRejectReason + - value: screening_question_answers,screening_question_answers.question + name: ScreeningQuestionAnswersScreeningQuestionAnswersQuestion + - value: >- + screening_question_answers,screening_question_answers.question,candidate + name: ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidate + - value: >- + screening_question_answers,screening_question_answers.question,candidate,credited_to + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCreditedTo + - value: >- + screening_question_answers,screening_question_answers.question,candidate,credited_to,current_stage + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCreditedToCurrentStage + - value: >- + screening_question_answers,screening_question_answers.question,candidate,credited_to,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCreditedToCurrentStageRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,candidate,credited_to,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCreditedToRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,candidate,current_stage + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCurrentStage + - value: >- + screening_question_answers,screening_question_answers.question,candidate,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateCurrentStageRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,candidate,job + name: ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJob + - value: >- + screening_question_answers,screening_question_answers.question,candidate,job,credited_to + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCreditedTo + - value: >- + screening_question_answers,screening_question_answers.question,candidate,job,credited_to,current_stage + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCreditedToCurrentStage + - value: >- + screening_question_answers,screening_question_answers.question,candidate,job,credited_to,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCreditedToCurrentStageRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,candidate,job,credited_to,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCreditedToRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,candidate,job,current_stage + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCurrentStage + - value: >- + screening_question_answers,screening_question_answers.question,candidate,job,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobCurrentStageRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,candidate,job,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateJobRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,candidate,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCandidateRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,credited_to + name: ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCreditedTo + - value: >- + screening_question_answers,screening_question_answers.question,credited_to,current_stage + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCreditedToCurrentStage + - value: >- + screening_question_answers,screening_question_answers.question,credited_to,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCreditedToCurrentStageRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,credited_to,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCreditedToRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,current_stage + name: ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCurrentStage + - value: >- + screening_question_answers,screening_question_answers.question,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionCurrentStageRejectReason + - value: screening_question_answers,screening_question_answers.question,job + name: ScreeningQuestionAnswersScreeningQuestionAnswersQuestionJob + - value: >- + screening_question_answers,screening_question_answers.question,job,credited_to + name: ScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCreditedTo + - value: >- + screening_question_answers,screening_question_answers.question,job,credited_to,current_stage + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCreditedToCurrentStage + - value: >- + screening_question_answers,screening_question_answers.question,job,credited_to,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCreditedToCurrentStageRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,job,credited_to,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCreditedToRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,job,current_stage + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCurrentStage + - value: >- + screening_question_answers,screening_question_answers.question,job,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobCurrentStageRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,job,reject_reason + name: >- + ScreeningQuestionAnswersScreeningQuestionAnswersQuestionJobRejectReason + - value: >- + screening_question_answers,screening_question_answers.question,reject_reason + name: ScreeningQuestionAnswersScreeningQuestionAnswersQuestionRejectReason + - value: screening_question_answers.question + name: ScreeningQuestionAnswersQuestion + - value: screening_question_answers.question,candidate + name: ScreeningQuestionAnswersQuestionCandidate + - value: screening_question_answers.question,candidate,credited_to + name: ScreeningQuestionAnswersQuestionCandidateCreditedTo + - value: >- + screening_question_answers.question,candidate,credited_to,current_stage + name: ScreeningQuestionAnswersQuestionCandidateCreditedToCurrentStage + - value: >- + screening_question_answers.question,candidate,credited_to,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersQuestionCandidateCreditedToCurrentStageRejectReason + - value: >- + screening_question_answers.question,candidate,credited_to,reject_reason + name: ScreeningQuestionAnswersQuestionCandidateCreditedToRejectReason + - value: screening_question_answers.question,candidate,current_stage + name: ScreeningQuestionAnswersQuestionCandidateCurrentStage + - value: >- + screening_question_answers.question,candidate,current_stage,reject_reason + name: ScreeningQuestionAnswersQuestionCandidateCurrentStageRejectReason + - value: screening_question_answers.question,candidate,job + name: ScreeningQuestionAnswersQuestionCandidateJob + - value: screening_question_answers.question,candidate,job,credited_to + name: ScreeningQuestionAnswersQuestionCandidateJobCreditedTo + - value: >- + screening_question_answers.question,candidate,job,credited_to,current_stage + name: ScreeningQuestionAnswersQuestionCandidateJobCreditedToCurrentStage + - value: >- + screening_question_answers.question,candidate,job,credited_to,current_stage,reject_reason + name: >- + ScreeningQuestionAnswersQuestionCandidateJobCreditedToCurrentStageRejectReason + - value: >- + screening_question_answers.question,candidate,job,credited_to,reject_reason + name: ScreeningQuestionAnswersQuestionCandidateJobCreditedToRejectReason + - value: screening_question_answers.question,candidate,job,current_stage + name: ScreeningQuestionAnswersQuestionCandidateJobCurrentStage + - value: >- + screening_question_answers.question,candidate,job,current_stage,reject_reason + name: ScreeningQuestionAnswersQuestionCandidateJobCurrentStageRejectReason + - value: screening_question_answers.question,candidate,job,reject_reason + name: ScreeningQuestionAnswersQuestionCandidateJobRejectReason + - value: screening_question_answers.question,candidate,reject_reason + name: ScreeningQuestionAnswersQuestionCandidateRejectReason + - value: screening_question_answers.question,credited_to + name: ScreeningQuestionAnswersQuestionCreditedTo + - value: screening_question_answers.question,credited_to,current_stage + name: ScreeningQuestionAnswersQuestionCreditedToCurrentStage + - value: >- + screening_question_answers.question,credited_to,current_stage,reject_reason + name: ScreeningQuestionAnswersQuestionCreditedToCurrentStageRejectReason + - value: screening_question_answers.question,credited_to,reject_reason + name: ScreeningQuestionAnswersQuestionCreditedToRejectReason + - value: screening_question_answers.question,current_stage + name: ScreeningQuestionAnswersQuestionCurrentStage + - value: screening_question_answers.question,current_stage,reject_reason + name: ScreeningQuestionAnswersQuestionCurrentStageRejectReason + - value: screening_question_answers.question,job + name: ScreeningQuestionAnswersQuestionJob + - value: screening_question_answers.question,job,credited_to + name: ScreeningQuestionAnswersQuestionJobCreditedTo + - value: screening_question_answers.question,job,credited_to,current_stage + name: ScreeningQuestionAnswersQuestionJobCreditedToCurrentStage + - value: >- + screening_question_answers.question,job,credited_to,current_stage,reject_reason + name: ScreeningQuestionAnswersQuestionJobCreditedToCurrentStageRejectReason + - value: screening_question_answers.question,job,credited_to,reject_reason + name: ScreeningQuestionAnswersQuestionJobCreditedToRejectReason + - value: screening_question_answers.question,job,current_stage + name: ScreeningQuestionAnswersQuestionJobCurrentStage + - value: screening_question_answers.question,job,current_stage,reject_reason + name: ScreeningQuestionAnswersQuestionJobCurrentStageRejectReason + - value: screening_question_answers.question,job,reject_reason + name: ScreeningQuestionAnswersQuestionJobRejectReason + - value: screening_question_answers.question,reject_reason + name: ScreeningQuestionAnswersQuestionRejectReason + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/applications + method: GET + auth: true + docs: Returns a list of `Application` objects. + source: + openapi: openapi/openapi.yml + request: + name: ApplicationsListRequest + query-parameters: + candidate_id: + type: optional + docs: If provided, will only return applications for this candidate. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + credited_to_id: + type: optional + docs: If provided, will only return applications credited to this user. + current_stage_id: + type: optional + docs: >- + If provided, will only return applications at this interview + stage. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + job_id: + type: optional + docs: If provided, will only return applications for this job. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + reject_reason_id: + type: optional + docs: >- + If provided, will only return applications with this reject + reason. + remote_id: + type: optional + docs: The API provider's ID for the given object. + source: + type: optional + docs: If provided, will only return applications with this source. + response: + docs: '' + type: root.PaginatedApplicationList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 92e8a369-fffe-430d-b93a-f7e8a16563f1 + remote_id: '98796' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + candidate: candidate + job: job + applied_at: '2021-10-15T00:00:00Z' + rejected_at: '2021-11-15T00:00:00Z' + offers: + - e9b5c11d-c588-468e-8567-cd6992e42b62 + source: Campus recruiting event + credited_to: credited_to + screening_question_answers: + - screening_question_answers + - screening_question_answers + current_stage: current_stage + reject_reason: reject_reason + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /candidacies + data: + - Varies by platform + create: + path: /ats/v1/applications + method: POST + auth: true + docs: > + Creates an `Application` object with the given values. + + For certain integrations, but not all, our API detects duplicate + candidates and will associate applications with existing records in the + third-party. New candidates are created and automatically linked to the + application. + + + See our [Help Center + article](https://help.merge.dev/en/articles/10012366-updates-to-post-applications-oct-2024) + for detailed support per integration. + source: + openapi: openapi/openapi.yml + request: + name: ApplicationEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.ApplicationRequest + remote_user_id: string + content-type: application/json + response: + docs: '' + type: root.ApplicationResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + remote_user_id: remote_user_id + response: + body: + model: + id: 92e8a369-fffe-430d-b93a-f7e8a16563f1 + remote_id: '98796' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + candidate: candidate + job: job + applied_at: '2021-10-15T00:00:00Z' + rejected_at: '2021-11-15T00:00:00Z' + offers: + - e9b5c11d-c588-468e-8567-cd6992e42b62 + source: Campus recruiting event + credited_to: credited_to + screening_question_answers: + - screening_question_answers + - screening_question_answers + current_stage: current_stage + reject_reason: reject_reason + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /candidacies + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /ats/v1/applications/{id} + method: GET + auth: true + docs: Returns an `Application` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: ApplicationsRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Application + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 92e8a369-fffe-430d-b93a-f7e8a16563f1 + remote_id: '98796' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + candidate: candidate + job: job + applied_at: '2021-10-15T00:00:00Z' + rejected_at: '2021-11-15T00:00:00Z' + offers: + - e9b5c11d-c588-468e-8567-cd6992e42b62 + source: Campus recruiting event + credited_to: credited_to + screening_question_answers: + - screening_question_answers + - screening_question_answers + current_stage: current_stage + reject_reason: reject_reason + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /candidacies + data: + - Varies by platform + changeStageCreate: + path: /ats/v1/applications/{id}/change-stage + method: POST + auth: true + docs: Updates the `current_stage` field of an `Application` object + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: UpdateApplicationStageRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + job_interview_stage: + type: optional + docs: The interview stage to move the application to. + validation: + format: uuid + remote_user_id: + type: optional + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.ApplicationResponse + status-code: 201 + examples: + - path-parameters: + id: id + headers: {} + request: {} + response: + body: + model: + id: 92e8a369-fffe-430d-b93a-f7e8a16563f1 + remote_id: '98796' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + candidate: candidate + job: job + applied_at: '2021-10-15T00:00:00Z' + rejected_at: '2021-11-15T00:00:00Z' + offers: + - e9b5c11d-c588-468e-8567-cd6992e42b62 + source: Campus recruiting event + credited_to: credited_to + screening_question_answers: + - screening_question_answers + - screening_question_answers + current_stage: current_stage + reject_reason: reject_reason + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /candidacies + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + metaPostRetrieve: + path: /ats/v1/applications/meta/post + method: GET + auth: true + docs: Returns metadata for `Application` POSTs. + source: + openapi: openapi/openapi.yml + request: + name: ApplicationsMetaPostRetrieveRequest + query-parameters: + application_remote_template_id: + type: optional + docs: >- + The template ID associated with the nested application in the + request. + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/asyncPassthrough.yml b/.mock/definition/ats/asyncPassthrough.yml new file mode 100644 index 000000000..94686f10b --- /dev/null +++ b/.mock/definition/ats/asyncPassthrough.yml @@ -0,0 +1,70 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /ats/v1/async-passthrough + method: POST + auth: true + docs: >- + Asynchronously pull data from an endpoint not currently supported by + Merge. + source: + openapi: openapi/openapi.yml + request: + body: root.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: root.AsyncPassthroughReciept + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + async_passthrough_receipt_id: fd29020f-2695-445e-922e-dcd5e81903fd + retrieve: + path: /ats/v1/async-passthrough/{async_passthrough_receipt_id} + method: GET + auth: true + docs: Retrieves data from earlier async-passthrough POST request + source: + openapi: openapi/openapi.yml + path-parameters: + async_passthrough_receipt_id: string + response: + docs: '' + type: AsyncPassthroughRetrieveResponse + status-code: 200 + examples: + - path-parameters: + async_passthrough_receipt_id: async_passthrough_receipt_id + headers: {} + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: openapi/openapi.yml +types: + AsyncPassthroughRetrieveResponse: + discriminated: false + union: + - root.RemoteResponse + - string + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/attachments.yml b/.mock/definition/ats/attachments.yml new file mode 100644 index 000000000..14b45b1b2 --- /dev/null +++ b/.mock/definition/ats/attachments.yml @@ -0,0 +1,432 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/attachments + method: GET + auth: true + docs: Returns a list of `Attachment` objects. + source: + openapi: openapi/openapi.yml + request: + name: AttachmentsListRequest + query-parameters: + candidate_id: + type: optional + docs: If provided, will only return attachments for this candidate. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.PaginatedAttachmentList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: c640b80b-fac9-409f-aa19-1f9221aec445 + remote_id: '11167' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + file_name: Candidate Resume + file_url: http://alturl.com/p749b + candidate: 2872ba14-4084-492b-be96-e5eee6fc33ef + attachment_type: RESUME + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /attachments + data: + - Varies by platform + create: + path: /ats/v1/attachments + method: POST + auth: true + docs: Creates an `Attachment` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: AttachmentEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.AttachmentRequest + remote_user_id: string + content-type: application/json + response: + docs: '' + type: root.AttachmentResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + remote_user_id: remote_user_id + response: + body: + model: + id: c640b80b-fac9-409f-aa19-1f9221aec445 + remote_id: '11167' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + file_name: Candidate Resume + file_url: http://alturl.com/p749b + candidate: 2872ba14-4084-492b-be96-e5eee6fc33ef + attachment_type: RESUME + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /attachments + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /ats/v1/attachments/{id} + method: GET + auth: true + docs: Returns an `Attachment` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: AttachmentsRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.Attachment + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: c640b80b-fac9-409f-aa19-1f9221aec445 + remote_id: '11167' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + file_name: Candidate Resume + file_url: http://alturl.com/p749b + candidate: 2872ba14-4084-492b-be96-e5eee6fc33ef + attachment_type: RESUME + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /attachments + data: + - Varies by platform + metaPostRetrieve: + path: /ats/v1/attachments/meta/post + method: GET + auth: true + docs: Returns metadata for `Attachment` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/auditTrail.yml b/.mock/definition/ats/auditTrail.yml new file mode 100644 index 000000000..36833ffee --- /dev/null +++ b/.mock/definition/ats/auditTrail.yml @@ -0,0 +1,94 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/audit-trail + method: GET + auth: true + docs: Gets a list of audit trail events. + source: + openapi: openapi/openapi.yml + request: + name: AuditTrailListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + before this time + event_type: + type: optional + docs: >- + If included, will only include events with the given event type. + Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, + `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, + `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, + `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, + `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, + `DELETED_LINKED_ACCOUNT`, + `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, + `CREATED_DESTINATION`, `DELETED_DESTINATION`, + `CHANGED_DESTINATION`, `CHANGED_SCOPES`, + `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, + `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, + `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, + `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, + `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, + `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, + `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, + `END_USER_CREDENTIALS_ACCESSED` + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + after this time + user_email: + type: optional + docs: >- + If provided, this will return events associated with the specified + user email. Please note that the email address reflects the user's + email at the time of the event, and may not be their current + email. + response: + docs: '' + type: root.PaginatedAuditLogEventList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b5ceea2a-7171-47ce-8090-165cfce5572c + user_name: Gil Feig + user_email: hello@merge.dev + role: ADMIN + ip_address: 192.0.2.123 + event_type: CREATED_REMOTE_PRODUCTION_API_KEY + event_description: >- + Organization-wide Scopes for model hris.Employee updated + from Read to Read+Write + created_at: '2024-01-15T09:30:00Z' + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/availableActions.yml b/.mock/definition/ats/availableActions.yml new file mode 100644 index 000000000..8e529df3f --- /dev/null +++ b/.mock/definition/ats/availableActions.yml @@ -0,0 +1,50 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /ats/v1/available-actions + method: GET + auth: true + docs: Returns a list of models and actions available for an account. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.AvailableActions + status-code: 200 + examples: + - headers: {} + response: + body: + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/candidates.yml b/.mock/definition/ats/candidates.yml new file mode 100644 index 000000000..e5f23a792 --- /dev/null +++ b/.mock/definition/ats/candidates.yml @@ -0,0 +1,876 @@ +types: + CandidatesListRequestExpand: + enum: + - applications + - value: applications,attachments + name: ApplicationsAttachments + - attachments + source: + openapi: openapi/openapi.yml + CandidatesRetrieveRequestExpand: + enum: + - applications + - value: applications,attachments + name: ApplicationsAttachments + - attachments + source: + openapi: openapi/openapi.yml + IgnoreCommonModelRequestReason: + discriminated: false + union: + - root.ReasonEnum + - string + source: + openapi: openapi/openapi.yml + inline: true +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/candidates + method: GET + auth: true + docs: Returns a list of `Candidate` objects. + source: + openapi: openapi/openapi.yml + request: + name: CandidatesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + email_addresses: + type: optional + docs: >- + If provided, will only return candidates with these email + addresses; multiple addresses can be separated by commas. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + first_name: + type: optional + docs: If provided, will only return candidates with this first name. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + last_name: + type: optional + docs: If provided, will only return candidates with this last name. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + tags: + type: optional + docs: >- + If provided, will only return candidates with these tags; multiple + tags can be separated by commas. + response: + docs: '' + type: root.PaginatedCandidateList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 521b18c2-4d01-4297-b451-19858d07c133 + remote_id: '21198' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Gil + last_name: Feig + company: Columbia Dining App. + title: Software Engineer + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-16T00:00:00Z' + last_interaction_at: '2021-10-17T00:00:00Z' + is_private: true + can_email: true + locations: + - San Francisco + - New York + - Miami + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: '+1234567890' + phone_number_type: MOBILE + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: hello@merge.dev + email_address_type: PERSONAL + urls: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: http://alturl.com/p749b + url_type: BLOG + tags: + - High-Priority + applications: + - 29eb9867-ce2a-403f-b8ce-f2844b89f078 + - b4d08e5c-de00-4d64-a29f-66addac9af99 + - 4ff877d2-fb3e-4a5b-a7a5-168ddf2ffa56 + attachments: + - bea08964-32b4-4a20-8bb4-2612ba09de1d + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /candidates + data: + - Varies by platform + create: + path: /ats/v1/candidates + method: POST + auth: true + docs: Creates a `Candidate` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: CandidateEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.CandidateRequest + remote_user_id: string + content-type: application/json + response: + docs: '' + type: root.CandidateResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + remote_user_id: remote_user_id + response: + body: + model: + id: 521b18c2-4d01-4297-b451-19858d07c133 + remote_id: '21198' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Gil + last_name: Feig + company: Columbia Dining App. + title: Software Engineer + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-16T00:00:00Z' + last_interaction_at: '2021-10-17T00:00:00Z' + is_private: true + can_email: true + locations: + - San Francisco + - New York + - Miami + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: '+1234567890' + phone_number_type: MOBILE + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: hello@merge.dev + email_address_type: PERSONAL + urls: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: http://alturl.com/p749b + url_type: BLOG + tags: + - High-Priority + applications: + - 29eb9867-ce2a-403f-b8ce-f2844b89f078 + - b4d08e5c-de00-4d64-a29f-66addac9af99 + - 4ff877d2-fb3e-4a5b-a7a5-168ddf2ffa56 + attachments: + - bea08964-32b4-4a20-8bb4-2612ba09de1d + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /candidates + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /ats/v1/candidates/{id} + method: GET + auth: true + docs: Returns a `Candidate` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: CandidatesRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Candidate + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 521b18c2-4d01-4297-b451-19858d07c133 + remote_id: '21198' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Gil + last_name: Feig + company: Columbia Dining App. + title: Software Engineer + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-16T00:00:00Z' + last_interaction_at: '2021-10-17T00:00:00Z' + is_private: true + can_email: true + locations: + - San Francisco + - New York + - Miami + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: '+1234567890' + phone_number_type: MOBILE + remote_was_deleted: true + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: hello@merge.dev + email_address_type: PERSONAL + remote_was_deleted: true + urls: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: http://alturl.com/p749b + url_type: BLOG + remote_was_deleted: true + tags: + - High-Priority + applications: + - 29eb9867-ce2a-403f-b8ce-f2844b89f078 + - b4d08e5c-de00-4d64-a29f-66addac9af99 + - 4ff877d2-fb3e-4a5b-a7a5-168ddf2ffa56 + attachments: + - bea08964-32b4-4a20-8bb4-2612ba09de1d + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /candidates + data: + - Varies by platform + partialUpdate: + path: /ats/v1/candidates/{id} + method: PATCH + auth: true + docs: Updates a `Candidate` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: PatchedCandidateEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.PatchedCandidateRequest + remote_user_id: string + content-type: application/json + response: + docs: '' + type: root.CandidateResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + remote_user_id: remote_user_id + response: + body: + model: + id: 521b18c2-4d01-4297-b451-19858d07c133 + remote_id: '21198' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Gil + last_name: Feig + company: Columbia Dining App. + title: Software Engineer + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-16T00:00:00Z' + last_interaction_at: '2021-10-17T00:00:00Z' + is_private: true + can_email: true + locations: + - San Francisco + - New York + - Miami + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: '+1234567890' + phone_number_type: MOBILE + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: hello@merge.dev + email_address_type: PERSONAL + urls: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: http://alturl.com/p749b + url_type: BLOG + tags: + - High-Priority + applications: + - 29eb9867-ce2a-403f-b8ce-f2844b89f078 + - b4d08e5c-de00-4d64-a29f-66addac9af99 + - 4ff877d2-fb3e-4a5b-a7a5-168ddf2ffa56 + attachments: + - bea08964-32b4-4a20-8bb4-2612ba09de1d + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /candidates + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + ignoreCreate: + path: /ats/v1/candidates/ignore/{model_id} + method: POST + auth: true + docs: >- + Ignores a specific row based on the `model_id` in the url. These records + will have their properties set to null, and will not be updated in + future syncs. The "reason" and "message" fields in the request body will + be stored for audit purposes. + source: + openapi: openapi/openapi.yml + path-parameters: + model_id: string + request: + name: IgnoreCommonModelRequest + body: + properties: + reason: IgnoreCommonModelRequestReason + message: + type: optional + validation: + minLength: 1 + maxLength: 256 + content-type: application/json + examples: + - path-parameters: + model_id: model_id + headers: {} + request: + reason: GENERAL_CUSTOMER_REQUEST + metaPatchRetrieve: + path: /ats/v1/candidates/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `Candidate` PATCHs. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /ats/v1/candidates/meta/post + method: GET + auth: true + docs: Returns metadata for `Candidate` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/deleteAccount.yml b/.mock/definition/ats/deleteAccount.yml new file mode 100644 index 000000000..6255a3934 --- /dev/null +++ b/.mock/definition/ats/deleteAccount.yml @@ -0,0 +1,15 @@ +service: + auth: false + base-path: '' + endpoints: + delete: + path: /ats/v1/delete-account + method: POST + auth: true + docs: Delete a linked account. + source: + openapi: openapi/openapi.yml + examples: + - headers: {} + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/departments.yml b/.mock/definition/ats/departments.yml new file mode 100644 index 000000000..8f001f43d --- /dev/null +++ b/.mock/definition/ats/departments.yml @@ -0,0 +1,136 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/departments + method: GET + auth: true + docs: Returns a list of `Department` objects. + source: + openapi: openapi/openapi.yml + request: + name: DepartmentsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedDepartmentList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + remote_id: '23456' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Engineering + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /departments + data: + - Varies by platform + retrieve: + path: /ats/v1/departments/{id} + method: GET + auth: true + docs: Returns a `Department` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: DepartmentsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Department + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 5b3c1341-a20f-4e51-b72c-f3830a16c97b + remote_id: '23456' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Engineering + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /departments + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/eeocs.yml b/.mock/definition/ats/eeocs.yml new file mode 100644 index 000000000..91dbf6b92 --- /dev/null +++ b/.mock/definition/ats/eeocs.yml @@ -0,0 +1,300 @@ +types: + EeocsListRequestRemoteFields: + enum: + - disability_status + - value: disability_status,gender + name: DisabilityStatusGender + - value: disability_status,gender,race + name: DisabilityStatusGenderRace + - value: disability_status,gender,race,veteran_status + name: DisabilityStatusGenderRaceVeteranStatus + - value: disability_status,gender,veteran_status + name: DisabilityStatusGenderVeteranStatus + - value: disability_status,race + name: DisabilityStatusRace + - value: disability_status,race,veteran_status + name: DisabilityStatusRaceVeteranStatus + - value: disability_status,veteran_status + name: DisabilityStatusVeteranStatus + - gender + - value: gender,race + name: GenderRace + - value: gender,race,veteran_status + name: GenderRaceVeteranStatus + - value: gender,veteran_status + name: GenderVeteranStatus + - race + - value: race,veteran_status + name: RaceVeteranStatus + - veteran_status + source: + openapi: openapi/openapi.yml + EeocsListRequestShowEnumOrigins: + enum: + - disability_status + - value: disability_status,gender + name: DisabilityStatusGender + - value: disability_status,gender,race + name: DisabilityStatusGenderRace + - value: disability_status,gender,race,veteran_status + name: DisabilityStatusGenderRaceVeteranStatus + - value: disability_status,gender,veteran_status + name: DisabilityStatusGenderVeteranStatus + - value: disability_status,race + name: DisabilityStatusRace + - value: disability_status,race,veteran_status + name: DisabilityStatusRaceVeteranStatus + - value: disability_status,veteran_status + name: DisabilityStatusVeteranStatus + - gender + - value: gender,race + name: GenderRace + - value: gender,race,veteran_status + name: GenderRaceVeteranStatus + - value: gender,veteran_status + name: GenderVeteranStatus + - race + - value: race,veteran_status + name: RaceVeteranStatus + - veteran_status + source: + openapi: openapi/openapi.yml + EeocsRetrieveRequestRemoteFields: + enum: + - disability_status + - value: disability_status,gender + name: DisabilityStatusGender + - value: disability_status,gender,race + name: DisabilityStatusGenderRace + - value: disability_status,gender,race,veteran_status + name: DisabilityStatusGenderRaceVeteranStatus + - value: disability_status,gender,veteran_status + name: DisabilityStatusGenderVeteranStatus + - value: disability_status,race + name: DisabilityStatusRace + - value: disability_status,race,veteran_status + name: DisabilityStatusRaceVeteranStatus + - value: disability_status,veteran_status + name: DisabilityStatusVeteranStatus + - gender + - value: gender,race + name: GenderRace + - value: gender,race,veteran_status + name: GenderRaceVeteranStatus + - value: gender,veteran_status + name: GenderVeteranStatus + - race + - value: race,veteran_status + name: RaceVeteranStatus + - veteran_status + source: + openapi: openapi/openapi.yml + EeocsRetrieveRequestShowEnumOrigins: + enum: + - disability_status + - value: disability_status,gender + name: DisabilityStatusGender + - value: disability_status,gender,race + name: DisabilityStatusGenderRace + - value: disability_status,gender,race,veteran_status + name: DisabilityStatusGenderRaceVeteranStatus + - value: disability_status,gender,veteran_status + name: DisabilityStatusGenderVeteranStatus + - value: disability_status,race + name: DisabilityStatusRace + - value: disability_status,race,veteran_status + name: DisabilityStatusRaceVeteranStatus + - value: disability_status,veteran_status + name: DisabilityStatusVeteranStatus + - gender + - value: gender,race + name: GenderRace + - value: gender,race,veteran_status + name: GenderRaceVeteranStatus + - value: gender,veteran_status + name: GenderVeteranStatus + - race + - value: race,veteran_status + name: RaceVeteranStatus + - veteran_status + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/eeocs + method: GET + auth: true + docs: Returns a list of `EEOC` objects. + source: + openapi: openapi/openapi.yml + request: + name: EeocsListRequest + query-parameters: + candidate_id: + type: optional + docs: If provided, will only return EEOC info for this candidate. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.PaginatedEeocList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: f7dd7b4f-237e-4772-8bd4-3246384c6c58 + remote_id: '76' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + candidate: candidate + submitted_at: '2021-10-15T00:00:00Z' + race: AMERICAN_INDIAN_OR_ALASKAN_NATIVE + gender: MALE + veteran_status: I_AM_NOT_A_PROTECTED_VETERAN + disability_status: YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /eeoc + data: + - Varies by platform + retrieve: + path: /ats/v1/eeocs/{id} + method: GET + auth: true + docs: Returns an `EEOC` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: EeocsRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.Eeoc + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: f7dd7b4f-237e-4772-8bd4-3246384c6c58 + remote_id: '76' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + candidate: candidate + submitted_at: '2021-10-15T00:00:00Z' + race: AMERICAN_INDIAN_OR_ALASKAN_NATIVE + gender: MALE + veteran_status: I_AM_NOT_A_PROTECTED_VETERAN + disability_status: YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /eeoc + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/fieldMapping.yml b/.mock/definition/ats/fieldMapping.yml new file mode 100644 index 000000000..9d92fea8b --- /dev/null +++ b/.mock/definition/ats/fieldMapping.yml @@ -0,0 +1,892 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + field_mappings_retrieve: + path: /ats/v1/field-mappings + method: GET + auth: true + docs: >- + Get all Field Mappings for this Linked Account. Field Mappings are + mappings between third-party Remote Fields and user defined Merge + fields. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: openapi/openapi.yml + request: + name: FieldMappingsRetrieveRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + response: + docs: '' + type: root.FieldMappingApiInstanceResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Activity: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Application: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Attachment: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Candidate: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Department: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + EEOC: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + ScheduledInterview: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Job: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + JobPosting: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + JobInterviewStage: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Offer: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Office: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + RejectReason: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Scorecard: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Tag: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + RemoteUser: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + field_mappings_create: + path: /ats/v1/field-mappings + method: POST + auth: true + docs: >- + Create new Field Mappings that will be available after the next + scheduled sync. This will cause the next sync for this Linked Account to + sync **ALL** data from start. + source: + openapi: openapi/openapi.yml + request: + name: CreateFieldMappingRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + body: + properties: + target_field_name: + type: string + docs: >- + The name of the target field you want this remote field to map + to. + validation: + minLength: 1 + target_field_description: + type: string + docs: >- + The description of the target field you want this remote field + to map to. + validation: + minLength: 1 + remote_field_traversal_path: + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + type: list + remote_method: + type: string + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: string + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + common_model_name: + type: string + docs: >- + The name of the Common Model that the remote field corresponds + to in a given category. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.FieldMappingInstanceResponse + status-code: 201 + examples: + - headers: {} + request: + target_field_name: example_target_field_name + target_field_description: this is a example description of the target field + remote_field_traversal_path: + - example_remote_field + remote_method: GET + remote_url_path: /example-url-path + common_model_name: ExampleCommonModel + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_destroy: + path: /ats/v1/field-mappings/{field_mapping_id} + method: DELETE + auth: true + docs: >- + Deletes Field Mappings for a Linked Account. All data related to this + Field Mapping will be deleted and these changes will be reflected after + the next scheduled sync. This will cause the next sync for this Linked + Account to sync **ALL** data from start. + source: + openapi: openapi/openapi.yml + path-parameters: + field_mapping_id: string + response: + docs: '' + type: root.FieldMappingInstanceResponse + status-code: 204 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_partial_update: + path: /ats/v1/field-mappings/{field_mapping_id} + method: PATCH + auth: true + docs: >- + Create or update existing Field Mappings for a Linked Account. Changes + will be reflected after the next scheduled sync. This will cause the + next sync for this Linked Account to sync **ALL** data from start. + source: + openapi: openapi/openapi.yml + path-parameters: + field_mapping_id: string + request: + name: PatchedEditFieldMappingRequest + body: + properties: + remote_field_traversal_path: + type: optional> + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + remote_method: + type: optional + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: optional + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.FieldMappingInstanceResponse + status-code: 200 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + request: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + remote_fields_retrieve: + path: /ats/v1/remote-fields + method: GET + auth: true + docs: >- + Get all remote fields for a Linked Account. Remote fields are + third-party fields that are accessible after initial sync if remote_data + is enabled. You can use remote fields to override existing Merge fields + or map a new Merge field. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: openapi/openapi.yml + request: + name: RemoteFieldsRetrieveRequest + query-parameters: + common_models: + type: optional + docs: >- + A comma seperated list of Common Model names. If included, will + only return Remote Fields for those Common Models. + include_example_values: + type: optional + docs: >- + If true, will include example values, where available, for remote + fields in the 3rd party platform. These examples come from active + data from your customers. + response: + docs: '' + type: root.RemoteFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Activity: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Application: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Attachment: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Candidate: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Department: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + EEOC: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + ScheduledInterview: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Job: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + JobPosting: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + JobInterviewStage: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Offer: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Office: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + RejectReason: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Scorecard: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Tag: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + RemoteUser: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + target_fields_retrieve: + path: /ats/v1/target-fields + method: GET + auth: true + docs: >- + Get all organization-wide Target Fields, this will not include any + Linked Account specific Target Fields. Organization-wide Target Fields + are additional fields appended to the Merge Common Model for all Linked + Accounts in a category. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.ExternalTargetFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Activity: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Application: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Attachment: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Candidate: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Department: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + EEOC: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + ScheduledInterview: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Job: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + JobPosting: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + JobInterviewStage: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Offer: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Office: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + RejectReason: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Scorecard: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Tag: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + RemoteUser: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/forceResync.yml b/.mock/definition/ats/forceResync.yml new file mode 100644 index 000000000..8a6039921 --- /dev/null +++ b/.mock/definition/ats/forceResync.yml @@ -0,0 +1,37 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + sync_status_resync_create: + path: /ats/v1/sync-status/resync + method: POST + auth: true + docs: >- + Force re-sync of all models. This endpoint is available for monthly, + quarterly, and highest sync frequency customers on the Professional or + Enterprise plans. Doing so will consume a sync credit for the relevant + linked account. Force re-syncs can also be triggered manually in the + Merge Dashboard and is available for all customers. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - model_name: Candidate + model_id: ats.Candidate + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/generateKey.yml b/.mock/definition/ats/generateKey.yml new file mode 100644 index 000000000..40a39dcbc --- /dev/null +++ b/.mock/definition/ats/generateKey.yml @@ -0,0 +1,36 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /ats/v1/generate-key + method: POST + auth: true + docs: Create a remote key. + source: + openapi: openapi/openapi.yml + request: + name: GenerateRemoteKeyRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/interviews.yml b/.mock/definition/ats/interviews.yml new file mode 100644 index 000000000..aa95289ce --- /dev/null +++ b/.mock/definition/ats/interviews.yml @@ -0,0 +1,526 @@ +types: + InterviewsListRequestExpand: + enum: + - application + - value: application,job_interview_stage + name: ApplicationJobInterviewStage + - interviewers + - value: interviewers,application + name: InterviewersApplication + - value: interviewers,application,job_interview_stage + name: InterviewersApplicationJobInterviewStage + - value: interviewers,job_interview_stage + name: InterviewersJobInterviewStage + - value: interviewers,organizer + name: InterviewersOrganizer + - value: interviewers,organizer,application + name: InterviewersOrganizerApplication + - value: interviewers,organizer,application,job_interview_stage + name: InterviewersOrganizerApplicationJobInterviewStage + - value: interviewers,organizer,job_interview_stage + name: InterviewersOrganizerJobInterviewStage + - job_interview_stage + - organizer + - value: organizer,application + name: OrganizerApplication + - value: organizer,application,job_interview_stage + name: OrganizerApplicationJobInterviewStage + - value: organizer,job_interview_stage + name: OrganizerJobInterviewStage + source: + openapi: openapi/openapi.yml + InterviewsRetrieveRequestExpand: + enum: + - application + - value: application,job_interview_stage + name: ApplicationJobInterviewStage + - interviewers + - value: interviewers,application + name: InterviewersApplication + - value: interviewers,application,job_interview_stage + name: InterviewersApplicationJobInterviewStage + - value: interviewers,job_interview_stage + name: InterviewersJobInterviewStage + - value: interviewers,organizer + name: InterviewersOrganizer + - value: interviewers,organizer,application + name: InterviewersOrganizerApplication + - value: interviewers,organizer,application,job_interview_stage + name: InterviewersOrganizerApplicationJobInterviewStage + - value: interviewers,organizer,job_interview_stage + name: InterviewersOrganizerJobInterviewStage + - job_interview_stage + - organizer + - value: organizer,application + name: OrganizerApplication + - value: organizer,application,job_interview_stage + name: OrganizerApplicationJobInterviewStage + - value: organizer,job_interview_stage + name: OrganizerJobInterviewStage + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/interviews + method: GET + auth: true + docs: Returns a list of `ScheduledInterview` objects. + source: + openapi: openapi/openapi.yml + request: + name: InterviewsListRequest + query-parameters: + application_id: + type: optional + docs: If provided, will only return interviews for this application. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + job_id: + type: optional + docs: If provided, wll only return interviews organized for this job. + job_interview_stage_id: + type: optional + docs: If provided, will only return interviews at this stage. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + organizer_id: + type: optional + docs: If provided, will only return interviews organized by this user. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.PaginatedScheduledInterviewList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b8faf072-98b9-4445-8a9a-6b4950efca19 + remote_id: '3' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + application: application + job_interview_stage: job_interview_stage + organizer: organizer + interviewers: + - f9813dd5-e70b-484c-91d8-00acd6065b07 + - 89a86fcf-d540-4e6b-ac3d-ce07c4ec9b3c + location: Embarcadero Center 2 + start_at: '2021-10-15T00:00:00Z' + end_at: '2021-10-15T02:00:00Z' + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-15T00:00:00Z' + status: SCHEDULED + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /interviews + data: + - Varies by platform + create: + path: /ats/v1/interviews + method: POST + auth: true + docs: Creates a `ScheduledInterview` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: ScheduledInterviewEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.ScheduledInterviewRequest + remote_user_id: string + content-type: application/json + response: + docs: '' + type: root.ScheduledInterviewResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + remote_user_id: remote_user_id + response: + body: + model: + id: b8faf072-98b9-4445-8a9a-6b4950efca19 + remote_id: '3' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + application: application + job_interview_stage: job_interview_stage + organizer: organizer + interviewers: + - f9813dd5-e70b-484c-91d8-00acd6065b07 + - 89a86fcf-d540-4e6b-ac3d-ce07c4ec9b3c + location: Embarcadero Center 2 + start_at: '2021-10-15T00:00:00Z' + end_at: '2021-10-15T02:00:00Z' + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-15T00:00:00Z' + status: SCHEDULED + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /interviews + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /ats/v1/interviews/{id} + method: GET + auth: true + docs: Returns a `ScheduledInterview` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: InterviewsRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.ScheduledInterview + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: b8faf072-98b9-4445-8a9a-6b4950efca19 + remote_id: '3' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + application: application + job_interview_stage: job_interview_stage + organizer: organizer + interviewers: + - f9813dd5-e70b-484c-91d8-00acd6065b07 + - 89a86fcf-d540-4e6b-ac3d-ce07c4ec9b3c + location: Embarcadero Center 2 + start_at: '2021-10-15T00:00:00Z' + end_at: '2021-10-15T02:00:00Z' + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-15T00:00:00Z' + status: SCHEDULED + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /interviews + data: + - Varies by platform + metaPostRetrieve: + path: /ats/v1/interviews/meta/post + method: GET + auth: true + docs: Returns metadata for `ScheduledInterview` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/issues.yml b/.mock/definition/ats/issues.yml new file mode 100644 index 000000000..4984ce4ef --- /dev/null +++ b/.mock/definition/ats/issues.yml @@ -0,0 +1,129 @@ +types: + IssuesListRequestStatus: + enum: + - ONGOING + - RESOLVED + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/issues + method: GET + auth: true + docs: Gets all issues for Organization. + source: + openapi: openapi/openapi.yml + request: + name: IssuesListRequest + query-parameters: + account_token: optional + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred before this time + end_user_organization_name: optional + first_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + after this datetime. + first_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + before this datetime. + include_muted: + type: optional + docs: If true, will include muted issues + integration_name: optional + last_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + after this datetime. + last_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + before this datetime. + linked_account_id: + type: optional + docs: >- + If provided, will only include issues pertaining to the linked + account passed in. + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred after this time + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + response: + docs: '' + type: root.PaginatedIssueList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + retrieve: + path: /ats/v1/issues/{id} + method: GET + auth: true + docs: Get a specific issue. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + response: + docs: '' + type: root.Issue + status-code: 200 + examples: + - path-parameters: + id: id + response: + body: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/jobInterviewStages.yml b/.mock/definition/ats/jobInterviewStages.yml new file mode 100644 index 000000000..5753b281b --- /dev/null +++ b/.mock/definition/ats/jobInterviewStages.yml @@ -0,0 +1,153 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/job-interview-stages + method: GET + auth: true + docs: Returns a list of `JobInterviewStage` objects. + source: + openapi: openapi/openapi.yml + request: + name: JobInterviewStagesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + job_id: + type: optional + docs: If provided, will only return interview stages for this job. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedJobInterviewStageList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: f9813dd5-e70b-484c-91d8-00acd6065b07 + remote_id: '876556788' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Phone Screen + job: job + stage_order: 2 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /interview-stages + data: + - Varies by platform + retrieve: + path: /ats/v1/job-interview-stages/{id} + method: GET + auth: true + docs: Returns a `JobInterviewStage` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: JobInterviewStagesRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.JobInterviewStage + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: f9813dd5-e70b-484c-91d8-00acd6065b07 + remote_id: '876556788' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Phone Screen + job: job + stage_order: 2 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /interview-stages + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/jobPostings.yml b/.mock/definition/ats/jobPostings.yml new file mode 100644 index 000000000..859b5bb40 --- /dev/null +++ b/.mock/definition/ats/jobPostings.yml @@ -0,0 +1,195 @@ +types: + JobPostingsListRequestStatus: + enum: + - CLOSED + - DRAFT + - INTERNAL + - PENDING + - PUBLISHED + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/job-postings + method: GET + auth: true + docs: Returns a list of `JobPosting` objects. + source: + openapi: openapi/openapi.yml + request: + name: JobPostingsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + status: + type: optional + docs: >- + If provided, will only return Job Postings with this status. + Options: ('PUBLISHED', 'CLOSED', 'DRAFT', 'INTERNAL', 'PENDING') + + + * `PUBLISHED` - PUBLISHED + + * `CLOSED` - CLOSED + + * `DRAFT` - DRAFT + + * `INTERNAL` - INTERNAL + + * `PENDING` - PENDING + response: + docs: '' + type: root.PaginatedJobPostingList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 156a2bef-57e5-4def-8ed2-7c41bd9a554t + remote_id: '1341324' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + title: Platform - NYC + job_posting_urls: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: https://merge.dev/careers + url_type: JOB_POSTING + job: job + status: PUBLISHED + content: Apply at https://merge.dev/careers + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-16T00:00:00Z' + is_internal: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /positions + data: + - Varies by platform + retrieve: + path: /ats/v1/job-postings/{id} + method: GET + auth: true + docs: Returns a `JobPosting` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: JobPostingsRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.JobPosting + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 156a2bef-57e5-4def-8ed2-7c41bd9a554t + remote_id: '1341324' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + title: Platform - NYC + job_posting_urls: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: https://merge.dev/careers + url_type: JOB_POSTING + remote_was_deleted: true + job: job + status: PUBLISHED + content: Apply at https://merge.dev/careers + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-16T00:00:00Z' + is_internal: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /positions + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/jobs.yml b/.mock/definition/ats/jobs.yml new file mode 100644 index 000000000..7ec7441a2 --- /dev/null +++ b/.mock/definition/ats/jobs.yml @@ -0,0 +1,454 @@ +types: + JobsListRequestExpand: + enum: + - departments + - value: departments,hiring_managers + name: DepartmentsHiringManagers + - value: departments,hiring_managers,job_postings + name: DepartmentsHiringManagersJobPostings + - value: departments,hiring_managers,job_postings,recruiters + name: DepartmentsHiringManagersJobPostingsRecruiters + - value: departments,hiring_managers,recruiters + name: DepartmentsHiringManagersRecruiters + - value: departments,job_postings + name: DepartmentsJobPostings + - value: departments,job_postings,recruiters + name: DepartmentsJobPostingsRecruiters + - value: departments,offices + name: DepartmentsOffices + - value: departments,offices,hiring_managers + name: DepartmentsOfficesHiringManagers + - value: departments,offices,hiring_managers,job_postings + name: DepartmentsOfficesHiringManagersJobPostings + - value: departments,offices,hiring_managers,job_postings,recruiters + name: DepartmentsOfficesHiringManagersJobPostingsRecruiters + - value: departments,offices,hiring_managers,recruiters + name: DepartmentsOfficesHiringManagersRecruiters + - value: departments,offices,job_postings + name: DepartmentsOfficesJobPostings + - value: departments,offices,job_postings,recruiters + name: DepartmentsOfficesJobPostingsRecruiters + - value: departments,offices,recruiters + name: DepartmentsOfficesRecruiters + - value: departments,recruiters + name: DepartmentsRecruiters + - hiring_managers + - value: hiring_managers,job_postings + name: HiringManagersJobPostings + - value: hiring_managers,job_postings,recruiters + name: HiringManagersJobPostingsRecruiters + - value: hiring_managers,recruiters + name: HiringManagersRecruiters + - job_postings + - value: job_postings,recruiters + name: JobPostingsRecruiters + - offices + - value: offices,hiring_managers + name: OfficesHiringManagers + - value: offices,hiring_managers,job_postings + name: OfficesHiringManagersJobPostings + - value: offices,hiring_managers,job_postings,recruiters + name: OfficesHiringManagersJobPostingsRecruiters + - value: offices,hiring_managers,recruiters + name: OfficesHiringManagersRecruiters + - value: offices,job_postings + name: OfficesJobPostings + - value: offices,job_postings,recruiters + name: OfficesJobPostingsRecruiters + - value: offices,recruiters + name: OfficesRecruiters + - recruiters + source: + openapi: openapi/openapi.yml + JobsListRequestStatus: + enum: + - ARCHIVED + - CLOSED + - DRAFT + - OPEN + - PENDING + source: + openapi: openapi/openapi.yml + JobsRetrieveRequestExpand: + enum: + - departments + - value: departments,hiring_managers + name: DepartmentsHiringManagers + - value: departments,hiring_managers,job_postings + name: DepartmentsHiringManagersJobPostings + - value: departments,hiring_managers,job_postings,recruiters + name: DepartmentsHiringManagersJobPostingsRecruiters + - value: departments,hiring_managers,recruiters + name: DepartmentsHiringManagersRecruiters + - value: departments,job_postings + name: DepartmentsJobPostings + - value: departments,job_postings,recruiters + name: DepartmentsJobPostingsRecruiters + - value: departments,offices + name: DepartmentsOffices + - value: departments,offices,hiring_managers + name: DepartmentsOfficesHiringManagers + - value: departments,offices,hiring_managers,job_postings + name: DepartmentsOfficesHiringManagersJobPostings + - value: departments,offices,hiring_managers,job_postings,recruiters + name: DepartmentsOfficesHiringManagersJobPostingsRecruiters + - value: departments,offices,hiring_managers,recruiters + name: DepartmentsOfficesHiringManagersRecruiters + - value: departments,offices,job_postings + name: DepartmentsOfficesJobPostings + - value: departments,offices,job_postings,recruiters + name: DepartmentsOfficesJobPostingsRecruiters + - value: departments,offices,recruiters + name: DepartmentsOfficesRecruiters + - value: departments,recruiters + name: DepartmentsRecruiters + - hiring_managers + - value: hiring_managers,job_postings + name: HiringManagersJobPostings + - value: hiring_managers,job_postings,recruiters + name: HiringManagersJobPostingsRecruiters + - value: hiring_managers,recruiters + name: HiringManagersRecruiters + - job_postings + - value: job_postings,recruiters + name: JobPostingsRecruiters + - offices + - value: offices,hiring_managers + name: OfficesHiringManagers + - value: offices,hiring_managers,job_postings + name: OfficesHiringManagersJobPostings + - value: offices,hiring_managers,job_postings,recruiters + name: OfficesHiringManagersJobPostingsRecruiters + - value: offices,hiring_managers,recruiters + name: OfficesHiringManagersRecruiters + - value: offices,job_postings + name: OfficesJobPostings + - value: offices,job_postings,recruiters + name: OfficesJobPostingsRecruiters + - value: offices,recruiters + name: OfficesRecruiters + - recruiters + source: + openapi: openapi/openapi.yml + JobsScreeningQuestionsListRequestExpand: + enum: + - job + - options + - value: options,job + name: OptionsJob + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/jobs + method: GET + auth: true + docs: Returns a list of `Job` objects. + source: + openapi: openapi/openapi.yml + request: + name: JobsListRequest + query-parameters: + code: + type: optional + docs: If provided, will only return jobs with this code. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + offices: + type: optional + docs: >- + If provided, will only return jobs for this office; multiple + offices can be separated by commas. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + status: + type: optional + docs: >- + If provided, will only return jobs with this status. Options: + ('OPEN', 'CLOSED', 'DRAFT', 'ARCHIVED', 'PENDING') + + + * `OPEN` - OPEN + + * `CLOSED` - CLOSED + + * `DRAFT` - DRAFT + + * `ARCHIVED` - ARCHIVED + + * `PENDING` - PENDING + response: + docs: '' + type: root.PaginatedJobList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 022a2bef-57e5-4def-8ed2-7c41bd9a5ed8 + remote_id: '8765432' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Software Engineer (Merge is actually hiring btw) + description: >- + If you're reading this documentation, you might be a good + fit for Merge! + code: C0025 + status: OPEN + type: POSTING + job_postings: + - 2r3c1341-a20f-4e51-b72c-f3830a16c97b + - 543ed912-33ec-444e-a215-8d71cc42fc12 + job_posting_urls: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: https://merge.dev/careers + url_type: JOB_POSTING + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-16T00:00:00Z' + confidential: true + departments: + - 5b3c1341-a20f-4e51-b72c-f3830a16c97b + - d6e687d6-0c36-48a1-8114-35324b5cb38f + offices: + - 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + hiring_managers: + - 787ed912-33ec-444e-a215-8d71cc42fc12 + recruiters: + - 787ed912-33ec-444e-a215-8d71cc42fc12 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /positions + data: + - Varies by platform + retrieve: + path: /ats/v1/jobs/{id} + method: GET + auth: true + docs: Returns a `Job` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: JobsRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.Job + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 022a2bef-57e5-4def-8ed2-7c41bd9a5ed8 + remote_id: '8765432' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Software Engineer (Merge is actually hiring btw) + description: >- + If you're reading this documentation, you might be a good fit + for Merge! + code: C0025 + status: OPEN + type: POSTING + job_postings: + - 2r3c1341-a20f-4e51-b72c-f3830a16c97b + - 543ed912-33ec-444e-a215-8d71cc42fc12 + job_posting_urls: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + value: https://merge.dev/careers + url_type: JOB_POSTING + remote_was_deleted: true + remote_created_at: '2021-10-15T00:00:00Z' + remote_updated_at: '2021-10-16T00:00:00Z' + confidential: true + departments: + - 5b3c1341-a20f-4e51-b72c-f3830a16c97b + - d6e687d6-0c36-48a1-8114-35324b5cb38f + offices: + - 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + hiring_managers: + - 787ed912-33ec-444e-a215-8d71cc42fc12 + recruiters: + - 787ed912-33ec-444e-a215-8d71cc42fc12 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /positions + data: + - Varies by platform + screeningQuestionsList: + path: /ats/v1/jobs/{job_id}/screening-questions + method: GET + auth: true + docs: Returns a list of `ScreeningQuestion` objects. + source: + openapi: openapi/openapi.yml + path-parameters: + job_id: string + request: + name: JobsScreeningQuestionsListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedScreeningQuestionList + status-code: 200 + examples: + - path-parameters: + job_id: job_id + headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0238cbc6-6040-430a-848e-aaiehfhdbadf4ae + remote_id: '23729392' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + job: job + description: >- + Are you currently authorized to work for any employer in the + country outlined for this role? + title: Work Authorisation + type: DATE + required: true + options: + - remote_id: '19281' + label: I am currently authorised + - remote_id: '38372' + label: I am currently not eligible + remote_was_deleted: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/linkToken.yml b/.mock/definition/ats/linkToken.yml new file mode 100644 index 000000000..1548f705c --- /dev/null +++ b/.mock/definition/ats/linkToken.yml @@ -0,0 +1,152 @@ +imports: + root: __package__.yml +types: + EndUserDetailsRequestLanguage: + discriminated: false + docs: >- + The following subset of IETF language tags can be used to configure + localization. + + + * `en` - en + + * `de` - de + union: + - root.LanguageEnum + - string + source: + openapi: openapi/openapi.yml + inline: true +service: + auth: false + base-path: '' + endpoints: + create: + path: /ats/v1/link-token + method: POST + auth: true + docs: Creates a link token to be used when linking a new end user. + source: + openapi: openapi/openapi.yml + request: + name: EndUserDetailsRequest + body: + properties: + end_user_email_address: + type: string + docs: >- + Your end user's email address. This is purely for identification + purposes - setting this value will not cause any emails to be + sent. + validation: + minLength: 1 + maxLength: 100 + end_user_organization_name: + type: string + docs: Your end user's organization. + validation: + minLength: 1 + maxLength: 100 + end_user_origin_id: + type: string + docs: >- + This unique identifier typically represents the ID for your end + user in your product's database. This value must be distinct + from other Linked Accounts' unique identifiers. + validation: + minLength: 1 + maxLength: 100 + categories: + docs: The integration categories to show in Merge Link. + type: list + integration: + type: optional + docs: >- + The slug of a specific pre-selected integration for this linking + flow token. For examples of slugs, see + https://docs.merge.dev/guides/merge-link/single-integration/. + validation: + minLength: 1 + link_expiry_mins: + type: optional + docs: >- + An integer number of minutes between [30, 720 or 10080 if for a + Magic Link URL] for how long this token is valid. Defaults to + 30. + default: 30 + validation: + min: 30 + max: 10080 + should_create_magic_link_url: + type: optional + docs: >- + Whether to generate a Magic Link URL. Defaults to false. For + more information on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + hide_admin_magic_link: + type: optional + docs: >- + Whether to generate a Magic Link URL on the Admin Needed screen + during the linking flow. Defaults to false. For more information + on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + common_models: + type: optional> + docs: >- + An array of objects to specify the models and fields that will + be disabled for a given Linked Account. Each object uses + model_id, enabled_actions, and disabled_fields to specify the + model, method, and fields that are scoped for a given Linked + Account. + category_common_model_scopes: + type: >- + optional>>> + docs: >- + When creating a Link Token, you can set permissions for Common + Models that will apply to the account that is going to be + linked. Any model or field not specified in link token payload + will default to existing settings. + language: + type: optional + docs: >- + The following subset of IETF language tags can be used to + configure localization. + + + * `en` - en + + * `de` - de + are_syncs_disabled: + type: optional + docs: >- + The boolean that indicates whether initial, periodic, and force + syncs will be disabled. + default: false + integration_specific_config: + type: optional> + docs: >- + A JSON object containing integration-specific configuration + options. + content-type: application/json + response: + docs: '' + type: root.LinkToken + status-code: 200 + examples: + - request: + end_user_email_address: example@gmail.com + end_user_organization_name: Test Organization + end_user_origin_id: '12345' + categories: + - hris + - ats + response: + body: + link_token: necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0 + integration_name: Lever + magic_link_url: https://link.merge.dev/asdfjkl12345jsndfgi2i83n + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/linkedAccounts.yml b/.mock/definition/ats/linkedAccounts.yml new file mode 100644 index 000000000..7acf3099c --- /dev/null +++ b/.mock/definition/ats/linkedAccounts.yml @@ -0,0 +1,150 @@ +types: + LinkedAccountsListRequestCategory: + enum: + - accounting + - ats + - crm + - filestorage + - hris + - mktg + - ticketing + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/linked-accounts + method: GET + auth: true + docs: List linked accounts for your organization. + source: + openapi: openapi/openapi.yml + request: + name: LinkedAccountsListRequest + query-parameters: + category: + type: optional + docs: >- + Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, + `mktg`, `ticketing` + + + * `hris` - hris + + * `ats` - ats + + * `accounting` - accounting + + * `ticketing` - ticketing + + * `crm` - crm + + * `mktg` - mktg + + * `filestorage` - filestorage + cursor: + type: optional + docs: The pagination cursor value. + end_user_email_address: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given email address. + end_user_organization_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given organization name. + end_user_origin_id: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given origin ID. + end_user_origin_ids: + type: optional + docs: >- + Comma-separated list of EndUser origin IDs, making it possible to + specify multiple EndUsers at once. + id: + type: optional + validation: + format: uuid + ids: + type: optional + docs: >- + Comma-separated list of LinkedAccount IDs, making it possible to + specify multiple LinkedAccounts at once. + include_duplicates: + type: optional + docs: >- + If `true`, will include complete production duplicates of the + account specified by the `id` query parameter in the response. + `id` must be for a complete production linked account. + integration_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given integration name. + is_test_account: + type: optional + docs: >- + If included, will only include test linked accounts. If not + included, will only include non-test linked accounts. + page_size: + type: optional + docs: Number of results to return per page. + status: + type: optional + docs: >- + Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, + `RELINK_NEEDED` + response: + docs: '' + type: root.PaginatedAccountDetailsAndActionsList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: e59b1821-f85c-4e28-a6b3-1804156f3563 + category: hris + status: COMPLETE + status_detail: Invalid login credentials + end_user_origin_id: 3ac95cde-6c7f-4eef-afec-be710b42308d + end_user_organization_name: Foo Bar, LLC + end_user_email_address: hradmin@foobar.dev + subdomain: foobar + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + integration: + name: name + categories: + - hris + color: color + slug: slug + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + integration_specific_fields: + integration_specific_field: Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/offers.yml b/.mock/definition/ats/offers.yml new file mode 100644 index 000000000..cb2591c86 --- /dev/null +++ b/.mock/definition/ats/offers.yml @@ -0,0 +1,201 @@ +types: + OffersListRequestExpand: + enum: + - application + - value: application,creator + name: ApplicationCreator + - creator + source: + openapi: openapi/openapi.yml + OffersRetrieveRequestExpand: + enum: + - application + - value: application,creator + name: ApplicationCreator + - creator + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/offers + method: GET + auth: true + docs: Returns a list of `Offer` objects. + source: + openapi: openapi/openapi.yml + request: + name: OffersListRequest + query-parameters: + application_id: + type: optional + docs: If provided, will only return offers for this application. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + creator_id: + type: optional + docs: If provided, will only return offers created by this user. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.PaginatedOfferList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: dd85625c-6a59-446f-a317-6de64d83bae7 + remote_id: '9876' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + application: application + creator: creator + remote_created_at: '2021-10-15T00:00:00Z' + closed_at: '2021-10-16T00:00:00Z' + sent_at: '2021-10-15T00:00:00Z' + start_date: '2021-11-15T00:00:00Z' + status: DRAFT + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /offers + data: + - Varies by platform + retrieve: + path: /ats/v1/offers/{id} + method: GET + auth: true + docs: Returns an `Offer` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: OffersRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.Offer + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: dd85625c-6a59-446f-a317-6de64d83bae7 + remote_id: '9876' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + application: application + creator: creator + remote_created_at: '2021-10-15T00:00:00Z' + closed_at: '2021-10-16T00:00:00Z' + sent_at: '2021-10-15T00:00:00Z' + start_date: '2021-11-15T00:00:00Z' + status: DRAFT + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /offers + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/offices.yml b/.mock/definition/ats/offices.yml new file mode 100644 index 000000000..080386b86 --- /dev/null +++ b/.mock/definition/ats/offices.yml @@ -0,0 +1,138 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/offices + method: GET + auth: true + docs: Returns a list of `Office` objects. + source: + openapi: openapi/openapi.yml + request: + name: OfficesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedOfficeList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: '876556788' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: SF Office + location: Embarcadero Center 2 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /locations + data: + - Varies by platform + retrieve: + path: /ats/v1/offices/{id} + method: GET + auth: true + docs: Returns an `Office` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: OfficesRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Office + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 9871b4a9-f5d2-4f3b-a66b-dfedbed42c46 + remote_id: '876556788' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: SF Office + location: Embarcadero Center 2 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /locations + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/passthrough.yml b/.mock/definition/ats/passthrough.yml new file mode 100644 index 000000000..7141a6bdf --- /dev/null +++ b/.mock/definition/ats/passthrough.yml @@ -0,0 +1,40 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /ats/v1/passthrough + method: POST + auth: true + docs: Pull data from an endpoint not currently supported by Merge. + source: + openapi: openapi/openapi.yml + request: + body: root.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: root.RemoteResponse + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/regenerateKey.yml b/.mock/definition/ats/regenerateKey.yml new file mode 100644 index 000000000..1ea4149a7 --- /dev/null +++ b/.mock/definition/ats/regenerateKey.yml @@ -0,0 +1,36 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /ats/v1/regenerate-key + method: POST + auth: true + docs: Exchange remote keys. + source: + openapi: openapi/openapi.yml + request: + name: RemoteKeyForRegenerationRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/rejectReasons.yml b/.mock/definition/ats/rejectReasons.yml new file mode 100644 index 000000000..1552c46c9 --- /dev/null +++ b/.mock/definition/ats/rejectReasons.yml @@ -0,0 +1,136 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/reject-reasons + method: GET + auth: true + docs: Returns a list of `RejectReason` objects. + source: + openapi: openapi/openapi.yml + request: + name: RejectReasonsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedRejectReasonList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 8be99a4a-f8d4-4339-bf1e-30eac970e217 + remote_id: '876556788' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Not passionate enough about APIs. + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /rejection-reasons + data: + - Varies by platform + retrieve: + path: /ats/v1/reject-reasons/{id} + method: GET + auth: true + docs: Returns a `RejectReason` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: RejectReasonsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.RejectReason + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 8be99a4a-f8d4-4339-bf1e-30eac970e217 + remote_id: '876556788' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Not passionate enough about APIs. + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /rejection-reasons + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/scopes.yml b/.mock/definition/ats/scopes.yml new file mode 100644 index 000000000..422d3fa4e --- /dev/null +++ b/.mock/definition/ats/scopes.yml @@ -0,0 +1,160 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + default_scopes_retrieve: + path: /ats/v1/default-scopes + method: GET + auth: true + docs: >- + Get the default permissions for Merge Common Models and fields across + all Linked Accounts of a given category. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.CommonModelScopeApi + status-code: 200 + examples: + - response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_retrieve: + path: /ats/v1/linked-account-scopes + method: GET + auth: true + docs: >- + Get all available permissions for Merge Common Models and fields for a + single Linked Account. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_create: + path: /ats/v1/linked-account-scopes + method: POST + auth: true + docs: >- + Update permissions for any Common Model or field for a single Linked + Account. Any Scopes not set in this POST request will inherit the + default Scopes. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) + source: + openapi: openapi/openapi.yml + request: + name: LinkedAccountCommonModelScopeDeserializerRequest + body: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + content-type: application/json + response: + docs: '' + type: root.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + request: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - home_location + disabled_fields: + - work_location + - model_name: Benefit + model_permissions: + WRITE: + is_enabled: false + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/scorecards.yml b/.mock/definition/ats/scorecards.yml new file mode 100644 index 000000000..6f83e854d --- /dev/null +++ b/.mock/definition/ats/scorecards.yml @@ -0,0 +1,216 @@ +types: + ScorecardsListRequestExpand: + enum: + - application + - value: application,interview + name: ApplicationInterview + - value: application,interview,interviewer + name: ApplicationInterviewInterviewer + - value: application,interviewer + name: ApplicationInterviewer + - interview + - value: interview,interviewer + name: InterviewInterviewer + - interviewer + source: + openapi: openapi/openapi.yml + ScorecardsRetrieveRequestExpand: + enum: + - application + - value: application,interview + name: ApplicationInterview + - value: application,interview,interviewer + name: ApplicationInterviewInterviewer + - value: application,interviewer + name: ApplicationInterviewer + - interview + - value: interview,interviewer + name: InterviewInterviewer + - interviewer + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/scorecards + method: GET + auth: true + docs: Returns a list of `Scorecard` objects. + source: + openapi: openapi/openapi.yml + request: + name: ScorecardsListRequest + query-parameters: + application_id: + type: optional + docs: If provided, will only return scorecards for this application. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + interview_id: + type: optional + docs: If provided, will only return scorecards for this interview. + interviewer_id: + type: optional + docs: If provided, will only return scorecards for this interviewer. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.PaginatedScorecardList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3eab2f17-eeb1-450d-97f0-029d8be1e06f + remote_id: '22234' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + application: application + interview: interview + interviewer: interviewer + remote_created_at: '2021-10-15T00:00:00Z' + submitted_at: '2021-10-15T00:00:00Z' + overall_recommendation: DEFINITELY_NO + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /ratings + data: + - Varies by platform + retrieve: + path: /ats/v1/scorecards/{id} + method: GET + auth: true + docs: Returns a `Scorecard` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: ScorecardsRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.Scorecard + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 3eab2f17-eeb1-450d-97f0-029d8be1e06f + remote_id: '22234' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + application: application + interview: interview + interviewer: interviewer + remote_created_at: '2021-10-15T00:00:00Z' + submitted_at: '2021-10-15T00:00:00Z' + overall_recommendation: DEFINITELY_NO + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /ratings + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/syncStatus.yml b/.mock/definition/ats/syncStatus.yml new file mode 100644 index 000000000..99b9bd54e --- /dev/null +++ b/.mock/definition/ats/syncStatus.yml @@ -0,0 +1,55 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/sync-status + method: GET + auth: true + docs: >- + Get sync status for the current sync and the most recently finished + sync. `last_sync_start` represents the most recent time any sync began. + `last_sync_finished` represents the most recent time any sync completed. + These timestamps may correspond to different sync instances which may + result in a sync start time being later than a separate sync completed + time. To ensure you are retrieving the latest available data reference + the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. + Possible values for `status` and `last_sync_result` are `DISABLED`, + `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more + about sync status in our [Help + Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + source: + openapi: openapi/openapi.yml + request: + name: SyncStatusListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedSyncStatusList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - model_name: Candidate + model_id: ats.Candidate + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/tags.yml b/.mock/definition/ats/tags.yml new file mode 100644 index 000000000..f6007d903 --- /dev/null +++ b/.mock/definition/ats/tags.yml @@ -0,0 +1,88 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/tags + method: GET + auth: true + docs: Returns a list of `Tag` objects. + source: + openapi: openapi/openapi.yml + request: + name: TagsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedTagList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - remote_id: '4567' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: High-Priority + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /tags + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/users.yml b/.mock/definition/ats/users.yml new file mode 100644 index 000000000..3bd2db1fe --- /dev/null +++ b/.mock/definition/ats/users.yml @@ -0,0 +1,173 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/users + method: GET + auth: true + docs: Returns a list of `RemoteUser` objects. + source: + openapi: openapi/openapi.yml + request: + name: UsersListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + email: + type: optional + docs: >- + If provided, will only return remote users with the given email + address + validation: + format: email + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.PaginatedRemoteUserList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b82302de-852e-4e60-b050-edf9da3b7c02 + remote_id: '344321' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Shensi + last_name: Ding + email: hello@merge.dev + disabled: true + remote_created_at: '2020-11-10T00:00:00Z' + access_role: SUPER_ADMIN + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /users + data: + - Varies by platform + retrieve: + path: /ats/v1/users/{id} + method: GET + auth: true + docs: Returns a `RemoteUser` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: UsersRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.RemoteUser + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: b82302de-852e-4e60-b050-edf9da3b7c02 + remote_id: '344321' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Shensi + last_name: Ding + email: hello@merge.dev + disabled: true + remote_created_at: '2020-11-10T00:00:00Z' + access_role: SUPER_ADMIN + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /users + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ats/webhookReceivers.yml b/.mock/definition/ats/webhookReceivers.yml new file mode 100644 index 000000000..91d2ae656 --- /dev/null +++ b/.mock/definition/ats/webhookReceivers.yml @@ -0,0 +1,61 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ats/v1/webhook-receivers + method: GET + auth: true + docs: Returns a list of `WebhookReceiver` objects. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - event: event + is_active: true + key: key + create: + path: /ats/v1/webhook-receivers + method: POST + auth: true + docs: Creates a `WebhookReceiver` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: WebhookReceiverRequest + body: + properties: + event: + type: string + validation: + minLength: 1 + is_active: boolean + key: + type: optional + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.WebhookReceiver + status-code: 201 + examples: + - headers: {} + request: + event: event + is_active: true + response: + body: + event: event + is_active: true + key: key + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/__package__.yml b/.mock/definition/crm/__package__.yml new file mode 100644 index 000000000..4ad8f75de --- /dev/null +++ b/.mock/definition/crm/__package__.yml @@ -0,0 +1,5741 @@ +types: + AccountOwner: + discriminated: false + docs: The account's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + Account: + docs: |- + # The Account Object + ### Description + The `Account` object is used to represent a company in a CRM system. + ### Usage Example + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + owner: + type: optional + docs: The account's owner. + name: + type: optional + docs: The account's name. + description: + type: optional + docs: The account's description. + industry: + type: optional + docs: The account's industry. + website: + type: optional + docs: The account's website. + validation: + format: uri + maxLength: 2000 + number_of_employees: + type: optional + docs: The account's number of employees. + validation: + min: -2147483648 + max: 2147483647 + addresses: optional> + phone_numbers: + type: optional> + access: read-only + last_activity_at: + type: optional + docs: >- + The last date (either most recent or furthest in the future) of when + an activity occurs in an account. + remote_updated_at: + type: optional + docs: >- + When the CRM system account data was last modified by a user with a + login. + remote_created_at: + type: optional + docs: When the third party's account was created. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + AccountDetailsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountDetails: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + integration: + type: optional + access: read-only + integration_slug: + type: optional + access: read-only + category: optional + end_user_origin_id: + type: optional + access: read-only + end_user_organization_name: + type: optional + access: read-only + end_user_email_address: + type: optional + validation: + format: email + access: read-only + status: + type: optional + access: read-only + webhook_listener_url: + type: optional + validation: + format: uri + access: read-only + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + access: read-only + account_type: + type: optional + access: read-only + completed_at: + type: optional + docs: The time at which account completes the linking flow. + source: + openapi: openapi/openapi.yml + AccountDetailsAndActionsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountDetailsAndActionsStatus: + discriminated: false + union: + - AccountDetailsAndActionsStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountDetailsAndActions: + docs: >- + # The LinkedAccount Object + + ### Description + + The `LinkedAccount` object is used to represent an end user's link with a + specific integration. + + + ### Usage Example + + View a list of your organization's `LinkedAccount` objects. + properties: + id: string + category: optional + status: AccountDetailsAndActionsStatus + status_detail: optional + end_user_origin_id: optional + end_user_organization_name: string + end_user_email_address: string + subdomain: + type: optional + docs: The tenant or domain the customer has provided access to. + webhook_listener_url: string + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + integration: optional + account_type: string + completed_at: datetime + source: + openapi: openapi/openapi.yml + AccountDetailsAndActionsIntegration: + properties: + name: string + categories: list + image: optional + square_image: optional + color: string + slug: string + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: openapi/openapi.yml + AccountDetailsAndActionsStatusEnum: + enum: + - COMPLETE + - INCOMPLETE + - RELINK_NEEDED + - IDLE + docs: |- + * `COMPLETE` - COMPLETE + * `INCOMPLETE` - INCOMPLETE + * `RELINK_NEEDED` - RELINK_NEEDED + * `IDLE` - IDLE + source: + openapi: openapi/openapi.yml + AccountIntegration: + properties: + name: + type: string + docs: Company name. + abbreviated_name: + type: optional + docs: >- + Optional. This shortened name appears in places with limited space, + usually in conjunction with the platform's logo (e.g., Merge Link + menu).

Example: Workforce Now (in lieu of ADP Workforce + Now), SuccessFactors (in lieu of SAP SuccessFactors) + categories: + type: optional> + docs: >- + Category or categories this integration belongs to. Multiple + categories should be comma separated, i.e. [ats, hris]. + access: read-only + image: + type: optional + docs: Company logo in rectangular shape. + validation: + format: uri + square_image: + type: optional + docs: Company logo in square shape. + validation: + format: uri + color: + type: optional + docs: >- + The color of this integration used for buttons and text throughout the + app and landing pages. Choose a darker, saturated color. + validation: + pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ + maxLength: 18 + slug: + type: optional + access: read-only + api_endpoints_to_documentation_urls: + type: optional> + docs: >- + Mapping of API endpoints to documentation urls for support. Example: + {'GET': [['/common-model-scopes', + 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', + 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], + 'POST': []} + webhook_setup_guide_url: + type: optional + docs: >- + Setup guide URL for third party webhook creation. Exposed in Merge + Docs. + category_beta_status: + type: optional> + docs: Category or categories this integration is in beta status for. + access: read-only + source: + openapi: openapi/openapi.yml + AccountRequestOwner: + discriminated: false + docs: The account's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + AccountRequest: + docs: |- + # The Account Object + ### Description + The `Account` object is used to represent a company in a CRM system. + ### Usage Example + TODO + properties: + owner: + type: optional + docs: The account's owner. + name: + type: optional + docs: The account's name. + description: + type: optional + docs: The account's description. + industry: + type: optional + docs: The account's industry. + website: + type: optional + docs: The account's website. + validation: + format: uri + maxLength: 2000 + number_of_employees: + type: optional + docs: The account's number of employees. + validation: + min: -2147483648 + max: 2147483647 + addresses: optional> + last_activity_at: + type: optional + docs: >- + The last date (either most recent or furthest in the future) of when + an activity occurs in an account. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + AccountToken: + properties: + account_token: string + integration: AccountIntegration + id: string + source: + openapi: openapi/openapi.yml + ActivityTypeEnum: + enum: + - CALL + - MEETING + - EMAIL + docs: |- + * `CALL` - CALL + * `MEETING` - MEETING + * `EMAIL` - EMAIL + source: + openapi: openapi/openapi.yml + AddressCountry: + discriminated: false + docs: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + union: + - CountryEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AddressAddressType: + discriminated: false + docs: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + union: + - AddressTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Address: + docs: |- + # The Address Object + ### Description + The `Address` object is used to represent an entity's address. + ### Usage Example + TODO + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + street_1: + type: optional + docs: Line 1 of the address's street. + street_2: + type: optional + docs: Line 2 of the address's street. + city: + type: optional + docs: The address's city. + state: + type: optional + docs: The address's state. + postal_code: + type: optional + docs: The address's postal code. + country: + type: optional + docs: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + address_type: + type: optional + docs: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + source: + openapi: openapi/openapi.yml + AddressRequestCountry: + discriminated: false + docs: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + union: + - CountryEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AddressRequestAddressType: + discriminated: false + docs: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + union: + - AddressTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AddressRequest: + docs: |- + # The Address Object + ### Description + The `Address` object is used to represent an entity's address. + ### Usage Example + TODO + properties: + street_1: + type: optional + docs: Line 1 of the address's street. + street_2: + type: optional + docs: Line 2 of the address's street. + city: + type: optional + docs: The address's city. + state: + type: optional + docs: The address's state. + postal_code: + type: optional + docs: The address's postal code. + country: + type: optional + docs: |- + The address's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + address_type: + type: optional + docs: |- + The address type. + + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + AddressTypeEnum: + enum: + - BILLING + - SHIPPING + docs: |- + * `BILLING` - BILLING + * `SHIPPING` - SHIPPING + source: + openapi: openapi/openapi.yml + AdvancedMetadata: + properties: + id: + type: string + validation: + format: uuid + display_name: optional + description: optional + is_required: optional + is_custom: optional + field_choices: optional> + source: + openapi: openapi/openapi.yml + AssociationAssociationType: + discriminated: false + docs: The association type the association belongs to. + union: + - type: string + validation: + format: uuid + - AssociationType + source: + openapi: openapi/openapi.yml + inline: true + Association: + docs: |- + # The Association Object + ### Description + The `Association` record refers to an instance of an Association Type. + ### Usage Example + TODO + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + source_object: + type: optional + validation: + format: uuid + access: read-only + target_object: + type: optional + validation: + format: uuid + access: read-only + association_type: + type: optional + docs: The association type the association belongs to. + source: + openapi: openapi/openapi.yml + AssociationSubType: + properties: + id: + type: optional + access: read-only + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + origin_type: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + AssociationTypeCardinality: + discriminated: false + union: + - CardinalityEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AssociationType: + docs: >- + # The AssociationType Object + + ### Description + + The `Association Type` object represents the relationship between two + objects. + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + source_object_class: + type: optional> + docs: >- + The class of the source object (Custom Object or Common Model) for the + association type. + access: read-only + target_object_classes: + type: optional> + access: read-only + remote_key_name: optional + display_name: optional + cardinality: optional + is_required: optional + source: + openapi: openapi/openapi.yml + AssociationTypeRequestRequest: + properties: + source_object_class: ObjectClassDescriptionRequest + target_object_classes: list + remote_key_name: + type: string + validation: + minLength: 1 + display_name: + type: optional + validation: + minLength: 1 + cardinality: optional + is_required: + type: optional + default: false + source: + openapi: openapi/openapi.yml + AsyncPassthroughReciept: + properties: + async_passthrough_receipt_id: + type: string + validation: + format: uuid + source: + openapi: openapi/openapi.yml + AuditLogEventRole: + discriminated: false + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by a + user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + union: + - RoleEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AuditLogEventEventType: + discriminated: false + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + union: + - EventTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AuditLogEvent: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + user_name: + type: optional + docs: The User's full name at the time of this Event occurring. + validation: + maxLength: 200 + user_email: + type: optional + docs: The User's email at the time of this Event occurring. + validation: + format: email + maxLength: 254 + role: + type: AuditLogEventRole + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by + a user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + ip_address: + type: string + validation: + maxLength: 45 + event_type: + type: AuditLogEventEventType + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - + CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - + DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + event_description: string + created_at: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + AvailableActions: + docs: >- + # The AvailableActions Object + + ### Description + + The `Activity` object is used to see all available model/operation + combinations for an integration. + + + ### Usage Example + + Fetch all the actions available for the `Zenefits` integration. + properties: + integration: AccountIntegration + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: openapi/openapi.yml + CrmAccountResponse: + properties: + model: Account + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + CrmAssociationTypeResponse: + properties: + model: AssociationType + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + CrmContactResponse: + properties: + model: Contact + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + CrmCustomObjectResponse: + properties: + model: CustomObject + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + CardinalityEnum: + enum: + - ONE_TO_ONE + - MANY_TO_ONE + - MANY_TO_MANY + - ONE_TO_MANY + docs: |- + * `ONE_TO_ONE` - ONE_TO_ONE + * `MANY_TO_ONE` - MANY_TO_ONE + * `MANY_TO_MANY` - MANY_TO_MANY + * `ONE_TO_MANY` - ONE_TO_MANY + source: + openapi: openapi/openapi.yml + CategoriesEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: openapi/openapi.yml + CategoryEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: openapi/openapi.yml + CommonModelScopeApi: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + source: + openapi: openapi/openapi.yml + CommonModelScopesBodyRequest: + properties: + model_id: + type: string + validation: + minLength: 1 + enabled_actions: list + disabled_fields: list + source: + openapi: openapi/openapi.yml + ContactAccount: + discriminated: false + docs: The contact's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + ContactOwner: + discriminated: false + docs: The contact's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + Contact: + docs: >- + # The Contact Object + + ### Description + + The `Contact` object is used to represent an existing point of contact at + a company in a CRM system. + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + first_name: + type: optional + docs: The contact's first name. + last_name: + type: optional + docs: The contact's last name. + account: + type: optional + docs: The contact's account. + owner: + type: optional + docs: The contact's owner. + addresses: optional> + email_addresses: optional> + phone_numbers: optional> + last_activity_at: + type: optional + docs: When the contact's last activity occurred. + remote_created_at: + type: optional + docs: When the third party's contact was created. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + ContactRequestAccount: + discriminated: false + docs: The contact's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + ContactRequestOwner: + discriminated: false + docs: The contact's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + ContactRequest: + docs: >- + # The Contact Object + + ### Description + + The `Contact` object is used to represent an existing point of contact at + a company in a CRM system. + + ### Usage Example + + TODO + properties: + first_name: + type: optional + docs: The contact's first name. + last_name: + type: optional + docs: The contact's last name. + account: + type: optional + docs: The contact's account. + owner: + type: optional + docs: The contact's owner. + addresses: optional> + email_addresses: optional> + phone_numbers: optional> + last_activity_at: + type: optional + docs: When the contact's last activity occurred. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + CountryEnum: + enum: + - AF + - AX + - AL + - DZ + - AS + - AD + - AO + - AI + - AQ + - AG + - AR + - AM + - AW + - AU + - AT + - AZ + - BS + - BH + - BD + - BB + - BY + - BE + - BZ + - BJ + - BM + - BT + - BO + - BQ + - BA + - BW + - BV + - BR + - IO + - BN + - BG + - BF + - BI + - CV + - KH + - CM + - CA + - KY + - CF + - TD + - CL + - CN + - CX + - CC + - CO + - KM + - CG + - CD + - CK + - CR + - CI + - HR + - CU + - CW + - CY + - CZ + - DK + - DJ + - DM + - DO + - EC + - EG + - SV + - GQ + - ER + - EE + - SZ + - ET + - FK + - FO + - FJ + - FI + - FR + - GF + - PF + - TF + - GA + - GM + - GE + - DE + - GH + - GI + - GR + - GL + - GD + - GP + - GU + - GT + - GG + - GN + - GW + - GY + - HT + - HM + - VA + - HN + - HK + - HU + - IS + - IN + - ID + - IR + - IQ + - IE + - IM + - IL + - IT + - JM + - JP + - JE + - JO + - KZ + - KE + - KI + - KW + - KG + - LA + - LV + - LB + - LS + - LR + - LY + - LI + - LT + - LU + - MO + - MG + - MW + - MY + - MV + - ML + - MT + - MH + - MQ + - MR + - MU + - YT + - MX + - FM + - MD + - MC + - MN + - ME + - MS + - MA + - MZ + - MM + - NA + - NR + - NP + - NL + - NC + - NZ + - NI + - NE + - NG + - NU + - NF + - KP + - MK + - MP + - 'NO' + - OM + - PK + - PW + - PS + - PA + - PG + - PY + - PE + - PH + - PN + - PL + - PT + - PR + - QA + - RE + - RO + - RU + - RW + - BL + - SH + - KN + - LC + - MF + - PM + - VC + - WS + - SM + - ST + - SA + - SN + - RS + - SC + - SL + - SG + - SX + - SK + - SI + - SB + - SO + - ZA + - GS + - KR + - SS + - ES + - LK + - SD + - SR + - SJ + - SE + - CH + - SY + - TW + - TJ + - TZ + - TH + - TL + - TG + - TK + - TO + - TT + - TN + - TR + - TM + - TC + - TV + - UG + - UA + - AE + - GB + - UM + - US + - UY + - UZ + - VU + - VE + - VN + - VG + - VI + - WF + - EH + - YE + - ZM + - ZW + docs: |- + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + source: + openapi: openapi/openapi.yml + CustomObject: + docs: |- + # The CustomObject Object + ### Description + The `Custom Object` record refers to an instance of a Custom Object Class. + ### Usage Example + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + object_class: + type: optional + docs: The custom object class the custom object record belongs to. + validation: + format: uuid + fields: + type: optional> + docs: The fields and values contained within the custom object record. + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + CustomObjectClass: + docs: >- + # The Custom Object Class Object + + ### Description + + The `Custom Object Class` object is used to represent a Custom Object + Schema in the remote system. + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + access: read-only + modified_at: + type: optional + access: read-only + name: + type: optional + docs: The custom object class's name. + description: + type: optional + docs: The custom object class's description. + labels: + type: optional>> + docs: The custom object class's singular and plural labels. + access: read-only + fields: + type: optional> + access: read-only + association_types: + type: optional>> + docs: >- + The types of associations with other models that the custom object + class can have. + access: read-only + source: + openapi: openapi/openapi.yml + CustomObjectRequest: + properties: + fields: map + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + DataPassthroughRequest: + docs: >- + # The DataPassthrough Object + + ### Description + + The `DataPassthrough` object is used to send information to an + otherwise-unsupported third-party endpoint. + + + ### Usage Example + + Create a `DataPassthrough` to get team hierarchies from your Rippling + integration. + properties: + method: MethodEnum + path: + type: string + docs: The path of the request in the third party's platform. + validation: + minLength: 1 + base_url_override: + type: optional + docs: An optional override of the third party's base url for the request. + validation: + minLength: 1 + data: + type: optional + docs: >- + The data with the request. You must include a `request_format` + parameter matching the data's format + validation: + minLength: 1 + multipart_form_data: + type: optional> + docs: >- + Pass an array of `MultipartFormField` objects in here instead of using + the `data` param if `request_format` is set to `MULTIPART`. + headers: + type: optional> + docs: >- + The headers to use for the request (Merge will handle the account's + authorization headers). `Content-Type` header is required for + passthrough. Choose content type corresponding to expected format of + receiving server. + request_format: optional + normalize_response: + type: optional + docs: >- + Optional. If true, the response will always be an object of the form + `{"type": T, "value": ...}` where `T` will be one of `string, boolean, + number, null, array, object`. + source: + openapi: openapi/openapi.yml + DebugModeLog: + properties: + log_id: string + dashboard_view: string + log_summary: DebugModelLogSummary + source: + openapi: openapi/openapi.yml + DebugModelLogSummary: + properties: + url: string + method: string + status_code: integer + source: + openapi: openapi/openapi.yml + DirectionEnum: + enum: + - INBOUND + - OUTBOUND + docs: |- + * `INBOUND` - INBOUND + * `OUTBOUND` - OUTBOUND + source: + openapi: openapi/openapi.yml + EmailAddress: + docs: |- + # The EmailAddress Object + ### Description + The `EmailAddress` object is used to represent an entity's email address. + ### Usage Example + Fetch from the `GET Contact` endpoint and view their email addresses. + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + email_address: + type: optional + docs: The email address. + email_address_type: + type: optional + docs: The email address's type. + source: + openapi: openapi/openapi.yml + EmailAddressRequest: + docs: |- + # The EmailAddress Object + ### Description + The `EmailAddress` object is used to represent an entity's email address. + ### Usage Example + Fetch from the `GET Contact` endpoint and view their email addresses. + properties: + email_address: + type: optional + docs: The email address. + email_address_type: + type: optional + docs: The email address's type. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + EnabledActionsEnum: + enum: + - READ + - WRITE + docs: |- + * `READ` - READ + * `WRITE` - WRITE + source: + openapi: openapi/openapi.yml + EncodingEnum: + enum: + - RAW + - BASE64 + - GZIP_BASE64 + docs: |- + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + source: + openapi: openapi/openapi.yml + EngagementOwner: + discriminated: false + docs: The engagement's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + EngagementDirection: + discriminated: false + docs: |- + The engagement's direction. + + * `INBOUND` - INBOUND + * `OUTBOUND` - OUTBOUND + union: + - DirectionEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EngagementEngagementType: + discriminated: false + docs: The engagement type of the engagement. + union: + - type: string + validation: + format: uuid + - EngagementType + source: + openapi: openapi/openapi.yml + inline: true + EngagementAccount: + discriminated: false + docs: The account of the engagement. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + EngagementContactsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + Engagement: + docs: >- + # The Engagement Object + + ### Description + + The `Engagement` object is used to represent an interaction noted in a CRM + system. + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + owner: + type: optional + docs: The engagement's owner. + content: + type: optional + docs: The engagement's content. + subject: + type: optional + docs: The engagement's subject. + direction: + type: optional + docs: |- + The engagement's direction. + + * `INBOUND` - INBOUND + * `OUTBOUND` - OUTBOUND + engagement_type: + type: optional + docs: The engagement type of the engagement. + start_time: + type: optional + docs: The time at which the engagement started. + end_time: + type: optional + docs: The time at which the engagement ended. + account: + type: optional + docs: The account of the engagement. + contacts: optional>> + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + EngagementRequestOwner: + discriminated: false + docs: The engagement's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + EngagementRequestDirection: + discriminated: false + docs: |- + The engagement's direction. + + * `INBOUND` - INBOUND + * `OUTBOUND` - OUTBOUND + union: + - DirectionEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EngagementRequestEngagementType: + discriminated: false + docs: The engagement type of the engagement. + union: + - type: string + validation: + format: uuid + - EngagementType + source: + openapi: openapi/openapi.yml + inline: true + EngagementRequestAccount: + discriminated: false + docs: The account of the engagement. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + EngagementRequestContactsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + EngagementRequest: + docs: >- + # The Engagement Object + + ### Description + + The `Engagement` object is used to represent an interaction noted in a CRM + system. + + ### Usage Example + + TODO + properties: + owner: + type: optional + docs: The engagement's owner. + content: + type: optional + docs: The engagement's content. + subject: + type: optional + docs: The engagement's subject. + direction: + type: optional + docs: |- + The engagement's direction. + + * `INBOUND` - INBOUND + * `OUTBOUND` - OUTBOUND + engagement_type: + type: optional + docs: The engagement type of the engagement. + start_time: + type: optional + docs: The time at which the engagement started. + end_time: + type: optional + docs: The time at which the engagement ended. + account: + type: optional + docs: The account of the engagement. + contacts: optional>> + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + EngagementResponse: + properties: + model: Engagement + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + EngagementTypeActivityType: + discriminated: false + docs: |- + The engagement type's activity type. + + * `CALL` - CALL + * `MEETING` - MEETING + * `EMAIL` - EMAIL + union: + - ActivityTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EngagementType: + docs: >- + # The Engagement Type Object + + ### Description + + The `Engagement Type` object is used to represent an interaction activity. + A given `Engagement` typically has an `Engagement Type` object represented + in the engagement_type field. + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + activity_type: + type: optional + docs: |- + The engagement type's activity type. + + * `CALL` - CALL + * `MEETING` - MEETING + * `EMAIL` - EMAIL + name: + type: optional + docs: The engagement type's name. + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + ErrorValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: openapi/openapi.yml + EventTypeEnum: + enum: + - CREATED_REMOTE_PRODUCTION_API_KEY + - DELETED_REMOTE_PRODUCTION_API_KEY + - CREATED_TEST_API_KEY + - DELETED_TEST_API_KEY + - REGENERATED_PRODUCTION_API_KEY + - REGENERATED_WEBHOOK_SIGNATURE + - INVITED_USER + - TWO_FACTOR_AUTH_ENABLED + - TWO_FACTOR_AUTH_DISABLED + - DELETED_LINKED_ACCOUNT + - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + - CREATED_DESTINATION + - DELETED_DESTINATION + - CHANGED_DESTINATION + - CHANGED_SCOPES + - CHANGED_PERSONAL_INFORMATION + - CHANGED_ORGANIZATION_SETTINGS + - ENABLED_INTEGRATION + - DISABLED_INTEGRATION + - ENABLED_CATEGORY + - DISABLED_CATEGORY + - CHANGED_PASSWORD + - RESET_PASSWORD + - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - FORCED_LINKED_ACCOUNT_RESYNC + - MUTED_ISSUE + - GENERATED_MAGIC_LINK + - ENABLED_MERGE_WEBHOOK + - DISABLED_MERGE_WEBHOOK + - MERGE_WEBHOOK_TARGET_CHANGED + - END_USER_CREDENTIALS_ACCESSED + docs: >- + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + source: + openapi: openapi/openapi.yml + ExternalTargetFieldApi: + properties: + name: + type: optional + access: read-only + description: + type: optional + access: read-only + is_mapped: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + ExternalTargetFieldApiResponse: + properties: + Account: optional> + Contact: optional> + Lead: optional> + Note: optional> + Opportunity: optional> + Stage: optional> + User: optional> + Task: optional> + Engagement: optional> + source: + openapi: openapi/openapi.yml + FieldFormatEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + source: + openapi: openapi/openapi.yml + FieldMappingApiInstanceTargetField: + properties: + name: string + description: string + is_organization_wide: boolean + source: + openapi: openapi/openapi.yml + inline: true + FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo: + properties: + method: optional + url_path: optional + field_traversal_path: optional> + source: + openapi: openapi/openapi.yml + inline: true + FieldMappingApiInstanceRemoteField: + properties: + remote_key_name: optional + schema: optional> + remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo + source: + openapi: openapi/openapi.yml + inline: true + FieldMappingApiInstance: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + is_integration_wide: + type: optional + access: read-only + target_field: + type: optional + access: read-only + remote_field: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + FieldMappingApiInstanceResponse: + properties: + Account: optional> + Contact: optional> + Lead: optional> + Note: optional> + Opportunity: optional> + Stage: optional> + User: optional> + Task: optional> + Engagement: optional> + source: + openapi: openapi/openapi.yml + FieldMappingInstanceResponse: + properties: + model: FieldMappingApiInstance + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + FieldPermissionDeserializer: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: openapi/openapi.yml + FieldPermissionDeserializerRequest: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: openapi/openapi.yml + FieldTypeEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + source: + openapi: openapi/openapi.yml + IgnoreCommonModelRequestReason: + discriminated: false + union: + - ReasonEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + IgnoreCommonModelRequest: + properties: + reason: IgnoreCommonModelRequestReason + message: + type: optional + validation: + minLength: 1 + maxLength: 256 + source: + openapi: openapi/openapi.yml + IndividualCommonModelScopeDeserializer: + properties: + model_name: string + model_permissions: optional> + field_permissions: optional + source: + openapi: openapi/openapi.yml + IndividualCommonModelScopeDeserializerRequest: + properties: + model_name: + type: string + validation: + minLength: 1 + model_permissions: optional> + field_permissions: optional + source: + openapi: openapi/openapi.yml + IssueStatus: + discriminated: false + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + union: + - IssueStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Issue: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + error_description: string + end_user: + type: optional> + access: read-only + first_incident_time: optional + last_incident_time: optional + is_muted: + type: optional + access: read-only + error_details: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + IssueStatusEnum: + enum: + - ONGOING + - RESOLVED + docs: |- + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + source: + openapi: openapi/openapi.yml + ItemFormatEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - uuid + * `number` - url + * `date` - email + * `datetime` - phone + * `bool` - currency + * `list` - decimal + source: + openapi: openapi/openapi.yml + ItemSchema: + properties: + item_type: optional + item_format: optional + item_choices: optional> + source: + openapi: openapi/openapi.yml + ItemTypeEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + source: + openapi: openapi/openapi.yml + LanguageEnum: + enum: + - en + - de + docs: |- + * `en` - en + * `de` - de + source: + openapi: openapi/openapi.yml + LastSyncResultEnum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: openapi/openapi.yml + LeadOwner: + discriminated: false + docs: The lead's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + LeadConvertedContact: + discriminated: false + docs: The contact of the converted lead. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + LeadConvertedAccount: + discriminated: false + docs: The account of the converted lead. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + Lead: + docs: >- + # The Lead Object + + ### Description + + The `Lead` object is used to represent an individual who is a potential + customer. + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + owner: + type: optional + docs: The lead's owner. + lead_source: + type: optional + docs: The lead's source. + title: + type: optional + docs: The lead's title. + company: + type: optional + docs: The lead's company. + first_name: + type: optional + docs: The lead's first name. + last_name: + type: optional + docs: The lead's last name. + addresses: + type: optional> + access: read-only + email_addresses: + type: optional> + access: read-only + phone_numbers: + type: optional> + access: read-only + remote_updated_at: + type: optional + docs: When the third party's lead was updated. + remote_created_at: + type: optional + docs: When the third party's lead was created. + converted_date: + type: optional + docs: When the lead was converted. + converted_contact: + type: optional + docs: The contact of the converted lead. + converted_account: + type: optional + docs: The account of the converted lead. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + LeadRequestOwner: + discriminated: false + docs: The lead's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + LeadRequestConvertedContact: + discriminated: false + docs: The contact of the converted lead. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + LeadRequestConvertedAccount: + discriminated: false + docs: The account of the converted lead. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + LeadRequest: + docs: >- + # The Lead Object + + ### Description + + The `Lead` object is used to represent an individual who is a potential + customer. + + ### Usage Example + + TODO + properties: + owner: + type: optional + docs: The lead's owner. + lead_source: + type: optional + docs: The lead's source. + title: + type: optional + docs: The lead's title. + company: + type: optional + docs: The lead's company. + first_name: + type: optional + docs: The lead's first name. + last_name: + type: optional + docs: The lead's last name. + addresses: optional> + email_addresses: optional> + phone_numbers: optional> + converted_date: + type: optional + docs: When the lead was converted. + converted_contact: + type: optional + docs: The contact of the converted lead. + converted_account: + type: optional + docs: The account of the converted lead. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + LeadResponse: + properties: + model: Lead + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + LinkToken: + properties: + link_token: string + integration_name: optional + magic_link_url: optional + source: + openapi: openapi/openapi.yml + LinkedAccountStatus: + properties: + linked_account_status: string + can_make_request: boolean + source: + openapi: openapi/openapi.yml + MetaResponse: + properties: + request_schema: map + remote_field_classes: optional> + status: optional + has_conditional_params: boolean + has_required_linked_account_params: boolean + source: + openapi: openapi/openapi.yml + MethodEnum: + enum: + - GET + - OPTIONS + - HEAD + - POST + - PUT + - PATCH + - DELETE + docs: |- + * `GET` - GET + * `OPTIONS` - OPTIONS + * `HEAD` - HEAD + * `POST` - POST + * `PUT` - PUT + * `PATCH` - PATCH + * `DELETE` - DELETE + source: + openapi: openapi/openapi.yml + ModelOperation: + docs: >- + # The ModelOperation Object + + ### Description + + The `ModelOperation` object is used to represent the operations that are + currently supported for a given model. + + + ### Usage Example + + View what operations are supported for the `Candidate` endpoint. + properties: + model_name: string + available_operations: list + required_post_parameters: list + supported_fields: list + source: + openapi: openapi/openapi.yml + ModelPermissionDeserializer: + properties: + is_enabled: optional + source: + openapi: openapi/openapi.yml + ModelPermissionDeserializerRequest: + properties: + is_enabled: optional + source: + openapi: openapi/openapi.yml + MultipartFormFieldRequestEncoding: + discriminated: false + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + union: + - EncodingEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + MultipartFormFieldRequest: + docs: >- + # The MultipartFormField Object + + ### Description + + The `MultipartFormField` object is used to represent fields in an HTTP + request using `multipart/form-data`. + + + ### Usage Example + + Create a `MultipartFormField` to define a multipart form entry. + properties: + name: + type: string + docs: The name of the form field + validation: + minLength: 1 + data: + type: string + docs: The data for the form field. + validation: + minLength: 1 + encoding: + type: optional + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + file_name: + type: optional + docs: The file name of the form field, if the field is for a file. + validation: + minLength: 1 + content_type: + type: optional + docs: The MIME type of the file, if the field is for a file. + validation: + minLength: 1 + source: + openapi: openapi/openapi.yml + NoteOwner: + discriminated: false + docs: The note's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + NoteContact: + discriminated: false + docs: The note's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + NoteAccount: + discriminated: false + docs: The note's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + NoteOpportunity: + discriminated: false + docs: The note's opportunity. + union: + - type: string + validation: + format: uuid + - Opportunity + source: + openapi: openapi/openapi.yml + inline: true + Note: + docs: |- + # The Note Object + ### Description + The `Note` object is used to represent a note on another object. + ### Usage Example + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + owner: + type: optional + docs: The note's owner. + content: + type: optional + docs: The note's content. + contact: + type: optional + docs: The note's contact. + account: + type: optional + docs: The note's account. + opportunity: + type: optional + docs: The note's opportunity. + remote_updated_at: + type: optional + docs: When the third party's lead was updated. + remote_created_at: + type: optional + docs: When the third party's lead was created. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + NoteRequestOwner: + discriminated: false + docs: The note's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + NoteRequestContact: + discriminated: false + docs: The note's contact. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + NoteRequestAccount: + discriminated: false + docs: The note's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + NoteRequestOpportunity: + discriminated: false + docs: The note's opportunity. + union: + - type: string + validation: + format: uuid + - Opportunity + source: + openapi: openapi/openapi.yml + inline: true + NoteRequest: + docs: |- + # The Note Object + ### Description + The `Note` object is used to represent a note on another object. + ### Usage Example + TODO + properties: + owner: + type: optional + docs: The note's owner. + content: + type: optional + docs: The note's content. + contact: + type: optional + docs: The note's contact. + account: + type: optional + docs: The note's account. + opportunity: + type: optional + docs: The note's opportunity. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + NoteResponse: + properties: + model: Note + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + ObjectClassDescriptionRequest: + properties: + id: + type: string + validation: + minLength: 1 + origin_type: OriginTypeEnum + source: + openapi: openapi/openapi.yml + OpportunityOwner: + discriminated: false + docs: The opportunity's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + OpportunityAccount: + discriminated: false + docs: The account of the opportunity. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + OpportunityStage: + discriminated: false + docs: The stage of the opportunity. + union: + - type: string + validation: + format: uuid + - Stage + source: + openapi: openapi/openapi.yml + inline: true + OpportunityStatus: + discriminated: false + docs: |- + The opportunity's status. + + * `OPEN` - OPEN + * `WON` - WON + * `LOST` - LOST + union: + - OpportunityStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Opportunity: + docs: >- + # The Opportunity Object + + ### Description + + The `Opportunity` object is used to represent a deal opportunity in a CRM + system. + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The opportunity's name. + description: + type: optional + docs: The opportunity's description. + amount: + type: optional + docs: The opportunity's amount. + validation: + min: -2147483648 + max: 2147483647 + owner: + type: optional + docs: The opportunity's owner. + account: + type: optional + docs: The account of the opportunity. + stage: + type: optional + docs: The stage of the opportunity. + status: + type: optional + docs: |- + The opportunity's status. + + * `OPEN` - OPEN + * `WON` - WON + * `LOST` - LOST + last_activity_at: + type: optional + docs: When the opportunity's last activity occurred. + close_date: + type: optional + docs: When the opportunity was closed. + remote_created_at: + type: optional + docs: When the third party's opportunity was created. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + OpportunityRequestOwner: + discriminated: false + docs: The opportunity's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + OpportunityRequestAccount: + discriminated: false + docs: The account of the opportunity. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + OpportunityRequestStage: + discriminated: false + docs: The stage of the opportunity. + union: + - type: string + validation: + format: uuid + - Stage + source: + openapi: openapi/openapi.yml + inline: true + OpportunityRequestStatus: + discriminated: false + docs: |- + The opportunity's status. + + * `OPEN` - OPEN + * `WON` - WON + * `LOST` - LOST + union: + - OpportunityStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + OpportunityRequest: + docs: >- + # The Opportunity Object + + ### Description + + The `Opportunity` object is used to represent a deal opportunity in a CRM + system. + + ### Usage Example + + TODO + properties: + name: + type: optional + docs: The opportunity's name. + description: + type: optional + docs: The opportunity's description. + amount: + type: optional + docs: The opportunity's amount. + validation: + min: -2147483648 + max: 2147483647 + owner: + type: optional + docs: The opportunity's owner. + account: + type: optional + docs: The account of the opportunity. + stage: + type: optional + docs: The stage of the opportunity. + status: + type: optional + docs: |- + The opportunity's status. + + * `OPEN` - OPEN + * `WON` - WON + * `LOST` - LOST + last_activity_at: + type: optional + docs: When the opportunity's last activity occurred. + close_date: + type: optional + docs: When the opportunity was closed. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + OpportunityResponse: + properties: + model: Opportunity + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + OpportunityStatusEnum: + enum: + - OPEN + - WON + - LOST + docs: |- + * `OPEN` - OPEN + * `WON` - WON + * `LOST` - LOST + source: + openapi: openapi/openapi.yml + OriginTypeEnum: + enum: + - CUSTOM_OBJECT + - COMMON_MODEL + - REMOTE_ONLY_MODEL + docs: |- + * `CUSTOM_OBJECT` - CUSTOM_OBJECT + * `COMMON_MODEL` - COMMON_MODEL + * `REMOTE_ONLY_MODEL` - REMOTE_ONLY_MODEL + source: + openapi: openapi/openapi.yml + PaginatedAccountDetailsAndActionsList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedAccountList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedAssociationList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedAssociationTypeList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedAuditLogEventList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedContactList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedCustomObjectClassList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedCustomObjectList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedEngagementList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedEngagementTypeList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedIssueList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedLeadList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedNoteList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedOpportunityList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedRemoteFieldClassList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedStageList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedSyncStatusList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedTaskList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedUserList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PatchedAccountRequest: + docs: |- + # The Account Object + ### Description + The `Account` object is used to represent a company in a CRM system. + ### Usage Example + TODO + properties: + owner: + type: optional + docs: The account's owner. + validation: + format: uuid + name: + type: optional + docs: The account's name. + description: + type: optional + docs: The account's description. + industry: + type: optional + docs: The account's industry. + website: + type: optional + docs: The account's website. + validation: + format: uri + maxLength: 2000 + number_of_employees: + type: optional + docs: The account's number of employees. + validation: + min: -2147483648 + max: 2147483647 + addresses: optional> + last_activity_at: + type: optional + docs: >- + The last date (either most recent or furthest in the future) of when + an activity occurs in an account. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + PatchedContactRequestOwner: + discriminated: false + docs: The contact's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + PatchedContactRequest: + docs: >- + # The Contact Object + + ### Description + + The `Contact` object is used to represent an existing point of contact at + a company in a CRM system. + + ### Usage Example + + TODO + properties: + first_name: + type: optional + docs: The contact's first name. + last_name: + type: optional + docs: The contact's last name. + account: + type: optional + docs: The contact's account. + validation: + format: uuid + owner: + type: optional + docs: The contact's owner. + addresses: optional> + email_addresses: optional> + phone_numbers: optional> + last_activity_at: + type: optional + docs: When the contact's last activity occurred. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + PatchedEngagementRequestDirection: + discriminated: false + docs: |- + The engagement's direction. + + * `INBOUND` - INBOUND + * `OUTBOUND` - OUTBOUND + union: + - DirectionEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PatchedEngagementRequest: + docs: >- + # The Engagement Object + + ### Description + + The `Engagement` object is used to represent an interaction noted in a CRM + system. + + ### Usage Example + + TODO + properties: + owner: + type: optional + docs: The engagement's owner. + validation: + format: uuid + content: + type: optional + docs: The engagement's content. + subject: + type: optional + docs: The engagement's subject. + direction: + type: optional + docs: |- + The engagement's direction. + + * `INBOUND` - INBOUND + * `OUTBOUND` - OUTBOUND + engagement_type: + type: optional + docs: The engagement type of the engagement. + validation: + format: uuid + start_time: + type: optional + docs: The time at which the engagement started. + end_time: + type: optional + docs: The time at which the engagement ended. + account: + type: optional + docs: The account of the engagement. + validation: + format: uuid + contacts: optional>> + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + PatchedOpportunityRequestStatus: + discriminated: false + docs: |- + The opportunity's status. + + * `OPEN` - OPEN + * `WON` - WON + * `LOST` - LOST + union: + - OpportunityStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PatchedOpportunityRequest: + docs: >- + # The Opportunity Object + + ### Description + + The `Opportunity` object is used to represent a deal opportunity in a CRM + system. + + ### Usage Example + + TODO + properties: + name: + type: optional + docs: The opportunity's name. + description: + type: optional + docs: The opportunity's description. + amount: + type: optional + docs: The opportunity's amount. + validation: + min: -2147483648 + max: 2147483647 + owner: + type: optional + docs: The opportunity's owner. + validation: + format: uuid + account: + type: optional + docs: The account of the opportunity. + validation: + format: uuid + stage: + type: optional + docs: The stage of the opportunity. + validation: + format: uuid + status: + type: optional + docs: |- + The opportunity's status. + + * `OPEN` - OPEN + * `WON` - WON + * `LOST` - LOST + last_activity_at: + type: optional + docs: When the opportunity's last activity occurred. + close_date: + type: optional + docs: When the opportunity was closed. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + PatchedTaskRequestStatus: + discriminated: false + docs: |- + The task's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + union: + - TaskStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PatchedTaskRequest: + docs: |- + # The Task Object + ### Description + The `Task` object is used to represent a task, such as a to-do item. + ### Usage Example + TODO + properties: + subject: + type: optional + docs: The task's subject. + content: + type: optional + docs: The task's content. + owner: + type: optional + docs: The task's owner. + validation: + format: uuid + account: + type: optional + docs: The task's account. + validation: + format: uuid + opportunity: + type: optional + docs: The task's opportunity. + validation: + format: uuid + completed_date: + type: optional + docs: When the task is completed. + due_date: + type: optional + docs: When the task is due. + status: + type: optional + docs: |- + The task's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + PhoneNumber: + docs: |- + # The PhoneNumber Object + ### Description + The `PhoneNumber` object is used to represent an entity's phone number. + ### Usage Example + Fetch from the `GET Contact` endpoint and view their phone numbers. + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + phone_number: + type: optional + docs: The phone number. + phone_number_type: + type: optional + docs: The phone number's type. + source: + openapi: openapi/openapi.yml + PhoneNumberRequest: + docs: |- + # The PhoneNumber Object + ### Description + The `PhoneNumber` object is used to represent an entity's phone number. + ### Usage Example + Fetch from the `GET Contact` endpoint and view their phone numbers. + properties: + phone_number: + type: optional + docs: The phone number. + phone_number_type: + type: optional + docs: The phone number's type. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + ReasonEnum: + enum: + - GENERAL_CUSTOMER_REQUEST + - GDPR + - OTHER + docs: |- + * `GENERAL_CUSTOMER_REQUEST` - GENERAL_CUSTOMER_REQUEST + * `GDPR` - GDPR + * `OTHER` - OTHER + source: + openapi: openapi/openapi.yml + RemoteData: + docs: >- + # The RemoteData Object + + ### Description + + The `RemoteData` object is used to represent the full data pulled from the + third-party API for an object. + + + ### Usage Example + + TODO + properties: + path: + type: string + docs: The third-party API path that is being called. + data: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + RemoteEndpointInfo: + properties: + method: string + url_path: string + field_traversal_path: list + source: + openapi: openapi/openapi.yml + RemoteFieldRemoteFieldClass: + discriminated: false + union: + - string + - RemoteFieldClass + source: + openapi: openapi/openapi.yml + inline: true + RemoteField: + properties: + remote_field_class: RemoteFieldRemoteFieldClass + value: optional + source: + openapi: openapi/openapi.yml + RemoteFieldApiCoverage: + discriminated: false + union: + - integer + - double + source: + openapi: openapi/openapi.yml + inline: true + RemoteFieldApi: + properties: + schema: map + remote_key_name: string + remote_endpoint_info: RemoteEndpointInfo + example_values: optional> + advanced_metadata: optional + coverage: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + RemoteFieldApiResponse: + properties: + Account: optional> + Contact: optional> + Lead: optional> + Note: optional> + Opportunity: optional> + Stage: optional> + User: optional> + Task: optional> + Engagement: optional> + source: + openapi: openapi/openapi.yml + RemoteFieldClassFieldType: + discriminated: false + union: + - FieldTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + RemoteFieldClassFieldFormat: + discriminated: false + union: + - FieldFormatEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + RemoteFieldClassFieldChoicesItem: + properties: + value: optional + display_name: optional + source: + openapi: openapi/openapi.yml + inline: true + RemoteFieldClass: + properties: + id: optional + display_name: optional + remote_key_name: optional + description: optional + is_custom: optional + is_required: optional + field_type: optional + field_format: optional + field_choices: optional> + item_schema: optional + source: + openapi: openapi/openapi.yml + RemoteFieldClassForCustomObjectClassFieldType: + discriminated: false + union: + - FieldTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + RemoteFieldClassForCustomObjectClassFieldFormat: + discriminated: false + union: + - FieldFormatEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + RemoteFieldClassForCustomObjectClassFieldChoicesItem: + properties: + value: optional + display_name: optional + source: + openapi: openapi/openapi.yml + inline: true + RemoteFieldClassForCustomObjectClassItemSchema: + properties: + item_type: optional + item_format: optional + item_choices: optional>> + source: + openapi: openapi/openapi.yml + inline: true + RemoteFieldClassForCustomObjectClass: + properties: + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + display_name: optional + remote_key_name: optional + description: optional + is_required: optional + field_type: + type: optional + access: read-only + field_format: + type: optional + access: read-only + field_choices: + type: optional> + access: read-only + item_schema: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + RemoteFieldRequestRemoteFieldClass: + discriminated: false + union: + - type: string + validation: + format: uuid + - RemoteFieldClass + source: + openapi: openapi/openapi.yml + inline: true + RemoteFieldRequest: + properties: + remote_field_class: RemoteFieldRequestRemoteFieldClass + value: optional + source: + openapi: openapi/openapi.yml + RemoteKey: + docs: >- + # The RemoteKey Object + + ### Description + + The `RemoteKey` object is used to represent a request for a new remote + key. + + + ### Usage Example + + Post a `GenerateRemoteKey` to receive a new `RemoteKey`. + properties: + name: string + key: string + source: + openapi: openapi/openapi.yml + RemoteResponse: + docs: >- + # The RemoteResponse Object + + ### Description + + The `RemoteResponse` object is used to represent information returned from + a third-party endpoint. + + + ### Usage Example + + View the `RemoteResponse` returned from your `DataPassthrough`. + properties: + method: string + path: string + status: integer + response: unknown + response_headers: optional> + response_type: optional + headers: optional> + source: + openapi: openapi/openapi.yml + RequestFormatEnum: + enum: + - JSON + - XML + - MULTIPART + docs: |- + * `JSON` - JSON + * `XML` - XML + * `MULTIPART` - MULTIPART + source: + openapi: openapi/openapi.yml + ResponseTypeEnum: + enum: + - JSON + - BASE64_GZIP + docs: |- + * `JSON` - JSON + * `BASE64_GZIP` - BASE64_GZIP + source: + openapi: openapi/openapi.yml + RoleEnum: + enum: + - ADMIN + - DEVELOPER + - MEMBER + - API + - SYSTEM + - MERGE_TEAM + docs: |- + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + source: + openapi: openapi/openapi.yml + SelectiveSyncConfigurationsUsageEnum: + enum: + - IN_NEXT_SYNC + - IN_LAST_SYNC + docs: |- + * `IN_NEXT_SYNC` - IN_NEXT_SYNC + * `IN_LAST_SYNC` - IN_LAST_SYNC + source: + openapi: openapi/openapi.yml + Stage: + docs: |- + # The Stage Object + ### Description + The `Stage` object is used to represent the stage of an opportunity. + ### Usage Example + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The stage's name. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + StatusFd5Enum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: openapi/openapi.yml + SyncStatusLastSyncResult: + discriminated: false + union: + - LastSyncResultEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + SyncStatusStatus: + discriminated: false + union: + - StatusFd5Enum + - string + source: + openapi: openapi/openapi.yml + inline: true + SyncStatus: + docs: >- + # The SyncStatus Object + + ### Description + + The `SyncStatus` object is used to represent the syncing state of an + account + + + ### Usage Example + + View the `SyncStatus` for an account to see how recently its models were + synced. + properties: + model_name: string + model_id: string + last_sync_start: optional + next_sync_start: optional + last_sync_result: optional + last_sync_finished: optional + status: SyncStatusStatus + is_initial_sync: boolean + selective_sync_configurations_usage: optional + source: + openapi: openapi/openapi.yml + TaskOwner: + discriminated: false + docs: The task's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + TaskAccount: + discriminated: false + docs: The task's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + TaskOpportunity: + discriminated: false + docs: The task's opportunity. + union: + - type: string + validation: + format: uuid + - Opportunity + source: + openapi: openapi/openapi.yml + inline: true + TaskStatus: + discriminated: false + docs: |- + The task's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + union: + - TaskStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Task: + docs: |- + # The Task Object + ### Description + The `Task` object is used to represent a task, such as a to-do item. + ### Usage Example + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + subject: + type: optional + docs: The task's subject. + content: + type: optional + docs: The task's content. + owner: + type: optional + docs: The task's owner. + account: + type: optional + docs: The task's account. + opportunity: + type: optional + docs: The task's opportunity. + completed_date: + type: optional + docs: When the task is completed. + due_date: + type: optional + docs: When the task is due. + status: + type: optional + docs: |- + The task's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + TaskRequestOwner: + discriminated: false + docs: The task's owner. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + TaskRequestAccount: + discriminated: false + docs: The task's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + TaskRequestOpportunity: + discriminated: false + docs: The task's opportunity. + union: + - type: string + validation: + format: uuid + - Opportunity + source: + openapi: openapi/openapi.yml + inline: true + TaskRequestStatus: + discriminated: false + docs: |- + The task's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + union: + - TaskStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + TaskRequest: + docs: |- + # The Task Object + ### Description + The `Task` object is used to represent a task, such as a to-do item. + ### Usage Example + TODO + properties: + subject: + type: optional + docs: The task's subject. + content: + type: optional + docs: The task's content. + owner: + type: optional + docs: The task's owner. + account: + type: optional + docs: The task's account. + opportunity: + type: optional + docs: The task's opportunity. + completed_date: + type: optional + docs: When the task is completed. + due_date: + type: optional + docs: When the task is due. + status: + type: optional + docs: |- + The task's status. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + TaskResponse: + properties: + model: Task + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + TaskStatusEnum: + enum: + - OPEN + - CLOSED + docs: |- + * `OPEN` - OPEN + * `CLOSED` - CLOSED + source: + openapi: openapi/openapi.yml + User: + docs: >- + # The User Object + + ### Description + + The `User` object is used to represent a user with a login to the CRM + system. + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The user's name. + email: + type: optional + docs: The user's email address. + is_active: + type: optional + docs: Whether or not the user is active. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + ValidationProblemSource: + properties: + pointer: string + source: + openapi: openapi/openapi.yml + WarningValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: openapi/openapi.yml + WebhookReceiver: + properties: + event: string + is_active: boolean + key: optional + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/accountDetails.yml b/.mock/definition/crm/accountDetails.yml new file mode 100644 index 000000000..4fe53ba52 --- /dev/null +++ b/.mock/definition/crm/accountDetails.yml @@ -0,0 +1,36 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /crm/v1/account-details + method: GET + auth: true + docs: Get details for a linked account. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.AccountDetails + status-code: 200 + examples: + - headers: {} + response: + body: + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + integration: BambooHR + integration_slug: bamboohr + category: hris + end_user_origin_id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + end_user_organization_name: Waystar Royco + end_user_email_address: kendall.roy@waystar-royco.com + status: COMPLETE + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/accountToken.yml b/.mock/definition/crm/accountToken.yml new file mode 100644 index 000000000..f06c40c51 --- /dev/null +++ b/.mock/definition/crm/accountToken.yml @@ -0,0 +1,44 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /crm/v1/account-token/{public_token} + method: GET + auth: true + docs: >- + Returns the account token for the end user with the provided public + token. + source: + openapi: openapi/openapi.yml + path-parameters: + public_token: string + response: + docs: '' + type: root.AccountToken + status-code: 200 + examples: + - path-parameters: + public_token: public_token + response: + body: + account_token: T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/accounts.yml b/.mock/definition/crm/accounts.yml new file mode 100644 index 000000000..e29591157 --- /dev/null +++ b/.mock/definition/crm/accounts.yml @@ -0,0 +1,846 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/accounts + method: GET + auth: true + docs: Returns a list of `Account` objects. + source: + openapi: openapi/openapi.yml + request: + name: AccountsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + name: + type: optional + docs: If provided, will only return accounts with this name. + owner_id: + type: optional + docs: If provided, will only return accounts with this owner. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedAccountList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + name: Merge API + description: One API for all integrations + industry: API's + website: https://merge.dev/ + number_of_employees: 276000 + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+16788879833' + phone_number_type: Mobile + last_activity_at: '2022-02-10T00:00:00Z' + remote_updated_at: '2022-01-09T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /accounts + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /crm/v1/accounts + method: POST + auth: true + docs: Creates an `Account` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: CrmAccountEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.AccountRequest + content-type: application/json + response: + docs: '' + type: root.CrmAccountResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + name: Merge API + description: One API for all integrations + industry: API's + website: https://merge.dev/ + number_of_employees: 276000 + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+16788879833' + phone_number_type: Mobile + last_activity_at: '2022-02-10T00:00:00Z' + remote_updated_at: '2022-01-09T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /accounts + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /crm/v1/accounts/{id} + method: GET + auth: true + docs: Returns an `Account` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: AccountsRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Account + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + name: Merge API + description: One API for all integrations + industry: API's + website: https://merge.dev/ + number_of_employees: 276000 + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+16788879833' + phone_number_type: Mobile + last_activity_at: '2022-02-10T00:00:00Z' + remote_updated_at: '2022-01-09T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /accounts + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + partialUpdate: + path: /crm/v1/accounts/{id} + method: PATCH + auth: true + docs: Updates an `Account` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: PatchedCrmAccountEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.PatchedAccountRequest + content-type: application/json + response: + docs: '' + type: root.CrmAccountResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + response: + body: + model: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + name: Merge API + description: One API for all integrations + industry: API's + website: https://merge.dev/ + number_of_employees: 276000 + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+16788879833' + phone_number_type: Mobile + last_activity_at: '2022-02-10T00:00:00Z' + remote_updated_at: '2022-01-09T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /accounts + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + metaPatchRetrieve: + path: /crm/v1/accounts/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `CRMAccount` PATCHs. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /crm/v1/accounts/meta/post + method: GET + auth: true + docs: Returns metadata for `CRMAccount` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /crm/v1/accounts/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: AccountsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/associationTypes.yml b/.mock/definition/crm/associationTypes.yml new file mode 100644 index 000000000..01f582d69 --- /dev/null +++ b/.mock/definition/crm/associationTypes.yml @@ -0,0 +1,420 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + custom_object_classes_association_types_list: + path: /crm/v1/custom-object-classes/{custom_object_class_id}/association-types + method: GET + auth: true + docs: Returns a list of `AssociationType` objects. + source: + openapi: openapi/openapi.yml + path-parameters: + custom_object_class_id: string + request: + name: CustomObjectClassesAssociationTypesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedAssociationTypeList + status-code: 200 + examples: + - path-parameters: + custom_object_class_id: custom_object_class_id + headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 5bb73c32-3c6c-4757-ab7d-7d3540a1be31 + remote_id: '93' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + source_object_class: + id: ff1ff4cb-a66b-47dc-8e2a-50388049e602 + origin_type: CUSTOM_OBJECT + target_object_classes: + - id: Opportunity + origin_type: COMMON_MODEL + remote_key_name: order_to_opportunity + display_name: Order to Opportunity + cardinality: ONE_TO_ONE + is_required: true + custom_object_classes_association_types_create: + path: /crm/v1/custom-object-classes/{custom_object_class_id}/association-types + method: POST + auth: true + docs: Creates an `AssociationType` object with the given values. + source: + openapi: openapi/openapi.yml + path-parameters: + custom_object_class_id: string + request: + name: CrmAssociationTypeEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.AssociationTypeRequestRequest + content-type: application/json + response: + docs: '' + type: root.CrmAssociationTypeResponse + status-code: 201 + examples: + - path-parameters: + custom_object_class_id: custom_object_class_id + headers: {} + request: + model: + source_object_class: + id: id + origin_type: CUSTOM_OBJECT + target_object_classes: + - id: id + origin_type: CUSTOM_OBJECT + remote_key_name: remote_key_name + response: + body: + model: + id: 5bb73c32-3c6c-4757-ab7d-7d3540a1be31 + remote_id: '93' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + source_object_class: + id: ff1ff4cb-a66b-47dc-8e2a-50388049e602 + origin_type: CUSTOM_OBJECT + target_object_classes: + - id: Opportunity + origin_type: COMMON_MODEL + remote_key_name: order_to_opportunity + display_name: Order to Opportunity + cardinality: ONE_TO_ONE + is_required: true + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + custom_object_classes_association_types_retrieve: + path: >- + /crm/v1/custom-object-classes/{custom_object_class_id}/association-types/{id} + method: GET + auth: true + docs: Returns an `AssociationType` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + custom_object_class_id: string + id: string + request: + name: CustomObjectClassesAssociationTypesRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.AssociationType + status-code: 200 + examples: + - path-parameters: + custom_object_class_id: custom_object_class_id + id: id + headers: {} + response: + body: + id: 5bb73c32-3c6c-4757-ab7d-7d3540a1be31 + remote_id: '93' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + source_object_class: + id: ff1ff4cb-a66b-47dc-8e2a-50388049e602 + origin_type: CUSTOM_OBJECT + target_object_classes: + - id: Opportunity + created_at: '2024-01-15T09:30:00Z' + modified_at: '2024-01-15T09:30:00Z' + origin_type: COMMON_MODEL + remote_key_name: order_to_opportunity + display_name: Order to Opportunity + cardinality: ONE_TO_ONE + is_required: true + custom_object_classes_association_types_meta_post_retrieve: + path: >- + /crm/v1/custom-object-classes/{custom_object_class_id}/association-types/meta/post + method: GET + auth: true + docs: Returns metadata for `CRMAssociationType` POSTs. + source: + openapi: openapi/openapi.yml + path-parameters: + custom_object_class_id: string + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - path-parameters: + custom_object_class_id: custom_object_class_id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/associations.yml b/.mock/definition/crm/associations.yml new file mode 100644 index 000000000..bf27f3eb0 --- /dev/null +++ b/.mock/definition/crm/associations.yml @@ -0,0 +1,142 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + custom_object_classes_custom_objects_associations_list: + path: >- + /crm/v1/custom-object-classes/{custom_object_class_id}/custom-objects/{object_id}/associations + method: GET + auth: true + docs: Returns a list of `Association` objects. + source: + openapi: openapi/openapi.yml + path-parameters: + custom_object_class_id: string + object_id: string + request: + name: CustomObjectClassesCustomObjectsAssociationsListRequest + query-parameters: + association_type_id: + type: optional + docs: >- + If provided, will only return opportunities with this + association_type. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedAssociationList + status-code: 200 + examples: + - path-parameters: + custom_object_class_id: custom_object_class_id + object_id: object_id + headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + source_object: a8f5d29f-4e50-473f-8f12-27128ffcd37a + target_object: da0b1963-be70-469c-9f8c-06a81d0fe759 + association_type: association_type + custom_object_classes_custom_objects_associations_update: + path: >- + /crm/v1/custom-object-classes/{source_class_id}/custom-objects/{source_object_id}/associations/{target_class_id}/{target_object_id}/{association_type_id} + method: PUT + auth: true + docs: >- + Creates an Association between `source_object_id` and `target_object_id` + of type `association_type_id`. + source: + openapi: openapi/openapi.yml + path-parameters: + association_type_id: string + source_class_id: string + source_object_id: string + target_class_id: string + target_object_id: string + request: + name: CustomObjectClassesCustomObjectsAssociationsUpdateRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + response: + docs: '' + type: root.Association + status-code: 200 + examples: + - path-parameters: + association_type_id: association_type_id + source_class_id: source_class_id + source_object_id: source_object_id + target_class_id: target_class_id + target_object_id: target_object_id + headers: {} + response: + body: + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + source_object: a8f5d29f-4e50-473f-8f12-27128ffcd37a + target_object: da0b1963-be70-469c-9f8c-06a81d0fe759 + association_type: association_type + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/asyncPassthrough.yml b/.mock/definition/crm/asyncPassthrough.yml new file mode 100644 index 000000000..6a7e257eb --- /dev/null +++ b/.mock/definition/crm/asyncPassthrough.yml @@ -0,0 +1,70 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /crm/v1/async-passthrough + method: POST + auth: true + docs: >- + Asynchronously pull data from an endpoint not currently supported by + Merge. + source: + openapi: openapi/openapi.yml + request: + body: root.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: root.AsyncPassthroughReciept + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + async_passthrough_receipt_id: fd29020f-2695-445e-922e-dcd5e81903fd + retrieve: + path: /crm/v1/async-passthrough/{async_passthrough_receipt_id} + method: GET + auth: true + docs: Retrieves data from earlier async-passthrough POST request + source: + openapi: openapi/openapi.yml + path-parameters: + async_passthrough_receipt_id: string + response: + docs: '' + type: AsyncPassthroughRetrieveResponse + status-code: 200 + examples: + - path-parameters: + async_passthrough_receipt_id: async_passthrough_receipt_id + headers: {} + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: openapi/openapi.yml +types: + AsyncPassthroughRetrieveResponse: + discriminated: false + union: + - root.RemoteResponse + - string + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/auditTrail.yml b/.mock/definition/crm/auditTrail.yml new file mode 100644 index 000000000..68ad5c2f6 --- /dev/null +++ b/.mock/definition/crm/auditTrail.yml @@ -0,0 +1,94 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/audit-trail + method: GET + auth: true + docs: Gets a list of audit trail events. + source: + openapi: openapi/openapi.yml + request: + name: AuditTrailListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + before this time + event_type: + type: optional + docs: >- + If included, will only include events with the given event type. + Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, + `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, + `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, + `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, + `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, + `DELETED_LINKED_ACCOUNT`, + `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, + `CREATED_DESTINATION`, `DELETED_DESTINATION`, + `CHANGED_DESTINATION`, `CHANGED_SCOPES`, + `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, + `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, + `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, + `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, + `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, + `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, + `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, + `END_USER_CREDENTIALS_ACCESSED` + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + after this time + user_email: + type: optional + docs: >- + If provided, this will return events associated with the specified + user email. Please note that the email address reflects the user's + email at the time of the event, and may not be their current + email. + response: + docs: '' + type: root.PaginatedAuditLogEventList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b5ceea2a-7171-47ce-8090-165cfce5572c + user_name: Gil Feig + user_email: hello@merge.dev + role: ADMIN + ip_address: 192.0.2.123 + event_type: CREATED_REMOTE_PRODUCTION_API_KEY + event_description: >- + Organization-wide Scopes for model hris.Employee updated + from Read to Read+Write + created_at: '2024-01-15T09:30:00Z' + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/availableActions.yml b/.mock/definition/crm/availableActions.yml new file mode 100644 index 000000000..40338033d --- /dev/null +++ b/.mock/definition/crm/availableActions.yml @@ -0,0 +1,50 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /crm/v1/available-actions + method: GET + auth: true + docs: Returns a list of models and actions available for an account. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.AvailableActions + status-code: 200 + examples: + - headers: {} + response: + body: + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/contacts.yml b/.mock/definition/crm/contacts.yml new file mode 100644 index 000000000..b9f0b0f07 --- /dev/null +++ b/.mock/definition/crm/contacts.yml @@ -0,0 +1,900 @@ +types: + ContactsListRequestExpand: + enum: + - account + - value: account,owner + name: AccountOwner + - owner + source: + openapi: openapi/openapi.yml + ContactsRetrieveRequestExpand: + enum: + - account + - value: account,owner + name: AccountOwner + - owner + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/contacts + method: GET + auth: true + docs: Returns a list of `Contact` objects. + source: + openapi: openapi/openapi.yml + request: + name: ContactsListRequest + query-parameters: + account_id: + type: optional + docs: If provided, will only return contacts with this account. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + email_addresses: + type: optional + docs: >- + If provided, will only return contacts matching the email + addresses; multiple email_addresses can be separated by commas. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + phone_numbers: + type: optional + docs: >- + If provided, will only return contacts matching the phone numbers; + multiple phone numbers can be separated by commas. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedContactList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Gil + last_name: Feig + account: account + owner: owner + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + email_address: hello@merge.dev + email_address_type: Work + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+13785579223' + phone_number_type: Mobile + last_activity_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /contacts + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /crm/v1/contacts + method: POST + auth: true + docs: Creates a `Contact` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: CrmContactEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.ContactRequest + content-type: application/json + response: + docs: '' + type: root.CrmContactResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Gil + last_name: Feig + account: account + owner: owner + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + email_address: hello@merge.dev + email_address_type: Work + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+13785579223' + phone_number_type: Mobile + last_activity_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /contacts + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /crm/v1/contacts/{id} + method: GET + auth: true + docs: Returns a `Contact` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: ContactsRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Contact + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Gil + last_name: Feig + account: account + owner: owner + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + email_address: hello@merge.dev + email_address_type: Work + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+13785579223' + phone_number_type: Mobile + last_activity_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /contacts + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + partialUpdate: + path: /crm/v1/contacts/{id} + method: PATCH + auth: true + docs: Updates a `Contact` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: PatchedCrmContactEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.PatchedContactRequest + content-type: application/json + response: + docs: '' + type: root.CrmContactResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Gil + last_name: Feig + account: account + owner: owner + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + email_address: hello@merge.dev + email_address_type: Work + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+13785579223' + phone_number_type: Mobile + last_activity_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /contacts + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + ignoreCreate: + path: /crm/v1/contacts/ignore/{model_id} + method: POST + auth: true + docs: >- + Ignores a specific row based on the `model_id` in the url. These records + will have their properties set to null, and will not be updated in + future syncs. The "reason" and "message" fields in the request body will + be stored for audit purposes. + source: + openapi: openapi/openapi.yml + path-parameters: + model_id: string + request: + body: root.IgnoreCommonModelRequest + content-type: application/json + examples: + - path-parameters: + model_id: model_id + headers: {} + request: + reason: GENERAL_CUSTOMER_REQUEST + metaPatchRetrieve: + path: /crm/v1/contacts/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `CRMContact` PATCHs. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /crm/v1/contacts/meta/post + method: GET + auth: true + docs: Returns metadata for `CRMContact` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /crm/v1/contacts/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: ContactsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/customObjectClasses.yml b/.mock/definition/crm/customObjectClasses.yml new file mode 100644 index 000000000..7f6a5fbac --- /dev/null +++ b/.mock/definition/crm/customObjectClasses.yml @@ -0,0 +1,196 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/custom-object-classes + method: GET + auth: true + docs: Returns a list of `CustomObjectClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: CustomObjectClassesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedCustomObjectClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: ff1ff4cb-a66b-47dc-8e2a-50388049e602 + remote_id: '9579977' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: order + description: Order object + labels: + singular: Order + plural: Orders + fields: + - display_name: Order ID + remote_key_name: order_id + description: The unique ID for the order. + is_required: true + field_type: string + field_format: string + field_choices: + - {} + - display_name: Order Quantity + remote_key_name: order_quantity + description: The number of items ordered. + is_required: true + field_type: number + field_format: number + field_choices: + - {} + - display_name: Customer Type + remote_key_name: customer_type + description: The type of customer. + is_required: true + field_type: string + field_format: enumeration + field_choices: + - {} + - {} + association_types: + - key: value + retrieve: + path: /crm/v1/custom-object-classes/{id} + method: GET + auth: true + docs: Returns a `CustomObjectClass` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: CustomObjectClassesRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.CustomObjectClass + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: ff1ff4cb-a66b-47dc-8e2a-50388049e602 + remote_id: '9579977' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: order + description: Order object + labels: + singular: Order + plural: Orders + fields: + - created_at: '2024-01-15T09:30:00Z' + modified_at: '2024-01-15T09:30:00Z' + display_name: Order ID + remote_key_name: order_id + description: The unique ID for the order. + is_required: true + field_type: string + field_format: string + field_choices: + - {} + - created_at: '2024-01-15T09:30:00Z' + modified_at: '2024-01-15T09:30:00Z' + display_name: Order Quantity + remote_key_name: order_quantity + description: The number of items ordered. + is_required: true + field_type: number + field_format: number + field_choices: + - {} + - created_at: '2024-01-15T09:30:00Z' + modified_at: '2024-01-15T09:30:00Z' + display_name: Customer Type + remote_key_name: customer_type + description: The type of customer. + is_required: true + field_type: string + field_format: enumeration + field_choices: + - {} + - {} + association_types: + - key: value + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/customObjects.yml b/.mock/definition/crm/customObjects.yml new file mode 100644 index 000000000..d4904e56f --- /dev/null +++ b/.mock/definition/crm/customObjects.yml @@ -0,0 +1,476 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + custom_object_classes_custom_objects_list: + path: /crm/v1/custom-object-classes/{custom_object_class_id}/custom-objects + method: GET + auth: true + docs: Returns a list of `CustomObject` objects. + source: + openapi: openapi/openapi.yml + path-parameters: + custom_object_class_id: string + request: + name: CustomObjectClassesCustomObjectsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedCustomObjectList + status-code: 200 + examples: + - path-parameters: + custom_object_class_id: custom_object_class_id + headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: da0b1963-be70-469c-9f8c-06a81d0fe759 + remote_id: '4183634295' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + object_class: ff1ff4cb-a66b-47dc-8e2a-50388049e602 + fields: + order_id: '4183634295' + order_quantity: 50 + customer_type: Returning + remote_fields: + - remote_field_class: remote_field_class + custom_object_classes_custom_objects_create: + path: /crm/v1/custom-object-classes/{custom_object_class_id}/custom-objects + method: POST + auth: true + docs: Creates a `CustomObject` object with the given values. + source: + openapi: openapi/openapi.yml + path-parameters: + custom_object_class_id: string + request: + name: CrmCustomObjectEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.CustomObjectRequest + content-type: application/json + response: + docs: '' + type: root.CrmCustomObjectResponse + status-code: 201 + examples: + - path-parameters: + custom_object_class_id: custom_object_class_id + headers: {} + request: + model: + fields: + test_field: hello + response: + body: + model: + id: da0b1963-be70-469c-9f8c-06a81d0fe759 + remote_id: '4183634295' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + object_class: ff1ff4cb-a66b-47dc-8e2a-50388049e602 + fields: + order_id: '4183634295' + order_quantity: 50 + customer_type: Returning + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + custom_object_classes_custom_objects_retrieve: + path: >- + /crm/v1/custom-object-classes/{custom_object_class_id}/custom-objects/{id} + method: GET + auth: true + docs: Returns a `CustomObject` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + custom_object_class_id: string + id: string + request: + name: CustomObjectClassesCustomObjectsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.CustomObject + status-code: 200 + examples: + - path-parameters: + custom_object_class_id: custom_object_class_id + id: id + headers: {} + response: + body: + id: da0b1963-be70-469c-9f8c-06a81d0fe759 + remote_id: '4183634295' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + object_class: ff1ff4cb-a66b-47dc-8e2a-50388049e602 + fields: + order_id: '4183634295' + order_quantity: 50 + customer_type: Returning + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + custom_object_classes_custom_objects_meta_post_retrieve: + path: >- + /crm/v1/custom-object-classes/{custom_object_class_id}/custom-objects/meta/post + method: GET + auth: true + docs: Returns metadata for `CRMCustomObject` POSTs. + source: + openapi: openapi/openapi.yml + path-parameters: + custom_object_class_id: string + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - path-parameters: + custom_object_class_id: custom_object_class_id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + custom_object_classes_custom_objects_remote_field_classes_list: + path: /crm/v1/custom-object-classes/custom-objects/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: CustomObjectClassesCustomObjectsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/deleteAccount.yml b/.mock/definition/crm/deleteAccount.yml new file mode 100644 index 000000000..b0bfe1cdf --- /dev/null +++ b/.mock/definition/crm/deleteAccount.yml @@ -0,0 +1,15 @@ +service: + auth: false + base-path: '' + endpoints: + delete: + path: /crm/v1/delete-account + method: POST + auth: true + docs: Delete a linked account. + source: + openapi: openapi/openapi.yml + examples: + - headers: {} + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/engagementTypes.yml b/.mock/definition/crm/engagementTypes.yml new file mode 100644 index 000000000..2070b2ef8 --- /dev/null +++ b/.mock/definition/crm/engagementTypes.yml @@ -0,0 +1,204 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/engagement-types + method: GET + auth: true + docs: Returns a list of `EngagementType` objects. + source: + openapi: openapi/openapi.yml + request: + name: EngagementTypesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedEngagementTypeList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + activity_type: CALL + name: First Call + remote_fields: + - remote_field_class: remote_field_class + retrieve: + path: /crm/v1/engagement-types/{id} + method: GET + auth: true + docs: Returns an `EngagementType` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: EngagementTypesRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.EngagementType + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + activity_type: CALL + name: First Call + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + remoteFieldClassesList: + path: /crm/v1/engagement-types/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: EngagementTypesRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/engagements.yml b/.mock/definition/crm/engagements.yml new file mode 100644 index 000000000..aaf88ac03 --- /dev/null +++ b/.mock/definition/crm/engagements.yml @@ -0,0 +1,855 @@ +types: + EngagementsListRequestExpand: + enum: + - account + - value: account,engagement_type + name: AccountEngagementType + - contacts + - value: contacts,account + name: ContactsAccount + - value: contacts,account,engagement_type + name: ContactsAccountEngagementType + - value: contacts,engagement_type + name: ContactsEngagementType + - value: contacts,owner + name: ContactsOwner + - value: contacts,owner,account + name: ContactsOwnerAccount + - value: contacts,owner,account,engagement_type + name: ContactsOwnerAccountEngagementType + - value: contacts,owner,engagement_type + name: ContactsOwnerEngagementType + - engagement_type + - owner + - value: owner,account + name: OwnerAccount + - value: owner,account,engagement_type + name: OwnerAccountEngagementType + - value: owner,engagement_type + name: OwnerEngagementType + source: + openapi: openapi/openapi.yml + EngagementsRetrieveRequestExpand: + enum: + - account + - value: account,engagement_type + name: AccountEngagementType + - contacts + - value: contacts,account + name: ContactsAccount + - value: contacts,account,engagement_type + name: ContactsAccountEngagementType + - value: contacts,engagement_type + name: ContactsEngagementType + - value: contacts,owner + name: ContactsOwner + - value: contacts,owner,account + name: ContactsOwnerAccount + - value: contacts,owner,account,engagement_type + name: ContactsOwnerAccountEngagementType + - value: contacts,owner,engagement_type + name: ContactsOwnerEngagementType + - engagement_type + - owner + - value: owner,account + name: OwnerAccount + - value: owner,account,engagement_type + name: OwnerAccountEngagementType + - value: owner,engagement_type + name: OwnerEngagementType + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/engagements + method: GET + auth: true + docs: Returns a list of `Engagement` objects. + source: + openapi: openapi/openapi.yml + request: + name: EngagementsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + started_after: + type: optional + docs: >- + If provided, will only return engagements started after this + datetime. + started_before: + type: optional + docs: >- + If provided, will only return engagements started before this + datetime. + response: + docs: '' + type: root.PaginatedEngagementList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + content: Call for negotiation + subject: Call from customer + direction: INBOUND + engagement_type: engagement_type + start_time: '2022-02-10T00:00:00Z' + end_time: '2022-02-10T00:05:00Z' + account: account + contacts: + - a7c55bc6-2940-c80a-848e-bbfacbfdf4fg + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /engagements + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /crm/v1/engagements + method: POST + auth: true + docs: Creates an `Engagement` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: EngagementEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.EngagementRequest + content-type: application/json + response: + docs: '' + type: root.EngagementResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + content: Call for negotiation + subject: Call from customer + direction: INBOUND + engagement_type: engagement_type + start_time: '2022-02-10T00:00:00Z' + end_time: '2022-02-10T00:05:00Z' + account: account + contacts: + - a7c55bc6-2940-c80a-848e-bbfacbfdf4fg + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /engagements + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /crm/v1/engagements/{id} + method: GET + auth: true + docs: Returns an `Engagement` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: EngagementsRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Engagement + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + content: Call for negotiation + subject: Call from customer + direction: INBOUND + engagement_type: engagement_type + start_time: '2022-02-10T00:00:00Z' + end_time: '2022-02-10T00:05:00Z' + account: account + contacts: + - a7c55bc6-2940-c80a-848e-bbfacbfdf4fg + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /engagements + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + partialUpdate: + path: /crm/v1/engagements/{id} + method: PATCH + auth: true + docs: Updates an `Engagement` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: PatchedEngagementEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.PatchedEngagementRequest + content-type: application/json + response: + docs: '' + type: root.EngagementResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + content: Call for negotiation + subject: Call from customer + direction: INBOUND + engagement_type: engagement_type + start_time: '2022-02-10T00:00:00Z' + end_time: '2022-02-10T00:05:00Z' + account: account + contacts: + - a7c55bc6-2940-c80a-848e-bbfacbfdf4fg + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /engagements + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + metaPatchRetrieve: + path: /crm/v1/engagements/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `Engagement` PATCHs. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /crm/v1/engagements/meta/post + method: GET + auth: true + docs: Returns metadata for `Engagement` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /crm/v1/engagements/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: EngagementsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/fieldMapping.yml b/.mock/definition/crm/fieldMapping.yml new file mode 100644 index 000000000..5318dcf3b --- /dev/null +++ b/.mock/definition/crm/fieldMapping.yml @@ -0,0 +1,654 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + field_mappings_retrieve: + path: /crm/v1/field-mappings + method: GET + auth: true + docs: >- + Get all Field Mappings for this Linked Account. Field Mappings are + mappings between third-party Remote Fields and user defined Merge + fields. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: openapi/openapi.yml + request: + name: FieldMappingsRetrieveRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + response: + docs: '' + type: root.FieldMappingApiInstanceResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Account: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Contact: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Lead: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Note: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Opportunity: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Stage: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + User: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Task: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Engagement: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + field_mappings_create: + path: /crm/v1/field-mappings + method: POST + auth: true + docs: >- + Create new Field Mappings that will be available after the next + scheduled sync. This will cause the next sync for this Linked Account to + sync **ALL** data from start. + source: + openapi: openapi/openapi.yml + request: + name: CreateFieldMappingRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + body: + properties: + target_field_name: + type: string + docs: >- + The name of the target field you want this remote field to map + to. + validation: + minLength: 1 + target_field_description: + type: string + docs: >- + The description of the target field you want this remote field + to map to. + validation: + minLength: 1 + remote_field_traversal_path: + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + type: list + remote_method: + type: string + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: string + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + common_model_name: + type: string + docs: >- + The name of the Common Model that the remote field corresponds + to in a given category. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.FieldMappingInstanceResponse + status-code: 201 + examples: + - headers: {} + request: + target_field_name: example_target_field_name + target_field_description: this is a example description of the target field + remote_field_traversal_path: + - example_remote_field + remote_method: GET + remote_url_path: /example-url-path + common_model_name: ExampleCommonModel + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_destroy: + path: /crm/v1/field-mappings/{field_mapping_id} + method: DELETE + auth: true + docs: >- + Deletes Field Mappings for a Linked Account. All data related to this + Field Mapping will be deleted and these changes will be reflected after + the next scheduled sync. This will cause the next sync for this Linked + Account to sync **ALL** data from start. + source: + openapi: openapi/openapi.yml + path-parameters: + field_mapping_id: string + response: + docs: '' + type: root.FieldMappingInstanceResponse + status-code: 204 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_partial_update: + path: /crm/v1/field-mappings/{field_mapping_id} + method: PATCH + auth: true + docs: >- + Create or update existing Field Mappings for a Linked Account. Changes + will be reflected after the next scheduled sync. This will cause the + next sync for this Linked Account to sync **ALL** data from start. + source: + openapi: openapi/openapi.yml + path-parameters: + field_mapping_id: string + request: + name: PatchedEditFieldMappingRequest + body: + properties: + remote_field_traversal_path: + type: optional> + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + remote_method: + type: optional + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: optional + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.FieldMappingInstanceResponse + status-code: 200 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + request: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + remote_fields_retrieve: + path: /crm/v1/remote-fields + method: GET + auth: true + docs: >- + Get all remote fields for a Linked Account. Remote fields are + third-party fields that are accessible after initial sync if remote_data + is enabled. You can use remote fields to override existing Merge fields + or map a new Merge field. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: openapi/openapi.yml + request: + name: RemoteFieldsRetrieveRequest + query-parameters: + common_models: + type: optional + docs: >- + A comma seperated list of Common Model names. If included, will + only return Remote Fields for those Common Models. + include_example_values: + type: optional + docs: >- + If true, will include example values, where available, for remote + fields in the 3rd party platform. These examples come from active + data from your customers. + response: + docs: '' + type: root.RemoteFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Account: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Contact: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Lead: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Note: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Opportunity: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Stage: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + User: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Task: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Engagement: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + target_fields_retrieve: + path: /crm/v1/target-fields + method: GET + auth: true + docs: >- + Get all organization-wide Target Fields, this will not include any + Linked Account specific Target Fields. Organization-wide Target Fields + are additional fields appended to the Merge Common Model for all Linked + Accounts in a category. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.ExternalTargetFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Account: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Contact: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Lead: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Note: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Opportunity: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Stage: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + User: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Task: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Engagement: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/forceResync.yml b/.mock/definition/crm/forceResync.yml new file mode 100644 index 000000000..eb74ba188 --- /dev/null +++ b/.mock/definition/crm/forceResync.yml @@ -0,0 +1,37 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + sync_status_resync_create: + path: /crm/v1/sync-status/resync + method: POST + auth: true + docs: >- + Force re-sync of all models. This endpoint is available for monthly, + quarterly, and highest sync frequency customers on the Professional or + Enterprise plans. Doing so will consume a sync credit for the relevant + linked account. Force re-syncs can also be triggered manually in the + Merge Dashboard and is available for all customers. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - model_name: Account + model_id: crm.Account + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/generateKey.yml b/.mock/definition/crm/generateKey.yml new file mode 100644 index 000000000..233479dad --- /dev/null +++ b/.mock/definition/crm/generateKey.yml @@ -0,0 +1,36 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /crm/v1/generate-key + method: POST + auth: true + docs: Create a remote key. + source: + openapi: openapi/openapi.yml + request: + name: GenerateRemoteKeyRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/issues.yml b/.mock/definition/crm/issues.yml new file mode 100644 index 000000000..ed21c69c7 --- /dev/null +++ b/.mock/definition/crm/issues.yml @@ -0,0 +1,129 @@ +types: + IssuesListRequestStatus: + enum: + - ONGOING + - RESOLVED + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/issues + method: GET + auth: true + docs: Gets all issues for Organization. + source: + openapi: openapi/openapi.yml + request: + name: IssuesListRequest + query-parameters: + account_token: optional + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred before this time + end_user_organization_name: optional + first_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + after this datetime. + first_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + before this datetime. + include_muted: + type: optional + docs: If true, will include muted issues + integration_name: optional + last_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + after this datetime. + last_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + before this datetime. + linked_account_id: + type: optional + docs: >- + If provided, will only include issues pertaining to the linked + account passed in. + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred after this time + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + response: + docs: '' + type: root.PaginatedIssueList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + retrieve: + path: /crm/v1/issues/{id} + method: GET + auth: true + docs: Get a specific issue. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + response: + docs: '' + type: root.Issue + status-code: 200 + examples: + - path-parameters: + id: id + response: + body: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/leads.yml b/.mock/definition/crm/leads.yml new file mode 100644 index 000000000..1f1e46d19 --- /dev/null +++ b/.mock/definition/crm/leads.yml @@ -0,0 +1,626 @@ +types: + LeadsListRequestExpand: + enum: + - converted_account + - converted_contact + - value: converted_contact,converted_account + name: ConvertedContactConvertedAccount + - owner + - value: owner,converted_account + name: OwnerConvertedAccount + - value: owner,converted_contact + name: OwnerConvertedContact + - value: owner,converted_contact,converted_account + name: OwnerConvertedContactConvertedAccount + source: + openapi: openapi/openapi.yml + LeadsRetrieveRequestExpand: + enum: + - converted_account + - converted_contact + - value: converted_contact,converted_account + name: ConvertedContactConvertedAccount + - owner + - value: owner,converted_account + name: OwnerConvertedAccount + - value: owner,converted_contact + name: OwnerConvertedContact + - value: owner,converted_contact,converted_account + name: OwnerConvertedContactConvertedAccount + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/leads + method: GET + auth: true + docs: Returns a list of `Lead` objects. + source: + openapi: openapi/openapi.yml + request: + name: LeadsListRequest + query-parameters: + converted_account_id: + type: optional + docs: If provided, will only return leads with this account. + converted_contact_id: + type: optional + docs: If provided, will only return leads with this contact. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + email_addresses: + type: optional + docs: >- + If provided, will only return contacts matching the email + addresses; multiple email_addresses can be separated by commas. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + owner_id: + type: optional + docs: If provided, will only return leads with this owner. + page_size: + type: optional + docs: Number of results to return per page. + phone_numbers: + type: optional + docs: >- + If provided, will only return contacts matching the phone numbers; + multiple phone numbers can be separated by commas. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedLeadList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + lead_source: API Blogger + title: Co-Founder + company: Merge API + first_name: Gil + last_name: Feig + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + email_address: hello@merge.dev + email_address_type: Work + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+16789932455' + phone_number_type: Mobile + remote_updated_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + converted_date: '2022-03-10T00:00:00Z' + converted_contact: converted_contact + converted_account: converted_account + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /leads + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /crm/v1/leads + method: POST + auth: true + docs: Creates a `Lead` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: LeadEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.LeadRequest + content-type: application/json + response: + docs: '' + type: root.LeadResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + lead_source: API Blogger + title: Co-Founder + company: Merge API + first_name: Gil + last_name: Feig + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + email_address: hello@merge.dev + email_address_type: Work + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+16789932455' + phone_number_type: Mobile + remote_updated_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + converted_date: '2022-03-10T00:00:00Z' + converted_contact: converted_contact + converted_account: converted_account + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /leads + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /crm/v1/leads/{id} + method: GET + auth: true + docs: Returns a `Lead` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: LeadsRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Lead + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + lead_source: API Blogger + title: Co-Founder + company: Merge API + first_name: Gil + last_name: Feig + addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + street_1: 50 Bowling Green Dr + street_2: Golden Gate Park + city: San Francisco + state: CA + postal_code: '94122' + country: US + address_type: Shipping + email_addresses: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + email_address: hello@merge.dev + email_address_type: Work + phone_numbers: + - created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + phone_number: '+16789932455' + phone_number_type: Mobile + remote_updated_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + converted_date: '2022-03-10T00:00:00Z' + converted_contact: converted_contact + converted_account: converted_account + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /leads + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + metaPostRetrieve: + path: /crm/v1/leads/meta/post + method: GET + auth: true + docs: Returns metadata for `Lead` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /crm/v1/leads/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: LeadsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/linkToken.yml b/.mock/definition/crm/linkToken.yml new file mode 100644 index 000000000..f67b68926 --- /dev/null +++ b/.mock/definition/crm/linkToken.yml @@ -0,0 +1,152 @@ +imports: + root: __package__.yml +types: + EndUserDetailsRequestLanguage: + discriminated: false + docs: >- + The following subset of IETF language tags can be used to configure + localization. + + + * `en` - en + + * `de` - de + union: + - root.LanguageEnum + - string + source: + openapi: openapi/openapi.yml + inline: true +service: + auth: false + base-path: '' + endpoints: + create: + path: /crm/v1/link-token + method: POST + auth: true + docs: Creates a link token to be used when linking a new end user. + source: + openapi: openapi/openapi.yml + request: + name: EndUserDetailsRequest + body: + properties: + end_user_email_address: + type: string + docs: >- + Your end user's email address. This is purely for identification + purposes - setting this value will not cause any emails to be + sent. + validation: + minLength: 1 + maxLength: 100 + end_user_organization_name: + type: string + docs: Your end user's organization. + validation: + minLength: 1 + maxLength: 100 + end_user_origin_id: + type: string + docs: >- + This unique identifier typically represents the ID for your end + user in your product's database. This value must be distinct + from other Linked Accounts' unique identifiers. + validation: + minLength: 1 + maxLength: 100 + categories: + docs: The integration categories to show in Merge Link. + type: list + integration: + type: optional + docs: >- + The slug of a specific pre-selected integration for this linking + flow token. For examples of slugs, see + https://docs.merge.dev/guides/merge-link/single-integration/. + validation: + minLength: 1 + link_expiry_mins: + type: optional + docs: >- + An integer number of minutes between [30, 720 or 10080 if for a + Magic Link URL] for how long this token is valid. Defaults to + 30. + default: 30 + validation: + min: 30 + max: 10080 + should_create_magic_link_url: + type: optional + docs: >- + Whether to generate a Magic Link URL. Defaults to false. For + more information on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + hide_admin_magic_link: + type: optional + docs: >- + Whether to generate a Magic Link URL on the Admin Needed screen + during the linking flow. Defaults to false. For more information + on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + common_models: + type: optional> + docs: >- + An array of objects to specify the models and fields that will + be disabled for a given Linked Account. Each object uses + model_id, enabled_actions, and disabled_fields to specify the + model, method, and fields that are scoped for a given Linked + Account. + category_common_model_scopes: + type: >- + optional>>> + docs: >- + When creating a Link Token, you can set permissions for Common + Models that will apply to the account that is going to be + linked. Any model or field not specified in link token payload + will default to existing settings. + language: + type: optional + docs: >- + The following subset of IETF language tags can be used to + configure localization. + + + * `en` - en + + * `de` - de + are_syncs_disabled: + type: optional + docs: >- + The boolean that indicates whether initial, periodic, and force + syncs will be disabled. + default: false + integration_specific_config: + type: optional> + docs: >- + A JSON object containing integration-specific configuration + options. + content-type: application/json + response: + docs: '' + type: root.LinkToken + status-code: 200 + examples: + - request: + end_user_email_address: example@gmail.com + end_user_organization_name: Test Organization + end_user_origin_id: '12345' + categories: + - hris + - ats + response: + body: + link_token: necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0 + integration_name: Lever + magic_link_url: https://link.merge.dev/asdfjkl12345jsndfgi2i83n + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/linkedAccounts.yml b/.mock/definition/crm/linkedAccounts.yml new file mode 100644 index 000000000..c6f4399e3 --- /dev/null +++ b/.mock/definition/crm/linkedAccounts.yml @@ -0,0 +1,148 @@ +types: + LinkedAccountsListRequestCategory: + enum: + - accounting + - ats + - crm + - filestorage + - hris + - mktg + - ticketing + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/linked-accounts + method: GET + auth: true + docs: List linked accounts for your organization. + source: + openapi: openapi/openapi.yml + request: + name: LinkedAccountsListRequest + query-parameters: + category: + type: optional + docs: >- + Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, + `mktg`, `ticketing` + + + * `hris` - hris + + * `ats` - ats + + * `accounting` - accounting + + * `ticketing` - ticketing + + * `crm` - crm + + * `mktg` - mktg + + * `filestorage` - filestorage + cursor: + type: optional + docs: The pagination cursor value. + end_user_email_address: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given email address. + end_user_organization_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given organization name. + end_user_origin_id: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given origin ID. + end_user_origin_ids: + type: optional + docs: >- + Comma-separated list of EndUser origin IDs, making it possible to + specify multiple EndUsers at once. + id: + type: optional + validation: + format: uuid + ids: + type: optional + docs: >- + Comma-separated list of LinkedAccount IDs, making it possible to + specify multiple LinkedAccounts at once. + include_duplicates: + type: optional + docs: >- + If `true`, will include complete production duplicates of the + account specified by the `id` query parameter in the response. + `id` must be for a complete production linked account. + integration_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given integration name. + is_test_account: + type: optional + docs: >- + If included, will only include test linked accounts. If not + included, will only include non-test linked accounts. + page_size: + type: optional + docs: Number of results to return per page. + status: + type: optional + docs: >- + Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, + `RELINK_NEEDED` + response: + docs: '' + type: root.PaginatedAccountDetailsAndActionsList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: e59b1821-f85c-4e28-a6b3-1804156f3563 + category: hris + status: COMPLETE + status_detail: Invalid login credentials + end_user_origin_id: 3ac95cde-6c7f-4eef-afec-be710b42308d + end_user_organization_name: Foo Bar, LLC + end_user_email_address: hradmin@foobar.dev + subdomain: foobar + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + integration: + name: name + categories: + - hris + color: color + slug: slug + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/notes.yml b/.mock/definition/crm/notes.yml new file mode 100644 index 000000000..df9293aad --- /dev/null +++ b/.mock/definition/crm/notes.yml @@ -0,0 +1,577 @@ +types: + NotesListRequestExpand: + enum: + - account + - value: account,opportunity + name: AccountOpportunity + - contact + - value: contact,account + name: ContactAccount + - value: contact,account,opportunity + name: ContactAccountOpportunity + - value: contact,opportunity + name: ContactOpportunity + - opportunity + - owner + - value: owner,account + name: OwnerAccount + - value: owner,account,opportunity + name: OwnerAccountOpportunity + - value: owner,contact + name: OwnerContact + - value: owner,contact,account + name: OwnerContactAccount + - value: owner,contact,account,opportunity + name: OwnerContactAccountOpportunity + - value: owner,contact,opportunity + name: OwnerContactOpportunity + - value: owner,opportunity + name: OwnerOpportunity + source: + openapi: openapi/openapi.yml + NotesRetrieveRequestExpand: + enum: + - account + - value: account,opportunity + name: AccountOpportunity + - contact + - value: contact,account + name: ContactAccount + - value: contact,account,opportunity + name: ContactAccountOpportunity + - value: contact,opportunity + name: ContactOpportunity + - opportunity + - owner + - value: owner,account + name: OwnerAccount + - value: owner,account,opportunity + name: OwnerAccountOpportunity + - value: owner,contact + name: OwnerContact + - value: owner,contact,account + name: OwnerContactAccount + - value: owner,contact,account,opportunity + name: OwnerContactAccountOpportunity + - value: owner,contact,opportunity + name: OwnerContactOpportunity + - value: owner,opportunity + name: OwnerOpportunity + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/notes + method: GET + auth: true + docs: Returns a list of `Note` objects. + source: + openapi: openapi/openapi.yml + request: + name: NotesListRequest + query-parameters: + account_id: + type: optional + docs: If provided, will only return notes with this account. + contact_id: + type: optional + docs: If provided, will only return notes with this contact. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + opportunity_id: + type: optional + docs: If provided, will only return notes with this opportunity. + owner_id: + type: optional + docs: If provided, will only return notes with this owner. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedNoteList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + content: Merge is hiring! + contact: contact + account: account + opportunity: opportunity + remote_updated_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /notes + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /crm/v1/notes + method: POST + auth: true + docs: Creates a `Note` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: NoteEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.NoteRequest + content-type: application/json + response: + docs: '' + type: root.NoteResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + content: Merge is hiring! + contact: contact + account: account + opportunity: opportunity + remote_updated_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /notes + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /crm/v1/notes/{id} + method: GET + auth: true + docs: Returns a `Note` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: NotesRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Note + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + owner: owner + content: Merge is hiring! + contact: contact + account: account + opportunity: opportunity + remote_updated_at: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /notes + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + metaPostRetrieve: + path: /crm/v1/notes/meta/post + method: GET + auth: true + docs: Returns metadata for `Note` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /crm/v1/notes/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: NotesRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/opportunities.yml b/.mock/definition/crm/opportunities.yml new file mode 100644 index 000000000..4a0253aae --- /dev/null +++ b/.mock/definition/crm/opportunities.yml @@ -0,0 +1,868 @@ +types: + OpportunitiesListRequestExpand: + enum: + - account + - owner + - value: owner,account + name: OwnerAccount + - value: owner,stage + name: OwnerStage + - value: owner,stage,account + name: OwnerStageAccount + - stage + - value: stage,account + name: StageAccount + source: + openapi: openapi/openapi.yml + OpportunitiesListRequestStatus: + enum: + - LOST + - OPEN + - WON + source: + openapi: openapi/openapi.yml + OpportunitiesRetrieveRequestExpand: + enum: + - account + - owner + - value: owner,account + name: OwnerAccount + - value: owner,stage + name: OwnerStage + - value: owner,stage,account + name: OwnerStageAccount + - stage + - value: stage,account + name: StageAccount + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/opportunities + method: GET + auth: true + docs: Returns a list of `Opportunity` objects. + source: + openapi: openapi/openapi.yml + request: + name: OpportunitiesListRequest + query-parameters: + account_id: + type: optional + docs: If provided, will only return opportunities with this account. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + owner_id: + type: optional + docs: If provided, will only return opportunities with this owner. + page_size: + type: optional + docs: Number of results to return per page. + remote_created_after: + type: optional + docs: >- + If provided, will only return opportunities created in the third + party platform after this datetime. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + stage_id: + type: optional + docs: If provided, will only return opportunities with this stage. + status: + type: optional + docs: >- + If provided, will only return opportunities with this status. + Options: ('OPEN', 'WON', 'LOST') + + + * `OPEN` - OPEN + + * `WON` - WON + + * `LOST` - LOST + response: + docs: '' + type: root.PaginatedOpportunityList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Needs Integrations + description: Needs a Unified API for Integrations! + amount: 100000 + owner: owner + account: account + stage: stage + status: OPEN + last_activity_at: '2022-02-10T00:00:00Z' + close_date: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /opportunities + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /crm/v1/opportunities + method: POST + auth: true + docs: Creates an `Opportunity` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: OpportunityEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.OpportunityRequest + content-type: application/json + response: + docs: '' + type: root.OpportunityResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Needs Integrations + description: Needs a Unified API for Integrations! + amount: 100000 + owner: owner + account: account + stage: stage + status: OPEN + last_activity_at: '2022-02-10T00:00:00Z' + close_date: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /opportunities + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /crm/v1/opportunities/{id} + method: GET + auth: true + docs: Returns an `Opportunity` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: OpportunitiesRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.Opportunity + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Needs Integrations + description: Needs a Unified API for Integrations! + amount: 100000 + owner: owner + account: account + stage: stage + status: OPEN + last_activity_at: '2022-02-10T00:00:00Z' + close_date: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /opportunities + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + partialUpdate: + path: /crm/v1/opportunities/{id} + method: PATCH + auth: true + docs: Updates an `Opportunity` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: PatchedOpportunityEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.PatchedOpportunityRequest + content-type: application/json + response: + docs: '' + type: root.OpportunityResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Needs Integrations + description: Needs a Unified API for Integrations! + amount: 100000 + owner: owner + account: account + stage: stage + status: OPEN + last_activity_at: '2022-02-10T00:00:00Z' + close_date: '2022-02-10T00:00:00Z' + remote_created_at: '2021-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /opportunities + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + metaPatchRetrieve: + path: /crm/v1/opportunities/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `Opportunity` PATCHs. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /crm/v1/opportunities/meta/post + method: GET + auth: true + docs: Returns metadata for `Opportunity` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /crm/v1/opportunities/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: OpportunitiesRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/passthrough.yml b/.mock/definition/crm/passthrough.yml new file mode 100644 index 000000000..902b459d1 --- /dev/null +++ b/.mock/definition/crm/passthrough.yml @@ -0,0 +1,40 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /crm/v1/passthrough + method: POST + auth: true + docs: Pull data from an endpoint not currently supported by Merge. + source: + openapi: openapi/openapi.yml + request: + body: root.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: root.RemoteResponse + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/regenerateKey.yml b/.mock/definition/crm/regenerateKey.yml new file mode 100644 index 000000000..06a1b8568 --- /dev/null +++ b/.mock/definition/crm/regenerateKey.yml @@ -0,0 +1,36 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /crm/v1/regenerate-key + method: POST + auth: true + docs: Exchange remote keys. + source: + openapi: openapi/openapi.yml + request: + name: RemoteKeyForRegenerationRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/scopes.yml b/.mock/definition/crm/scopes.yml new file mode 100644 index 000000000..67286e702 --- /dev/null +++ b/.mock/definition/crm/scopes.yml @@ -0,0 +1,160 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + default_scopes_retrieve: + path: /crm/v1/default-scopes + method: GET + auth: true + docs: >- + Get the default permissions for Merge Common Models and fields across + all Linked Accounts of a given category. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.CommonModelScopeApi + status-code: 200 + examples: + - response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_retrieve: + path: /crm/v1/linked-account-scopes + method: GET + auth: true + docs: >- + Get all available permissions for Merge Common Models and fields for a + single Linked Account. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_create: + path: /crm/v1/linked-account-scopes + method: POST + auth: true + docs: >- + Update permissions for any Common Model or field for a single Linked + Account. Any Scopes not set in this POST request will inherit the + default Scopes. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) + source: + openapi: openapi/openapi.yml + request: + name: LinkedAccountCommonModelScopeDeserializerRequest + body: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + content-type: application/json + response: + docs: '' + type: root.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + request: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - home_location + disabled_fields: + - work_location + - model_name: Benefit + model_permissions: + WRITE: + is_enabled: false + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/stages.yml b/.mock/definition/crm/stages.yml new file mode 100644 index 000000000..a8676fa5f --- /dev/null +++ b/.mock/definition/crm/stages.yml @@ -0,0 +1,222 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/stages + method: GET + auth: true + docs: Returns a list of `Stage` objects. + source: + openapi: openapi/openapi.yml + request: + name: StagesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedStageList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0358cbc6-2040-430a-848e-aafacbadf3aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Closed Won + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /stages + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + retrieve: + path: /crm/v1/stages/{id} + method: GET + auth: true + docs: Returns a `Stage` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: StagesRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Stage + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 0358cbc6-2040-430a-848e-aafacbadf3aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Closed Won + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /stages + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + remoteFieldClassesList: + path: /crm/v1/stages/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: StagesRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/syncStatus.yml b/.mock/definition/crm/syncStatus.yml new file mode 100644 index 000000000..52d8c36e1 --- /dev/null +++ b/.mock/definition/crm/syncStatus.yml @@ -0,0 +1,55 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/sync-status + method: GET + auth: true + docs: >- + Get sync status for the current sync and the most recently finished + sync. `last_sync_start` represents the most recent time any sync began. + `last_sync_finished` represents the most recent time any sync completed. + These timestamps may correspond to different sync instances which may + result in a sync start time being later than a separate sync completed + time. To ensure you are retrieving the latest available data reference + the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. + Possible values for `status` and `last_sync_result` are `DISABLED`, + `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more + about sync status in our [Help + Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + source: + openapi: openapi/openapi.yml + request: + name: SyncStatusListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedSyncStatusList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - model_name: Account + model_id: crm.Account + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/tasks.yml b/.mock/definition/crm/tasks.yml new file mode 100644 index 000000000..befb0c548 --- /dev/null +++ b/.mock/definition/crm/tasks.yml @@ -0,0 +1,807 @@ +types: + TasksListRequestExpand: + enum: + - account + - value: account,opportunity + name: AccountOpportunity + - opportunity + - owner + - value: owner,account + name: OwnerAccount + - value: owner,account,opportunity + name: OwnerAccountOpportunity + - value: owner,opportunity + name: OwnerOpportunity + source: + openapi: openapi/openapi.yml + TasksRetrieveRequestExpand: + enum: + - account + - value: account,opportunity + name: AccountOpportunity + - opportunity + - owner + - value: owner,account + name: OwnerAccount + - value: owner,account,opportunity + name: OwnerAccountOpportunity + - value: owner,opportunity + name: OwnerOpportunity + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/tasks + method: GET + auth: true + docs: Returns a list of `Task` objects. + source: + openapi: openapi/openapi.yml + request: + name: TasksListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedTaskList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + subject: Contact about Integration Strategy + content: Follow up to see whether they need integrations + owner: owner + account: account + opportunity: opportunity + completed_date: '2022-02-11T00:00:00Z' + due_date: '2022-02-10T00:00:00Z' + status: OPEN + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /tasks + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + create: + path: /crm/v1/tasks + method: POST + auth: true + docs: Creates a `Task` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: TaskEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.TaskRequest + content-type: application/json + response: + docs: '' + type: root.TaskResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + subject: Contact about Integration Strategy + content: Follow up to see whether they need integrations + owner: owner + account: account + opportunity: opportunity + completed_date: '2022-02-11T00:00:00Z' + due_date: '2022-02-10T00:00:00Z' + status: OPEN + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /tasks + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /crm/v1/tasks/{id} + method: GET + auth: true + docs: Returns a `Task` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: TasksRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Task + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + subject: Contact about Integration Strategy + content: Follow up to see whether they need integrations + owner: owner + account: account + opportunity: opportunity + completed_date: '2022-02-11T00:00:00Z' + due_date: '2022-02-10T00:00:00Z' + status: OPEN + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /tasks + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + partialUpdate: + path: /crm/v1/tasks/{id} + method: PATCH + auth: true + docs: Updates a `Task` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: PatchedTaskEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.PatchedTaskRequest + content-type: application/json + response: + docs: '' + type: root.TaskResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + response: + body: + model: + id: 550e8400-e29b-41d4-a716-446655440000 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + subject: Contact about Integration Strategy + content: Follow up to see whether they need integrations + owner: owner + account: account + opportunity: opportunity + completed_date: '2022-02-11T00:00:00Z' + due_date: '2022-02-10T00:00:00Z' + status: OPEN + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /tasks + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + metaPatchRetrieve: + path: /crm/v1/tasks/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `Task` PATCHs. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /crm/v1/tasks/meta/post + method: GET + auth: true + docs: Returns metadata for `Task` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /crm/v1/tasks/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: TasksRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/users.yml b/.mock/definition/crm/users.yml new file mode 100644 index 000000000..6762984a7 --- /dev/null +++ b/.mock/definition/crm/users.yml @@ -0,0 +1,251 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/users + method: GET + auth: true + docs: Returns a list of `User` objects. + source: + openapi: openapi/openapi.yml + request: + name: UsersListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + email: + type: optional + docs: If provided, will only return users with this email. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedUserList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0358cbc6-2040-430a-848e-aafacbadf3aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig + email: merge_is_hiring@merge.dev + is_active: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /users + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + retrieve: + path: /crm/v1/users/{id} + method: GET + auth: true + docs: Returns a `User` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: UsersRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.User + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 0358cbc6-2040-430a-848e-aafacbadf3aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig + email: merge_is_hiring@merge.dev + is_active: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /users + data: + - Varies by platform + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + ignoreCreate: + path: /crm/v1/users/ignore/{model_id} + method: POST + auth: true + docs: >- + Ignores a specific row based on the `model_id` in the url. These records + will have their properties set to null, and will not be updated in + future syncs. The "reason" and "message" fields in the request body will + be stored for audit purposes. + source: + openapi: openapi/openapi.yml + path-parameters: + model_id: string + request: + body: root.IgnoreCommonModelRequest + content-type: application/json + examples: + - path-parameters: + model_id: model_id + headers: {} + request: + reason: GENERAL_CUSTOMER_REQUEST + remoteFieldClassesList: + path: /crm/v1/users/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: UsersRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: string + field_format: string + field_choices: + - {} + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/crm/webhookReceivers.yml b/.mock/definition/crm/webhookReceivers.yml new file mode 100644 index 000000000..c68cd98bd --- /dev/null +++ b/.mock/definition/crm/webhookReceivers.yml @@ -0,0 +1,61 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /crm/v1/webhook-receivers + method: GET + auth: true + docs: Returns a list of `WebhookReceiver` objects. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - event: event + is_active: true + key: key + create: + path: /crm/v1/webhook-receivers + method: POST + auth: true + docs: Creates a `WebhookReceiver` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: WebhookReceiverRequest + body: + properties: + event: + type: string + validation: + minLength: 1 + is_active: boolean + key: + type: optional + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.WebhookReceiver + status-code: 201 + examples: + - headers: {} + request: + event: event + is_active: true + response: + body: + event: event + is_active: true + key: key + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/__package__.yml b/.mock/definition/filestorage/__package__.yml new file mode 100644 index 000000000..16d7bfbc7 --- /dev/null +++ b/.mock/definition/filestorage/__package__.yml @@ -0,0 +1,2365 @@ +types: + AccountDetails: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + integration: + type: optional + access: read-only + integration_slug: + type: optional + access: read-only + category: optional + end_user_origin_id: + type: optional + access: read-only + end_user_organization_name: + type: optional + access: read-only + end_user_email_address: + type: optional + validation: + format: email + access: read-only + status: + type: optional + access: read-only + webhook_listener_url: + type: optional + validation: + format: uri + access: read-only + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + access: read-only + account_type: + type: optional + access: read-only + completed_at: + type: optional + docs: The time at which account completes the linking flow. + source: + openapi: openapi/openapi.yml + AccountDetailsAndActions: + docs: >- + # The LinkedAccount Object + + ### Description + + The `LinkedAccount` object is used to represent an end user's link with a + specific integration. + + + ### Usage Example + + View a list of your organization's `LinkedAccount` objects. + properties: + id: string + category: optional + status: AccountDetailsAndActionsStatusEnum + status_detail: optional + end_user_origin_id: optional + end_user_organization_name: string + end_user_email_address: string + subdomain: + type: optional + docs: The tenant or domain the customer has provided access to. + webhook_listener_url: string + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + integration: optional + account_type: string + completed_at: datetime + integration_specific_fields: optional> + source: + openapi: openapi/openapi.yml + AccountDetailsAndActionsIntegration: + properties: + name: string + categories: list + image: optional + square_image: optional + color: string + slug: string + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: openapi/openapi.yml + AccountDetailsAndActionsStatusEnum: + enum: + - COMPLETE + - INCOMPLETE + - RELINK_NEEDED + - IDLE + docs: |- + * `COMPLETE` - COMPLETE + * `INCOMPLETE` - INCOMPLETE + * `RELINK_NEEDED` - RELINK_NEEDED + * `IDLE` - IDLE + source: + openapi: openapi/openapi.yml + AccountIntegration: + properties: + name: + type: string + docs: Company name. + abbreviated_name: + type: optional + docs: >- + Optional. This shortened name appears in places with limited space, + usually in conjunction with the platform's logo (e.g., Merge Link + menu).

Example: Workforce Now (in lieu of ADP Workforce + Now), SuccessFactors (in lieu of SAP SuccessFactors) + categories: + type: optional> + docs: >- + Category or categories this integration belongs to. Multiple + categories should be comma separated, i.e. [ats, hris]. + access: read-only + image: + type: optional + docs: Company logo in rectangular shape. + validation: + format: uri + square_image: + type: optional + docs: Company logo in square shape. + validation: + format: uri + color: + type: optional + docs: >- + The color of this integration used for buttons and text throughout the + app and landing pages. Choose a darker, saturated color. + validation: + pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ + maxLength: 18 + slug: + type: optional + access: read-only + api_endpoints_to_documentation_urls: + type: optional> + docs: >- + Mapping of API endpoints to documentation urls for support. Example: + {'GET': [['/common-model-scopes', + 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', + 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], + 'POST': []} + webhook_setup_guide_url: + type: optional + docs: >- + Setup guide URL for third party webhook creation. Exposed in Merge + Docs. + category_beta_status: + type: optional> + docs: Category or categories this integration is in beta status for. + access: read-only + source: + openapi: openapi/openapi.yml + AccountToken: + properties: + account_token: string + integration: AccountIntegration + id: string + source: + openapi: openapi/openapi.yml + AdvancedMetadata: + properties: + id: + type: string + validation: + format: uuid + display_name: optional + description: optional + is_required: optional + is_custom: optional + field_choices: optional> + source: + openapi: openapi/openapi.yml + AsyncPassthroughReciept: + properties: + async_passthrough_receipt_id: + type: string + validation: + format: uuid + source: + openapi: openapi/openapi.yml + AuditLogEventRole: + discriminated: false + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by a + user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + union: + - RoleEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AuditLogEventEventType: + discriminated: false + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + union: + - EventTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AuditLogEvent: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + user_name: + type: optional + docs: The User's full name at the time of this Event occurring. + validation: + maxLength: 200 + user_email: + type: optional + docs: The User's email at the time of this Event occurring. + validation: + format: email + maxLength: 254 + role: + type: AuditLogEventRole + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by + a user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + ip_address: + type: string + validation: + maxLength: 45 + event_type: + type: AuditLogEventEventType + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - + CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - + DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + event_description: string + created_at: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + AvailableActions: + docs: >- + # The AvailableActions Object + + ### Description + + The `Activity` object is used to see all available model/operation + combinations for an integration. + + + ### Usage Example + + Fetch all the actions available for the `Zenefits` integration. + properties: + integration: AccountIntegration + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: openapi/openapi.yml + CategoriesEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: openapi/openapi.yml + CategoryEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: openapi/openapi.yml + CommonModelScopeApi: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + source: + openapi: openapi/openapi.yml + CommonModelScopesBodyRequest: + properties: + model_id: + type: string + validation: + minLength: 1 + enabled_actions: list + disabled_fields: list + source: + openapi: openapi/openapi.yml + DataPassthroughRequest: + docs: >- + # The DataPassthrough Object + + ### Description + + The `DataPassthrough` object is used to send information to an + otherwise-unsupported third-party endpoint. + + + ### Usage Example + + Create a `DataPassthrough` to get team hierarchies from your Rippling + integration. + properties: + method: MethodEnum + path: + type: string + docs: The path of the request in the third party's platform. + validation: + minLength: 1 + base_url_override: + type: optional + docs: An optional override of the third party's base url for the request. + validation: + minLength: 1 + data: + type: optional + docs: >- + The data with the request. You must include a `request_format` + parameter matching the data's format + validation: + minLength: 1 + multipart_form_data: + type: optional> + docs: >- + Pass an array of `MultipartFormField` objects in here instead of using + the `data` param if `request_format` is set to `MULTIPART`. + headers: + type: optional> + docs: >- + The headers to use for the request (Merge will handle the account's + authorization headers). `Content-Type` header is required for + passthrough. Choose content type corresponding to expected format of + receiving server. + request_format: optional + normalize_response: + type: optional + docs: >- + Optional. If true, the response will always be an object of the form + `{"type": T, "value": ...}` where `T` will be one of `string, boolean, + number, null, array, object`. + source: + openapi: openapi/openapi.yml + DebugModeLog: + properties: + log_id: string + dashboard_view: string + log_summary: DebugModelLogSummary + source: + openapi: openapi/openapi.yml + DebugModelLogSummary: + properties: + url: string + method: string + status_code: integer + source: + openapi: openapi/openapi.yml + DownloadRequestMeta: + properties: + id: string + url: string + method: string + headers: map + source: + openapi: openapi/openapi.yml + Drive: + docs: >- + # The Drive Object + + ### Description + + The `Drive` object is used to represent a drive that contains the folders + and files in the user's workspace. + + ### Usage Example + + Fetch from the `GET /api/filestorage/v1/drives` endpoint and view their + drives. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The drive's name. + validation: + maxLength: 254 + remote_created_at: + type: optional + docs: When the third party's drive was created. + drive_url: + type: optional + docs: The drive's url. + validation: + maxLength: 2000 + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + EnabledActionsEnum: + enum: + - READ + - WRITE + docs: |- + * `READ` - READ + * `WRITE` - WRITE + source: + openapi: openapi/openapi.yml + EncodingEnum: + enum: + - RAW + - BASE64 + - GZIP_BASE64 + docs: |- + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + source: + openapi: openapi/openapi.yml + ErrorValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: openapi/openapi.yml + EventTypeEnum: + enum: + - CREATED_REMOTE_PRODUCTION_API_KEY + - DELETED_REMOTE_PRODUCTION_API_KEY + - CREATED_TEST_API_KEY + - DELETED_TEST_API_KEY + - REGENERATED_PRODUCTION_API_KEY + - REGENERATED_WEBHOOK_SIGNATURE + - INVITED_USER + - TWO_FACTOR_AUTH_ENABLED + - TWO_FACTOR_AUTH_DISABLED + - DELETED_LINKED_ACCOUNT + - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + - CREATED_DESTINATION + - DELETED_DESTINATION + - CHANGED_DESTINATION + - CHANGED_SCOPES + - CHANGED_PERSONAL_INFORMATION + - CHANGED_ORGANIZATION_SETTINGS + - ENABLED_INTEGRATION + - DISABLED_INTEGRATION + - ENABLED_CATEGORY + - DISABLED_CATEGORY + - CHANGED_PASSWORD + - RESET_PASSWORD + - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - FORCED_LINKED_ACCOUNT_RESYNC + - MUTED_ISSUE + - GENERATED_MAGIC_LINK + - ENABLED_MERGE_WEBHOOK + - DISABLED_MERGE_WEBHOOK + - MERGE_WEBHOOK_TARGET_CHANGED + - END_USER_CREDENTIALS_ACCESSED + docs: >- + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + source: + openapi: openapi/openapi.yml + ExternalTargetFieldApi: + properties: + name: + type: optional + access: read-only + description: + type: optional + access: read-only + is_mapped: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + ExternalTargetFieldApiResponse: + properties: + File: optional> + Folder: optional> + Drive: optional> + Group: optional> + User: optional> + source: + openapi: openapi/openapi.yml + FieldMappingApiInstanceTargetField: + properties: + name: string + description: string + is_organization_wide: boolean + source: + openapi: openapi/openapi.yml + inline: true + FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo: + properties: + method: optional + url_path: optional + field_traversal_path: optional> + source: + openapi: openapi/openapi.yml + inline: true + FieldMappingApiInstanceRemoteField: + properties: + remote_key_name: optional + schema: optional> + remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo + source: + openapi: openapi/openapi.yml + inline: true + FieldMappingApiInstance: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + is_integration_wide: + type: optional + access: read-only + target_field: + type: optional + access: read-only + remote_field: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + FieldMappingApiInstanceResponse: + properties: + File: optional> + Folder: optional> + Drive: optional> + Group: optional> + User: optional> + source: + openapi: openapi/openapi.yml + FieldMappingInstanceResponse: + properties: + model: FieldMappingApiInstance + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + FieldPermissionDeserializer: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: openapi/openapi.yml + FieldPermissionDeserializerRequest: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: openapi/openapi.yml + FileFolder: + discriminated: false + docs: The folder that the file belongs to. + union: + - type: string + validation: + format: uuid + - Folder + source: + openapi: openapi/openapi.yml + inline: true + FilePermissionsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Permission + source: + openapi: openapi/openapi.yml + inline: true + FilePermissions: + discriminated: false + docs: >- + The Permission object is used to represent a user's or group's access to a + File or Folder. Permissions are unexpanded by default. Use the query param + `expand=permissions` to see more details under `GET /files`. + union: + - type: string + validation: + format: uuid + - Permission + - list + source: + openapi: openapi/openapi.yml + inline: true + FileDrive: + discriminated: false + docs: The drive that the file belongs to. + union: + - type: string + validation: + format: uuid + - Drive + source: + openapi: openapi/openapi.yml + inline: true + File: + docs: >- + # The File Object + + ### Description + + The `File` object is used to represent a file in the workspace. The Object + typically exists under a folder or drive, if it exists. + + ### Usage Example + + Fetch from the `GET /api/filestorage/v1/files` endpoint and view their + files. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The file's name. + validation: + maxLength: 254 + file_url: + type: optional + docs: The URL to access the file. + validation: + maxLength: 2000 + file_thumbnail_url: + type: optional + docs: >- + The URL that produces a thumbnail preview of the file. Typically an + image. + validation: + maxLength: 2000 + size: + type: optional + docs: The file's size, in bytes. + mime_type: + type: optional + docs: The file's mime type. + validation: + maxLength: 128 + description: + type: optional + docs: The file's description. + validation: + maxLength: 2000 + folder: + type: optional + docs: The folder that the file belongs to. + checksum: + type: optional> + docs: >- + This field stores file checksum data. 'type' indicates the algorithm + (e.g. crc_32, sha1, sha256, quickXor, or md5), and 'content_hash' is + the unique hash used to verify file integrity and detect alterations. + permissions: + type: optional + docs: >- + The Permission object is used to represent a user's or group's access + to a File or Folder. Permissions are unexpanded by default. Use the + query param `expand=permissions` to see more details under `GET + /files`. + drive: + type: optional + docs: The drive that the file belongs to. + remote_created_at: + type: optional + docs: When the third party's file was created. + remote_updated_at: + type: optional + docs: When the third party's file was updated. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + FileRequestFolder: + discriminated: false + docs: The folder that the file belongs to. + union: + - type: string + validation: + format: uuid + - Folder + source: + openapi: openapi/openapi.yml + inline: true + FileRequestPermissionsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PermissionRequest + source: + openapi: openapi/openapi.yml + inline: true + FileRequestPermissions: + discriminated: false + docs: >- + The Permission object is used to represent a user's or group's access to a + File or Folder. Permissions are unexpanded by default. Use the query param + `expand=permissions` to see more details under `GET /files`. + union: + - type: string + validation: + format: uuid + - PermissionRequest + - list + source: + openapi: openapi/openapi.yml + inline: true + FileRequestDrive: + discriminated: false + docs: The drive that the file belongs to. + union: + - type: string + validation: + format: uuid + - Drive + source: + openapi: openapi/openapi.yml + inline: true + FileRequest: + docs: >- + # The File Object + + ### Description + + The `File` object is used to represent a file in the workspace. The Object + typically exists under a folder or drive, if it exists. + + ### Usage Example + + Fetch from the `GET /api/filestorage/v1/files` endpoint and view their + files. + properties: + name: + type: optional + docs: The file's name. + validation: + maxLength: 254 + file_url: + type: optional + docs: The URL to access the file. + validation: + maxLength: 2000 + file_thumbnail_url: + type: optional + docs: >- + The URL that produces a thumbnail preview of the file. Typically an + image. + validation: + maxLength: 2000 + size: + type: optional + docs: The file's size, in bytes. + mime_type: + type: optional + docs: The file's mime type. + validation: + maxLength: 128 + description: + type: optional + docs: The file's description. + validation: + maxLength: 2000 + folder: + type: optional + docs: The folder that the file belongs to. + checksum: + type: optional> + docs: >- + This field stores file checksum data. 'type' indicates the algorithm + (e.g. crc_32, sha1, sha256, quickXor, or md5), and 'content_hash' is + the unique hash used to verify file integrity and detect alterations. + permissions: + type: optional + docs: >- + The Permission object is used to represent a user's or group's access + to a File or Folder. Permissions are unexpanded by default. Use the + query param `expand=permissions` to see more details under `GET + /files`. + drive: + type: optional + docs: The drive that the file belongs to. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + FileStorageFileResponse: + properties: + model: File + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + FileStorageFolderResponse: + properties: + model: Folder + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + FolderParentFolder: + discriminated: false + docs: The folder that the folder belongs to. + union: + - type: string + validation: + format: uuid + - Folder + source: + openapi: openapi/openapi.yml + inline: true + FolderDrive: + discriminated: false + docs: The drive that the folder belongs to. + union: + - type: string + validation: + format: uuid + - Drive + source: + openapi: openapi/openapi.yml + inline: true + FolderPermissionsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Permission + source: + openapi: openapi/openapi.yml + inline: true + FolderPermissions: + discriminated: false + docs: >- + The Permission object is used to represent a user's or group's access to a + File or Folder. Permissions are unexpanded by default. Use the query param + `expand=permissions` to see more details under `GET /folders`. + union: + - type: string + validation: + format: uuid + - Permission + - list + source: + openapi: openapi/openapi.yml + inline: true + Folder: + docs: >- + # The Folder Object + + ### Description + + The `Folder` object is used to represent a collection of files and/or + folders in the workspace. Could be within a drive, if it exists. + + ### Usage Example + + Fetch from the `GET /api/filestorage/v1/folders` endpoint and view their + folders. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The folder's name. + validation: + maxLength: 254 + folder_url: + type: optional + docs: The URL to access the folder. + validation: + maxLength: 2000 + size: + type: optional + docs: The folder's size, in bytes. + description: + type: optional + docs: The folder's description. + validation: + maxLength: 2000 + parent_folder: + type: optional + docs: The folder that the folder belongs to. + drive: + type: optional + docs: The drive that the folder belongs to. + permissions: + type: optional + docs: >- + The Permission object is used to represent a user's or group's access + to a File or Folder. Permissions are unexpanded by default. Use the + query param `expand=permissions` to see more details under `GET + /folders`. + remote_created_at: + type: optional + docs: When the third party's folder was created. + remote_updated_at: + type: optional + docs: When the third party's folder was updated. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + FolderRequestParentFolder: + discriminated: false + docs: The folder that the folder belongs to. + union: + - type: string + validation: + format: uuid + - Folder + source: + openapi: openapi/openapi.yml + inline: true + FolderRequestDrive: + discriminated: false + docs: The drive that the folder belongs to. + union: + - type: string + validation: + format: uuid + - Drive + source: + openapi: openapi/openapi.yml + inline: true + FolderRequestPermissionsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - PermissionRequest + source: + openapi: openapi/openapi.yml + inline: true + FolderRequestPermissions: + discriminated: false + docs: >- + The Permission object is used to represent a user's or group's access to a + File or Folder. Permissions are unexpanded by default. Use the query param + `expand=permissions` to see more details under `GET /folders`. + union: + - type: string + validation: + format: uuid + - PermissionRequest + - list + source: + openapi: openapi/openapi.yml + inline: true + FolderRequest: + docs: >- + # The Folder Object + + ### Description + + The `Folder` object is used to represent a collection of files and/or + folders in the workspace. Could be within a drive, if it exists. + + ### Usage Example + + Fetch from the `GET /api/filestorage/v1/folders` endpoint and view their + folders. + properties: + name: + type: optional + docs: The folder's name. + validation: + maxLength: 254 + folder_url: + type: optional + docs: The URL to access the folder. + validation: + maxLength: 2000 + size: + type: optional + docs: The folder's size, in bytes. + description: + type: optional + docs: The folder's description. + validation: + maxLength: 2000 + parent_folder: + type: optional + docs: The folder that the folder belongs to. + drive: + type: optional + docs: The drive that the folder belongs to. + permissions: + type: optional + docs: >- + The Permission object is used to represent a user's or group's access + to a File or Folder. Permissions are unexpanded by default. Use the + query param `expand=permissions` to see more details under `GET + /folders`. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + GroupChildGroupsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Group + source: + openapi: openapi/openapi.yml + inline: true + Group: + docs: >- + # The Group Object + + ### Description + + The `Group` object is used to represent any subset of `Users`. This can + extend to company domains as well. + + ### Usage Example + + Fetch from the `GET /api/filestorage/v1/groups` endpoint and view their + groups. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The group's name. + validation: + maxLength: 254 + users: + docs: >- + The users that belong in the group. If null, this typically means it's + either a domain or the third-party platform does not surface this + information. + type: list + child_groups: + type: optional> + docs: Groups that inherit the permissions of the parent group. + access: read-only + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + IndividualCommonModelScopeDeserializer: + properties: + model_name: string + model_permissions: optional> + field_permissions: optional + source: + openapi: openapi/openapi.yml + IndividualCommonModelScopeDeserializerRequest: + properties: + model_name: + type: string + validation: + minLength: 1 + model_permissions: optional> + field_permissions: optional + source: + openapi: openapi/openapi.yml + IssueStatus: + discriminated: false + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + union: + - IssueStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Issue: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + error_description: string + end_user: + type: optional> + access: read-only + first_incident_time: optional + last_incident_time: optional + is_muted: + type: optional + access: read-only + error_details: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + IssueStatusEnum: + enum: + - ONGOING + - RESOLVED + docs: |- + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + source: + openapi: openapi/openapi.yml + LanguageEnum: + enum: + - en + - de + docs: |- + * `en` - en + * `de` - de + source: + openapi: openapi/openapi.yml + LastSyncResultEnum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: openapi/openapi.yml + LinkToken: + properties: + link_token: string + integration_name: optional + magic_link_url: optional + source: + openapi: openapi/openapi.yml + LinkedAccountStatus: + properties: + linked_account_status: string + can_make_request: boolean + source: + openapi: openapi/openapi.yml + MetaResponse: + properties: + request_schema: map + remote_field_classes: optional> + status: optional + has_conditional_params: boolean + has_required_linked_account_params: boolean + source: + openapi: openapi/openapi.yml + MethodEnum: + enum: + - GET + - OPTIONS + - HEAD + - POST + - PUT + - PATCH + - DELETE + docs: |- + * `GET` - GET + * `OPTIONS` - OPTIONS + * `HEAD` - HEAD + * `POST` - POST + * `PUT` - PUT + * `PATCH` - PATCH + * `DELETE` - DELETE + source: + openapi: openapi/openapi.yml + ModelOperation: + docs: >- + # The ModelOperation Object + + ### Description + + The `ModelOperation` object is used to represent the operations that are + currently supported for a given model. + + + ### Usage Example + + View what operations are supported for the `Candidate` endpoint. + properties: + model_name: string + available_operations: list + required_post_parameters: list + supported_fields: list + source: + openapi: openapi/openapi.yml + ModelPermissionDeserializer: + properties: + is_enabled: optional + source: + openapi: openapi/openapi.yml + ModelPermissionDeserializerRequest: + properties: + is_enabled: optional + source: + openapi: openapi/openapi.yml + MultipartFormFieldRequestEncoding: + discriminated: false + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + union: + - EncodingEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + MultipartFormFieldRequest: + docs: >- + # The MultipartFormField Object + + ### Description + + The `MultipartFormField` object is used to represent fields in an HTTP + request using `multipart/form-data`. + + + ### Usage Example + + Create a `MultipartFormField` to define a multipart form entry. + properties: + name: + type: string + docs: The name of the form field + validation: + minLength: 1 + data: + type: string + docs: The data for the form field. + validation: + minLength: 1 + encoding: + type: optional + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + file_name: + type: optional + docs: The file name of the form field, if the field is for a file. + validation: + minLength: 1 + content_type: + type: optional + docs: The MIME type of the file, if the field is for a file. + validation: + minLength: 1 + source: + openapi: openapi/openapi.yml + PaginatedAccountDetailsAndActionsList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedAuditLogEventList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedDownloadRequestMetaList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedDriveList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedFileList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedFolderList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedGroupList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedIssueList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedSyncStatusList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedUserList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PermissionUser: + discriminated: false + docs: >- + The user that is granted this permission. This will only be populated if + the type is `USER`. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + PermissionGroup: + discriminated: false + docs: >- + The group that is granted this permission. This will only be populated if + the type is `GROUP`. + union: + - type: string + validation: + format: uuid + - Group + source: + openapi: openapi/openapi.yml + inline: true + PermissionType: + discriminated: false + docs: |- + Denotes what type of people have access to the file. + + * `USER` - USER + * `GROUP` - GROUP + * `COMPANY` - COMPANY + * `ANYONE` - ANYONE + union: + - TypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PermissionRolesItem: + discriminated: false + docs: |- + The permissions that the user or group has for the File or Folder. + + * `READ` - READ + * `WRITE` - WRITE + * `OWNER` - OWNER + union: + - RolesEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Permission: + docs: >- + # The Permission Object + + ### Description + + The Permission object is used to represent a user's or group's access to a + File or Folder. Permissions are unexpanded by default. + + + ### Usage Example + + Fetch from the `GET Files` or `GET Folders` endpoint. Permissions are + unexpanded by default. Use the query param `expand=permissions` to see + more details. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + user: + type: optional + docs: >- + The user that is granted this permission. This will only be populated + if the type is `USER`. + group: + type: optional + docs: >- + The group that is granted this permission. This will only be populated + if the type is `GROUP`. + type: + type: optional + docs: |- + Denotes what type of people have access to the file. + + * `USER` - USER + * `GROUP` - GROUP + * `COMPANY` - COMPANY + * `ANYONE` - ANYONE + roles: + type: optional>> + docs: >- + The permissions that the user or group has for the File or Folder. It + is possible for a user or group to have multiple roles, such as + viewing & uploading. Possible values include: `READ`, `WRITE`, + `OWNER`. In cases where there is no clear mapping, the original value + passed through will be returned. + source: + openapi: openapi/openapi.yml + PermissionRequestUser: + discriminated: false + docs: >- + The user that is granted this permission. This will only be populated if + the type is `USER`. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + PermissionRequestGroup: + discriminated: false + docs: >- + The group that is granted this permission. This will only be populated if + the type is `GROUP`. + union: + - type: string + validation: + format: uuid + - Group + source: + openapi: openapi/openapi.yml + inline: true + PermissionRequestType: + discriminated: false + docs: |- + Denotes what type of people have access to the file. + + * `USER` - USER + * `GROUP` - GROUP + * `COMPANY` - COMPANY + * `ANYONE` - ANYONE + union: + - TypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PermissionRequestRolesItem: + discriminated: false + docs: |- + The permissions that the user or group has for the File or Folder. + + * `READ` - READ + * `WRITE` - WRITE + * `OWNER` - OWNER + union: + - RolesEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PermissionRequest: + docs: >- + # The Permission Object + + ### Description + + The Permission object is used to represent a user's or group's access to a + File or Folder. Permissions are unexpanded by default. + + + ### Usage Example + + Fetch from the `GET Files` or `GET Folders` endpoint. Permissions are + unexpanded by default. Use the query param `expand=permissions` to see + more details. + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + user: + type: optional + docs: >- + The user that is granted this permission. This will only be populated + if the type is `USER`. + group: + type: optional + docs: >- + The group that is granted this permission. This will only be populated + if the type is `GROUP`. + type: + type: optional + docs: |- + Denotes what type of people have access to the file. + + * `USER` - USER + * `GROUP` - GROUP + * `COMPANY` - COMPANY + * `ANYONE` - ANYONE + roles: + type: optional>> + docs: >- + The permissions that the user or group has for the File or Folder. It + is possible for a user or group to have multiple roles, such as + viewing & uploading. Possible values include: `READ`, `WRITE`, + `OWNER`. In cases where there is no clear mapping, the original value + passed through will be returned. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + RemoteData: + docs: >- + # The RemoteData Object + + ### Description + + The `RemoteData` object is used to represent the full data pulled from the + third-party API for an object. + + + ### Usage Example + + TODO + properties: + path: + type: string + docs: The third-party API path that is being called. + data: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + RemoteEndpointInfo: + properties: + method: string + url_path: string + field_traversal_path: list + source: + openapi: openapi/openapi.yml + RemoteFieldApiCoverage: + discriminated: false + union: + - integer + - double + source: + openapi: openapi/openapi.yml + inline: true + RemoteFieldApi: + properties: + schema: map + remote_key_name: string + remote_endpoint_info: RemoteEndpointInfo + example_values: optional> + advanced_metadata: optional + coverage: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + RemoteFieldApiResponse: + properties: + File: optional> + Folder: optional> + Drive: optional> + Group: optional> + User: optional> + source: + openapi: openapi/openapi.yml + RemoteKey: + docs: >- + # The RemoteKey Object + + ### Description + + The `RemoteKey` object is used to represent a request for a new remote + key. + + + ### Usage Example + + Post a `GenerateRemoteKey` to receive a new `RemoteKey`. + properties: + name: string + key: string + source: + openapi: openapi/openapi.yml + RemoteResponse: + docs: >- + # The RemoteResponse Object + + ### Description + + The `RemoteResponse` object is used to represent information returned from + a third-party endpoint. + + + ### Usage Example + + View the `RemoteResponse` returned from your `DataPassthrough`. + properties: + method: string + path: string + status: integer + response: unknown + response_headers: optional> + response_type: optional + headers: optional> + source: + openapi: openapi/openapi.yml + RequestFormatEnum: + enum: + - JSON + - XML + - MULTIPART + docs: |- + * `JSON` - JSON + * `XML` - XML + * `MULTIPART` - MULTIPART + source: + openapi: openapi/openapi.yml + ResponseTypeEnum: + enum: + - JSON + - BASE64_GZIP + docs: |- + * `JSON` - JSON + * `BASE64_GZIP` - BASE64_GZIP + source: + openapi: openapi/openapi.yml + RoleEnum: + enum: + - ADMIN + - DEVELOPER + - MEMBER + - API + - SYSTEM + - MERGE_TEAM + docs: |- + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + source: + openapi: openapi/openapi.yml + RolesEnum: + enum: + - READ + - WRITE + - OWNER + docs: |- + * `READ` - READ + * `WRITE` - WRITE + * `OWNER` - OWNER + source: + openapi: openapi/openapi.yml + SelectiveSyncConfigurationsUsageEnum: + enum: + - IN_NEXT_SYNC + - IN_LAST_SYNC + docs: |- + * `IN_NEXT_SYNC` - IN_NEXT_SYNC + * `IN_LAST_SYNC` - IN_LAST_SYNC + source: + openapi: openapi/openapi.yml + StatusFd5Enum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: openapi/openapi.yml + SyncStatusLastSyncResult: + discriminated: false + union: + - LastSyncResultEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + SyncStatus: + docs: >- + # The SyncStatus Object + + ### Description + + The `SyncStatus` object is used to represent the syncing state of an + account + + + ### Usage Example + + View the `SyncStatus` for an account to see how recently its models were + synced. + properties: + model_name: string + model_id: string + last_sync_start: optional + next_sync_start: optional + last_sync_result: optional + last_sync_finished: optional + status: StatusFd5Enum + is_initial_sync: boolean + selective_sync_configurations_usage: optional + source: + openapi: openapi/openapi.yml + TypeEnum: + enum: + - USER + - GROUP + - COMPANY + - ANYONE + docs: |- + * `USER` - USER + * `GROUP` - GROUP + * `COMPANY` - COMPANY + * `ANYONE` - ANYONE + source: + openapi: openapi/openapi.yml + User: + docs: >- + # The User Object + + ### Description + + The `User` object is used to represent a user within the File Storage + account. + + ### Usage Example + + Fetch from the `GET /api/filestorage/v1/users` endpoint and view their + users. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The user's name. + validation: + maxLength: 254 + email_address: + type: optional + docs: >- + The user's email address. This is typically used to identify a user + across linked accounts. + validation: + maxLength: 2000 + is_me: + type: optional + docs: Whether the user is the one who linked this account. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + ValidationProblemSource: + properties: + pointer: string + source: + openapi: openapi/openapi.yml + WarningValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: openapi/openapi.yml + WebhookReceiver: + properties: + event: string + is_active: boolean + key: optional + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/accountDetails.yml b/.mock/definition/filestorage/accountDetails.yml new file mode 100644 index 000000000..2411f37c2 --- /dev/null +++ b/.mock/definition/filestorage/accountDetails.yml @@ -0,0 +1,36 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /filestorage/v1/account-details + method: GET + auth: true + docs: Get details for a linked account. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.AccountDetails + status-code: 200 + examples: + - headers: {} + response: + body: + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + integration: BambooHR + integration_slug: bamboohr + category: hris + end_user_origin_id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + end_user_organization_name: Waystar Royco + end_user_email_address: kendall.roy@waystar-royco.com + status: COMPLETE + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/accountToken.yml b/.mock/definition/filestorage/accountToken.yml new file mode 100644 index 000000000..2c17a04f5 --- /dev/null +++ b/.mock/definition/filestorage/accountToken.yml @@ -0,0 +1,44 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /filestorage/v1/account-token/{public_token} + method: GET + auth: true + docs: >- + Returns the account token for the end user with the provided public + token. + source: + openapi: openapi/openapi.yml + path-parameters: + public_token: string + response: + docs: '' + type: root.AccountToken + status-code: 200 + examples: + - path-parameters: + public_token: public_token + response: + body: + account_token: T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/asyncPassthrough.yml b/.mock/definition/filestorage/asyncPassthrough.yml new file mode 100644 index 000000000..58df8351f --- /dev/null +++ b/.mock/definition/filestorage/asyncPassthrough.yml @@ -0,0 +1,70 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /filestorage/v1/async-passthrough + method: POST + auth: true + docs: >- + Asynchronously pull data from an endpoint not currently supported by + Merge. + source: + openapi: openapi/openapi.yml + request: + body: root.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: root.AsyncPassthroughReciept + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + async_passthrough_receipt_id: fd29020f-2695-445e-922e-dcd5e81903fd + retrieve: + path: /filestorage/v1/async-passthrough/{async_passthrough_receipt_id} + method: GET + auth: true + docs: Retrieves data from earlier async-passthrough POST request + source: + openapi: openapi/openapi.yml + path-parameters: + async_passthrough_receipt_id: string + response: + docs: '' + type: AsyncPassthroughRetrieveResponse + status-code: 200 + examples: + - path-parameters: + async_passthrough_receipt_id: async_passthrough_receipt_id + headers: {} + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: openapi/openapi.yml +types: + AsyncPassthroughRetrieveResponse: + discriminated: false + union: + - root.RemoteResponse + - string + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/auditTrail.yml b/.mock/definition/filestorage/auditTrail.yml new file mode 100644 index 000000000..f21c35fe7 --- /dev/null +++ b/.mock/definition/filestorage/auditTrail.yml @@ -0,0 +1,94 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/audit-trail + method: GET + auth: true + docs: Gets a list of audit trail events. + source: + openapi: openapi/openapi.yml + request: + name: AuditTrailListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + before this time + event_type: + type: optional + docs: >- + If included, will only include events with the given event type. + Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, + `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, + `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, + `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, + `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, + `DELETED_LINKED_ACCOUNT`, + `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, + `CREATED_DESTINATION`, `DELETED_DESTINATION`, + `CHANGED_DESTINATION`, `CHANGED_SCOPES`, + `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, + `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, + `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, + `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, + `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, + `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, + `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, + `END_USER_CREDENTIALS_ACCESSED` + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + after this time + user_email: + type: optional + docs: >- + If provided, this will return events associated with the specified + user email. Please note that the email address reflects the user's + email at the time of the event, and may not be their current + email. + response: + docs: '' + type: root.PaginatedAuditLogEventList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b5ceea2a-7171-47ce-8090-165cfce5572c + user_name: Gil Feig + user_email: hello@merge.dev + role: ADMIN + ip_address: 192.0.2.123 + event_type: CREATED_REMOTE_PRODUCTION_API_KEY + event_description: >- + Organization-wide Scopes for model hris.Employee updated + from Read to Read+Write + created_at: '2024-01-15T09:30:00Z' + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/availableActions.yml b/.mock/definition/filestorage/availableActions.yml new file mode 100644 index 000000000..b7a5e2b10 --- /dev/null +++ b/.mock/definition/filestorage/availableActions.yml @@ -0,0 +1,50 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /filestorage/v1/available-actions + method: GET + auth: true + docs: Returns a list of models and actions available for an account. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.AvailableActions + status-code: 200 + examples: + - headers: {} + response: + body: + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/deleteAccount.yml b/.mock/definition/filestorage/deleteAccount.yml new file mode 100644 index 000000000..9b6911542 --- /dev/null +++ b/.mock/definition/filestorage/deleteAccount.yml @@ -0,0 +1,15 @@ +service: + auth: false + base-path: '' + endpoints: + delete: + path: /filestorage/v1/delete-account + method: POST + auth: true + docs: Delete a linked account. + source: + openapi: openapi/openapi.yml + examples: + - headers: {} + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/drives.yml b/.mock/definition/filestorage/drives.yml new file mode 100644 index 000000000..969b23212 --- /dev/null +++ b/.mock/definition/filestorage/drives.yml @@ -0,0 +1,145 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/drives + method: GET + auth: true + docs: Returns a list of `Drive` objects. + source: + openapi: openapi/openapi.yml + request: + name: DrivesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + name: + type: optional + docs: >- + If provided, will only return drives with this name. This performs + an exact match. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedDriveList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: f9e3d315-d6c2-458e-85c4-fa773d6ff4a6 + remote_id: '2039348' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: My Drive + remote_created_at: '2024-01-15T09:30:00Z' + drive_url: https://drive.com/drives/2039349 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /drives + data: + - Varies by platform + retrieve: + path: /filestorage/v1/drives/{id} + method: GET + auth: true + docs: Returns a `Drive` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: DrivesRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Drive + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: f9e3d315-d6c2-458e-85c4-fa773d6ff4a6 + remote_id: '2039348' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: My Drive + remote_created_at: '2024-01-15T09:30:00Z' + drive_url: https://drive.com/drives/2039349 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /drives + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/fieldMapping.yml b/.mock/definition/filestorage/fieldMapping.yml new file mode 100644 index 000000000..0ef97a188 --- /dev/null +++ b/.mock/definition/filestorage/fieldMapping.yml @@ -0,0 +1,518 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + field_mappings_retrieve: + path: /filestorage/v1/field-mappings + method: GET + auth: true + docs: >- + Get all Field Mappings for this Linked Account. Field Mappings are + mappings between third-party Remote Fields and user defined Merge + fields. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: openapi/openapi.yml + request: + name: FieldMappingsRetrieveRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + response: + docs: '' + type: root.FieldMappingApiInstanceResponse + status-code: 200 + examples: + - headers: {} + response: + body: + File: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Folder: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Drive: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Group: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + User: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + field_mappings_create: + path: /filestorage/v1/field-mappings + method: POST + auth: true + docs: >- + Create new Field Mappings that will be available after the next + scheduled sync. This will cause the next sync for this Linked Account to + sync **ALL** data from start. + source: + openapi: openapi/openapi.yml + request: + name: CreateFieldMappingRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + body: + properties: + target_field_name: + type: string + docs: >- + The name of the target field you want this remote field to map + to. + validation: + minLength: 1 + target_field_description: + type: string + docs: >- + The description of the target field you want this remote field + to map to. + validation: + minLength: 1 + remote_field_traversal_path: + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + type: list + remote_method: + type: string + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: string + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + common_model_name: + type: string + docs: >- + The name of the Common Model that the remote field corresponds + to in a given category. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.FieldMappingInstanceResponse + status-code: 201 + examples: + - headers: {} + request: + target_field_name: example_target_field_name + target_field_description: this is a example description of the target field + remote_field_traversal_path: + - example_remote_field + remote_method: GET + remote_url_path: /example-url-path + common_model_name: ExampleCommonModel + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_destroy: + path: /filestorage/v1/field-mappings/{field_mapping_id} + method: DELETE + auth: true + docs: >- + Deletes Field Mappings for a Linked Account. All data related to this + Field Mapping will be deleted and these changes will be reflected after + the next scheduled sync. This will cause the next sync for this Linked + Account to sync **ALL** data from start. + source: + openapi: openapi/openapi.yml + path-parameters: + field_mapping_id: string + response: + docs: '' + type: root.FieldMappingInstanceResponse + status-code: 204 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_partial_update: + path: /filestorage/v1/field-mappings/{field_mapping_id} + method: PATCH + auth: true + docs: >- + Create or update existing Field Mappings for a Linked Account. Changes + will be reflected after the next scheduled sync. This will cause the + next sync for this Linked Account to sync **ALL** data from start. + source: + openapi: openapi/openapi.yml + path-parameters: + field_mapping_id: string + request: + name: PatchedEditFieldMappingRequest + body: + properties: + remote_field_traversal_path: + type: optional> + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + remote_method: + type: optional + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: optional + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.FieldMappingInstanceResponse + status-code: 200 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + request: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + remote_fields_retrieve: + path: /filestorage/v1/remote-fields + method: GET + auth: true + docs: >- + Get all remote fields for a Linked Account. Remote fields are + third-party fields that are accessible after initial sync if remote_data + is enabled. You can use remote fields to override existing Merge fields + or map a new Merge field. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: openapi/openapi.yml + request: + name: RemoteFieldsRetrieveRequest + query-parameters: + common_models: + type: optional + docs: >- + A comma seperated list of Common Model names. If included, will + only return Remote Fields for those Common Models. + include_example_values: + type: optional + docs: >- + If true, will include example values, where available, for remote + fields in the 3rd party platform. These examples come from active + data from your customers. + response: + docs: '' + type: root.RemoteFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + File: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Folder: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Drive: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Group: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + User: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + target_fields_retrieve: + path: /filestorage/v1/target-fields + method: GET + auth: true + docs: >- + Get all organization-wide Target Fields, this will not include any + Linked Account specific Target Fields. Organization-wide Target Fields + are additional fields appended to the Merge Common Model for all Linked + Accounts in a category. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.ExternalTargetFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + File: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Folder: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Drive: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Group: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + User: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/files.yml b/.mock/definition/filestorage/files.yml new file mode 100644 index 000000000..7230424da --- /dev/null +++ b/.mock/definition/filestorage/files.yml @@ -0,0 +1,672 @@ +types: + FilesListRequestExpand: + enum: + - drive + - folder + - value: folder,drive + name: FolderDrive + - permissions + - value: permissions,drive + name: PermissionsDrive + - value: permissions,folder + name: PermissionsFolder + - value: permissions,folder,drive + name: PermissionsFolderDrive + source: + openapi: openapi/openapi.yml + FilesListRequestOrderBy: + enum: + - value: '-created_at' + name: CreatedAtDescending + - value: '-modified_at' + name: ModifiedAtDescending + - value: created_at + name: CreatedAtAscending + - value: modified_at + name: ModifiedAtAscending + source: + openapi: openapi/openapi.yml + FilesRetrieveRequestExpand: + enum: + - drive + - folder + - value: folder,drive + name: FolderDrive + - permissions + - value: permissions,drive + name: PermissionsDrive + - value: permissions,folder + name: PermissionsFolder + - value: permissions,folder,drive + name: PermissionsFolderDrive + source: + openapi: openapi/openapi.yml + FilesDownloadRequestMetaListRequestOrderBy: + enum: + - value: '-created_at' + name: CreatedAtDescending + - value: '-modified_at' + name: ModifiedAtDescending + - value: created_at + name: CreatedAtAscending + - value: modified_at + name: ModifiedAtAscending + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/files + method: GET + auth: true + docs: Returns a list of `File` objects. + source: + openapi: openapi/openapi.yml + request: + name: FilesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + drive_id: + type: optional + docs: >- + Specifying a drive id returns only the files in that drive. + Specifying null returns only the files outside the top-level + drive. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + folder_id: + type: optional + docs: >- + Specifying a folder id returns only the files in that folder. + Specifying null returns only the files in root directory. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + mime_type: + type: optional + docs: >- + If provided, will only return files with these mime_types. + Multiple values can be separated by commas. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + name: + type: optional + docs: >- + If provided, will only return files with this name. This performs + an exact match. + order_by: + type: optional + docs: >- + Overrides the default ordering for this endpoint. Possible values + include: created_at, -created_at, modified_at, -modified_at. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedFileList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 45ce474c-dhcj-43a6-754r-629f799f7d68 + remote_id: '12' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: merge_file_storage_launch.docx + file_url: https://drive.com/1234 + file_thumbnail_url: https://drive.com/1234/thumbnail.png + size: 254 + mime_type: >- + application/vnd.openxmlformats-officedocument.wordprocessingml.document + description: >- + Use common model scopes to redact data returned in Merge's + Common Models! + folder: folder + checksum: + type: sha256 + content_hash: >- + e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + permissions: permissions + drive: drive + remote_created_at: '2022-02-02T00:00:00Z' + remote_updated_at: '2022-02-03T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /files + data: + - Varies by platform + create: + path: /filestorage/v1/files + method: POST + auth: true + docs: Creates a `File` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: FileStorageFileEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.FileRequest + content-type: application/json + response: + docs: '' + type: root.FileStorageFileResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 45ce474c-dhcj-43a6-754r-629f799f7d68 + remote_id: '12' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: merge_file_storage_launch.docx + file_url: https://drive.com/1234 + file_thumbnail_url: https://drive.com/1234/thumbnail.png + size: 254 + mime_type: >- + application/vnd.openxmlformats-officedocument.wordprocessingml.document + description: >- + Use common model scopes to redact data returned in Merge's + Common Models! + folder: folder + checksum: + type: sha256 + content_hash: >- + e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + permissions: permissions + drive: drive + remote_created_at: '2022-02-02T00:00:00Z' + remote_updated_at: '2022-02-03T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /files + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /filestorage/v1/files/{id} + method: GET + auth: true + docs: Returns a `File` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: FilesRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.File + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 45ce474c-dhcj-43a6-754r-629f799f7d68 + remote_id: '12' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: merge_file_storage_launch.docx + file_url: https://drive.com/1234 + file_thumbnail_url: https://drive.com/1234/thumbnail.png + size: 254 + mime_type: >- + application/vnd.openxmlformats-officedocument.wordprocessingml.document + description: >- + Use common model scopes to redact data returned in Merge's + Common Models! + folder: folder + checksum: + type: sha256 + content_hash: >- + e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + permissions: permissions + drive: drive + remote_created_at: '2022-02-02T00:00:00Z' + remote_updated_at: '2022-02-03T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /files + data: + - Varies by platform + downloadRetrieve: + path: /filestorage/v1/files/{id}/download + method: GET + auth: true + docs: Returns the `File` content with the given `id` as a stream of bytes. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: FilesDownloadRetrieveRequest + query-parameters: + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + mime_type: + type: optional + docs: >- + If provided, specifies the export format of the file to be + downloaded. For information on supported export formats, please + refer to our export format help center article. + response: + docs: '' + type: file + status-code: 200 + downloadRequestMetaRetrieve: + path: /filestorage/v1/files/{id}/download/request-meta + method: GET + auth: true + docs: >- + Returns metadata to construct an authenticated file download request for + a singular file, allowing you to download file directly from the + third-party. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: FilesDownloadRequestMetaRetrieveRequest + query-parameters: + mime_type: + type: optional + docs: >- + If provided, specifies the export format of the file to be + downloaded. For information on supported export formats, please + refer to our export format help center article. + response: + docs: '' + type: root.DownloadRequestMeta + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + url: https://www.googleapis.com/drive/v3/files/234?alt=media + method: GET + headers: + Authorization: Bearer 1234 + downloadRequestMetaList: + path: /filestorage/v1/files/download/request-meta + method: GET + auth: true + docs: >- + Returns metadata to construct authenticated file download requests, + allowing you to download files directly from the third-party. + source: + openapi: openapi/openapi.yml + request: + name: FilesDownloadRequestMetaListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + mime_types: + type: optional + docs: >- + A comma-separated list of preferred MIME types in order of + priority. If supported by the third-party provider, the file(s) + will be returned in the first supported MIME type from the list. + The default MIME type is PDF. To see supported MIME types by file + type, refer to our export format help center article. + modified_after: + type: optional + docs: >- + If provided, will only return objects modified after this + datetime. + modified_before: + type: optional + docs: >- + If provided, will only return objects modified before this + datetime. + order_by: + type: optional + docs: >- + Overrides the default ordering for this endpoint. Possible values + include: created_at, -created_at, modified_at, -modified_at. + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedDownloadRequestMetaList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + url: https://www.googleapis.com/drive/v3/files/234?alt=media + method: GET + headers: + Authorization: Bearer 1234 + metaPostRetrieve: + path: /filestorage/v1/files/meta/post + method: GET + auth: true + docs: Returns metadata for `FileStorageFile` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/folders.yml b/.mock/definition/filestorage/folders.yml new file mode 100644 index 000000000..50ad205bc --- /dev/null +++ b/.mock/definition/filestorage/folders.yml @@ -0,0 +1,466 @@ +types: + FoldersListRequestExpand: + enum: + - drive + - parent_folder + - value: parent_folder,drive + name: ParentFolderDrive + - permissions + - value: permissions,drive + name: PermissionsDrive + - value: permissions,parent_folder + name: PermissionsParentFolder + - value: permissions,parent_folder,drive + name: PermissionsParentFolderDrive + source: + openapi: openapi/openapi.yml + FoldersRetrieveRequestExpand: + enum: + - drive + - parent_folder + - value: parent_folder,drive + name: ParentFolderDrive + - permissions + - value: permissions,drive + name: PermissionsDrive + - value: permissions,parent_folder + name: PermissionsParentFolder + - value: permissions,parent_folder,drive + name: PermissionsParentFolderDrive + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/folders + method: GET + auth: true + docs: Returns a list of `Folder` objects. + source: + openapi: openapi/openapi.yml + request: + name: FoldersListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + drive_id: + type: optional + docs: If provided, will only return folders in this drive. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + name: + type: optional + docs: >- + If provided, will only return folders with this name. This + performs an exact match. + page_size: + type: optional + docs: Number of results to return per page. + parent_folder_id: + type: optional + docs: >- + If provided, will only return folders in this parent folder. If + null, will return folders in root directory. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedFolderList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: e021f7a7-74fc-4487-8e12-14180c92d3b7 + remote_id: '14' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: R&D + folder_url: https://drive.com/1234 + size: 2738000 + description: All things R&D related at Merge! + parent_folder: parent_folder + drive: drive + permissions: permissions + remote_created_at: '2024-02-02T00:00:00Z' + remote_updated_at: '2024-06-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /folders + data: + - Varies by platform + create: + path: /filestorage/v1/folders + method: POST + auth: true + docs: Creates a `Folder` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: FileStorageFolderEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.FolderRequest + content-type: application/json + response: + docs: '' + type: root.FileStorageFolderResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: e021f7a7-74fc-4487-8e12-14180c92d3b7 + remote_id: '14' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: R&D + folder_url: https://drive.com/1234 + size: 2738000 + description: All things R&D related at Merge! + parent_folder: parent_folder + drive: drive + permissions: permissions + remote_created_at: '2024-02-02T00:00:00Z' + remote_updated_at: '2024-06-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /folders + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /filestorage/v1/folders/{id} + method: GET + auth: true + docs: Returns a `Folder` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: FoldersRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Folder + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: e021f7a7-74fc-4487-8e12-14180c92d3b7 + remote_id: '14' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: R&D + folder_url: https://drive.com/1234 + size: 2738000 + description: All things R&D related at Merge! + parent_folder: parent_folder + drive: drive + permissions: permissions + remote_created_at: '2024-02-02T00:00:00Z' + remote_updated_at: '2024-06-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /folders + data: + - Varies by platform + metaPostRetrieve: + path: /filestorage/v1/folders/meta/post + method: GET + auth: true + docs: Returns metadata for `FileStorageFolder` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/forceResync.yml b/.mock/definition/filestorage/forceResync.yml new file mode 100644 index 000000000..644c49b81 --- /dev/null +++ b/.mock/definition/filestorage/forceResync.yml @@ -0,0 +1,37 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + sync_status_resync_create: + path: /filestorage/v1/sync-status/resync + method: POST + auth: true + docs: >- + Force re-sync of all models. This endpoint is available for monthly, + quarterly, and highest sync frequency customers on the Professional or + Enterprise plans. Doing so will consume a sync credit for the relevant + linked account. Force re-syncs can also be triggered manually in the + Merge Dashboard and is available for all customers. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - model_name: File + model_id: filestorage.FileStorageFile + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/generateKey.yml b/.mock/definition/filestorage/generateKey.yml new file mode 100644 index 000000000..04ac41b87 --- /dev/null +++ b/.mock/definition/filestorage/generateKey.yml @@ -0,0 +1,36 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /filestorage/v1/generate-key + method: POST + auth: true + docs: Create a remote key. + source: + openapi: openapi/openapi.yml + request: + name: GenerateRemoteKeyRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/groups.yml b/.mock/definition/filestorage/groups.yml new file mode 100644 index 000000000..247ce30a9 --- /dev/null +++ b/.mock/definition/filestorage/groups.yml @@ -0,0 +1,154 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/groups + method: GET + auth: true + docs: Returns a list of `Group` objects. + source: + openapi: openapi/openapi.yml + request: + name: GroupsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedGroupList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 5624aceb-0ea2-4864-ba08-354ac56b9884 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Administrators + users: + - 6e93361b-8ae7-444b-bfa2-71206cbbee24 + child_groups: + - a1f90b3c-633d-404e-a696-05cd54808676 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /groups + data: + - Varies by platform + retrieve: + path: /filestorage/v1/groups/{id} + method: GET + auth: true + docs: Returns a `Group` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: GroupsRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Group + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 5624aceb-0ea2-4864-ba08-354ac56b9884 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Administrators + users: + - 6e93361b-8ae7-444b-bfa2-71206cbbee24 + child_groups: + - a1f90b3c-633d-404e-a696-05cd54808676 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /groups + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/issues.yml b/.mock/definition/filestorage/issues.yml new file mode 100644 index 000000000..b6a1d19e5 --- /dev/null +++ b/.mock/definition/filestorage/issues.yml @@ -0,0 +1,129 @@ +types: + IssuesListRequestStatus: + enum: + - ONGOING + - RESOLVED + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/issues + method: GET + auth: true + docs: Gets all issues for Organization. + source: + openapi: openapi/openapi.yml + request: + name: IssuesListRequest + query-parameters: + account_token: optional + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred before this time + end_user_organization_name: optional + first_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + after this datetime. + first_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + before this datetime. + include_muted: + type: optional + docs: If true, will include muted issues + integration_name: optional + last_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + after this datetime. + last_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + before this datetime. + linked_account_id: + type: optional + docs: >- + If provided, will only include issues pertaining to the linked + account passed in. + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred after this time + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + response: + docs: '' + type: root.PaginatedIssueList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + retrieve: + path: /filestorage/v1/issues/{id} + method: GET + auth: true + docs: Get a specific issue. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + response: + docs: '' + type: root.Issue + status-code: 200 + examples: + - path-parameters: + id: id + response: + body: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/linkToken.yml b/.mock/definition/filestorage/linkToken.yml new file mode 100644 index 000000000..fda54a0c7 --- /dev/null +++ b/.mock/definition/filestorage/linkToken.yml @@ -0,0 +1,135 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /filestorage/v1/link-token + method: POST + auth: true + docs: Creates a link token to be used when linking a new end user. + source: + openapi: openapi/openapi.yml + request: + name: EndUserDetailsRequest + body: + properties: + end_user_email_address: + type: string + docs: >- + Your end user's email address. This is purely for identification + purposes - setting this value will not cause any emails to be + sent. + validation: + minLength: 1 + maxLength: 100 + end_user_organization_name: + type: string + docs: Your end user's organization. + validation: + minLength: 1 + maxLength: 100 + end_user_origin_id: + type: string + docs: >- + This unique identifier typically represents the ID for your end + user in your product's database. This value must be distinct + from other Linked Accounts' unique identifiers. + validation: + minLength: 1 + maxLength: 100 + categories: + docs: The integration categories to show in Merge Link. + type: list + integration: + type: optional + docs: >- + The slug of a specific pre-selected integration for this linking + flow token. For examples of slugs, see + https://docs.merge.dev/guides/merge-link/single-integration/. + validation: + minLength: 1 + link_expiry_mins: + type: optional + docs: >- + An integer number of minutes between [30, 720 or 10080 if for a + Magic Link URL] for how long this token is valid. Defaults to + 30. + default: 30 + validation: + min: 30 + max: 10080 + should_create_magic_link_url: + type: optional + docs: >- + Whether to generate a Magic Link URL. Defaults to false. For + more information on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + hide_admin_magic_link: + type: optional + docs: >- + Whether to generate a Magic Link URL on the Admin Needed screen + during the linking flow. Defaults to false. For more information + on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + common_models: + type: optional> + docs: >- + An array of objects to specify the models and fields that will + be disabled for a given Linked Account. Each object uses + model_id, enabled_actions, and disabled_fields to specify the + model, method, and fields that are scoped for a given Linked + Account. + category_common_model_scopes: + type: >- + optional>>> + docs: >- + When creating a Link Token, you can set permissions for Common + Models that will apply to the account that is going to be + linked. Any model or field not specified in link token payload + will default to existing settings. + language: + type: optional + docs: >- + The following subset of IETF language tags can be used to + configure localization. + + + * `en` - en + + * `de` - de + are_syncs_disabled: + type: optional + docs: >- + The boolean that indicates whether initial, periodic, and force + syncs will be disabled. + default: false + integration_specific_config: + type: optional> + docs: >- + A JSON object containing integration-specific configuration + options. + content-type: application/json + response: + docs: '' + type: root.LinkToken + status-code: 200 + examples: + - request: + end_user_email_address: example@gmail.com + end_user_organization_name: Test Organization + end_user_origin_id: '12345' + categories: + - hris + - ats + response: + body: + link_token: necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0 + integration_name: Lever + magic_link_url: https://link.merge.dev/asdfjkl12345jsndfgi2i83n + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/linkedAccounts.yml b/.mock/definition/filestorage/linkedAccounts.yml new file mode 100644 index 000000000..d8fb0eb69 --- /dev/null +++ b/.mock/definition/filestorage/linkedAccounts.yml @@ -0,0 +1,150 @@ +types: + LinkedAccountsListRequestCategory: + enum: + - accounting + - ats + - crm + - filestorage + - hris + - mktg + - ticketing + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/linked-accounts + method: GET + auth: true + docs: List linked accounts for your organization. + source: + openapi: openapi/openapi.yml + request: + name: LinkedAccountsListRequest + query-parameters: + category: + type: optional + docs: >- + Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, + `mktg`, `ticketing` + + + * `hris` - hris + + * `ats` - ats + + * `accounting` - accounting + + * `ticketing` - ticketing + + * `crm` - crm + + * `mktg` - mktg + + * `filestorage` - filestorage + cursor: + type: optional + docs: The pagination cursor value. + end_user_email_address: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given email address. + end_user_organization_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given organization name. + end_user_origin_id: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given origin ID. + end_user_origin_ids: + type: optional + docs: >- + Comma-separated list of EndUser origin IDs, making it possible to + specify multiple EndUsers at once. + id: + type: optional + validation: + format: uuid + ids: + type: optional + docs: >- + Comma-separated list of LinkedAccount IDs, making it possible to + specify multiple LinkedAccounts at once. + include_duplicates: + type: optional + docs: >- + If `true`, will include complete production duplicates of the + account specified by the `id` query parameter in the response. + `id` must be for a complete production linked account. + integration_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given integration name. + is_test_account: + type: optional + docs: >- + If included, will only include test linked accounts. If not + included, will only include non-test linked accounts. + page_size: + type: optional + docs: Number of results to return per page. + status: + type: optional + docs: >- + Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, + `RELINK_NEEDED` + response: + docs: '' + type: root.PaginatedAccountDetailsAndActionsList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: e59b1821-f85c-4e28-a6b3-1804156f3563 + category: hris + status: COMPLETE + status_detail: Invalid login credentials + end_user_origin_id: 3ac95cde-6c7f-4eef-afec-be710b42308d + end_user_organization_name: Foo Bar, LLC + end_user_email_address: hradmin@foobar.dev + subdomain: foobar + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + integration: + name: name + categories: + - hris + color: color + slug: slug + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + integration_specific_fields: + integration_specific_field: Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/passthrough.yml b/.mock/definition/filestorage/passthrough.yml new file mode 100644 index 000000000..432034bc2 --- /dev/null +++ b/.mock/definition/filestorage/passthrough.yml @@ -0,0 +1,40 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /filestorage/v1/passthrough + method: POST + auth: true + docs: Pull data from an endpoint not currently supported by Merge. + source: + openapi: openapi/openapi.yml + request: + body: root.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: root.RemoteResponse + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/regenerateKey.yml b/.mock/definition/filestorage/regenerateKey.yml new file mode 100644 index 000000000..cd80f783a --- /dev/null +++ b/.mock/definition/filestorage/regenerateKey.yml @@ -0,0 +1,36 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /filestorage/v1/regenerate-key + method: POST + auth: true + docs: Exchange remote keys. + source: + openapi: openapi/openapi.yml + request: + name: RemoteKeyForRegenerationRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/scopes.yml b/.mock/definition/filestorage/scopes.yml new file mode 100644 index 000000000..a48a1642c --- /dev/null +++ b/.mock/definition/filestorage/scopes.yml @@ -0,0 +1,160 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + default_scopes_retrieve: + path: /filestorage/v1/default-scopes + method: GET + auth: true + docs: >- + Get the default permissions for Merge Common Models and fields across + all Linked Accounts of a given category. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.CommonModelScopeApi + status-code: 200 + examples: + - response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_retrieve: + path: /filestorage/v1/linked-account-scopes + method: GET + auth: true + docs: >- + Get all available permissions for Merge Common Models and fields for a + single Linked Account. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_create: + path: /filestorage/v1/linked-account-scopes + method: POST + auth: true + docs: >- + Update permissions for any Common Model or field for a single Linked + Account. Any Scopes not set in this POST request will inherit the + default Scopes. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) + source: + openapi: openapi/openapi.yml + request: + name: LinkedAccountCommonModelScopeDeserializerRequest + body: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + content-type: application/json + response: + docs: '' + type: root.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + request: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - home_location + disabled_fields: + - work_location + - model_name: Benefit + model_permissions: + WRITE: + is_enabled: false + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/syncStatus.yml b/.mock/definition/filestorage/syncStatus.yml new file mode 100644 index 000000000..53140e4d7 --- /dev/null +++ b/.mock/definition/filestorage/syncStatus.yml @@ -0,0 +1,55 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/sync-status + method: GET + auth: true + docs: >- + Get sync status for the current sync and the most recently finished + sync. `last_sync_start` represents the most recent time any sync began. + `last_sync_finished` represents the most recent time any sync completed. + These timestamps may correspond to different sync instances which may + result in a sync start time being later than a separate sync completed + time. To ensure you are retrieving the latest available data reference + the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. + Possible values for `status` and `last_sync_result` are `DISABLED`, + `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more + about sync status in our [Help + Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + source: + openapi: openapi/openapi.yml + request: + name: SyncStatusListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedSyncStatusList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - model_name: File + model_id: filestorage.FileStorageFile + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/users.yml b/.mock/definition/filestorage/users.yml new file mode 100644 index 000000000..6921bd654 --- /dev/null +++ b/.mock/definition/filestorage/users.yml @@ -0,0 +1,143 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/users + method: GET + auth: true + docs: Returns a list of `User` objects. + source: + openapi: openapi/openapi.yml + request: + name: UsersListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_me: + type: optional + docs: If provided, will only return the user object for requestor. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedUserList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 83902e75-4362-4803-b76c-a7d6be292cbd + remote_id: '2039349' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig + email_address: hello@merge.dev + is_me: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /users + data: + - Varies by platform + retrieve: + path: /filestorage/v1/users/{id} + method: GET + auth: true + docs: Returns a `User` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: UsersRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.User + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 83902e75-4362-4803-b76c-a7d6be292cbd + remote_id: '2039349' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig + email_address: hello@merge.dev + is_me: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /users + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/filestorage/webhookReceivers.yml b/.mock/definition/filestorage/webhookReceivers.yml new file mode 100644 index 000000000..3b0bcace0 --- /dev/null +++ b/.mock/definition/filestorage/webhookReceivers.yml @@ -0,0 +1,61 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /filestorage/v1/webhook-receivers + method: GET + auth: true + docs: Returns a list of `WebhookReceiver` objects. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - event: event + is_active: true + key: key + create: + path: /filestorage/v1/webhook-receivers + method: POST + auth: true + docs: Creates a `WebhookReceiver` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: WebhookReceiverRequest + body: + properties: + event: + type: string + validation: + minLength: 1 + is_active: boolean + key: + type: optional + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.WebhookReceiver + status-code: 201 + examples: + - headers: {} + request: + event: event + is_active: true + response: + body: + event: event + is_active: true + key: key + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/__package__.yml b/.mock/definition/hris/__package__.yml new file mode 100644 index 000000000..3e17db3f0 --- /dev/null +++ b/.mock/definition/hris/__package__.yml @@ -0,0 +1,7691 @@ +types: + AccountDetailsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountDetails: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + integration: + type: optional + access: read-only + integration_slug: + type: optional + access: read-only + category: optional + end_user_origin_id: + type: optional + access: read-only + end_user_organization_name: + type: optional + access: read-only + end_user_email_address: + type: optional + validation: + format: email + access: read-only + status: + type: optional + access: read-only + webhook_listener_url: + type: optional + validation: + format: uri + access: read-only + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + access: read-only + account_type: + type: optional + access: read-only + completed_at: + type: optional + docs: The time at which account completes the linking flow. + source: + openapi: openapi/openapi.yml + AccountDetailsAndActionsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountDetailsAndActions: + docs: >- + # The LinkedAccount Object + + ### Description + + The `LinkedAccount` object is used to represent an end user's link with a + specific integration. + + + ### Usage Example + + View a list of your organization's `LinkedAccount` objects. + properties: + id: string + category: optional + status: AccountDetailsAndActionsStatusEnum + status_detail: optional + end_user_origin_id: optional + end_user_organization_name: string + end_user_email_address: string + subdomain: + type: optional + docs: The tenant or domain the customer has provided access to. + webhook_listener_url: string + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + integration: optional + account_type: string + completed_at: datetime + integration_specific_fields: optional> + source: + openapi: openapi/openapi.yml + AccountDetailsAndActionsIntegration: + properties: + name: string + categories: list + image: optional + square_image: optional + color: string + slug: string + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: openapi/openapi.yml + AccountDetailsAndActionsStatusEnum: + enum: + - COMPLETE + - INCOMPLETE + - RELINK_NEEDED + - IDLE + docs: |- + * `COMPLETE` - COMPLETE + * `INCOMPLETE` - INCOMPLETE + * `RELINK_NEEDED` - RELINK_NEEDED + * `IDLE` - IDLE + source: + openapi: openapi/openapi.yml + AccountIntegration: + properties: + name: + type: string + docs: Company name. + abbreviated_name: + type: optional + docs: >- + Optional. This shortened name appears in places with limited space, + usually in conjunction with the platform's logo (e.g., Merge Link + menu).

Example: Workforce Now (in lieu of ADP Workforce + Now), SuccessFactors (in lieu of SAP SuccessFactors) + categories: + type: optional> + docs: >- + Category or categories this integration belongs to. Multiple + categories should be comma separated, i.e. [ats, hris]. + access: read-only + image: + type: optional + docs: Company logo in rectangular shape. + validation: + format: uri + square_image: + type: optional + docs: Company logo in square shape. + validation: + format: uri + color: + type: optional + docs: >- + The color of this integration used for buttons and text throughout the + app and landing pages. Choose a darker, saturated color. + validation: + pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ + maxLength: 18 + slug: + type: optional + access: read-only + api_endpoints_to_documentation_urls: + type: optional> + docs: >- + Mapping of API endpoints to documentation urls for support. Example: + {'GET': [['/common-model-scopes', + 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', + 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], + 'POST': []} + webhook_setup_guide_url: + type: optional + docs: >- + Setup guide URL for third party webhook creation. Exposed in Merge + Docs. + category_beta_status: + type: optional> + docs: Category or categories this integration is in beta status for. + access: read-only + source: + openapi: openapi/openapi.yml + AccountToken: + properties: + account_token: string + integration: AccountIntegration + id: string + source: + openapi: openapi/openapi.yml + AccountTypeEnum: + enum: + - SAVINGS + - CHECKING + docs: |- + * `SAVINGS` - SAVINGS + * `CHECKING` - CHECKING + source: + openapi: openapi/openapi.yml + AdvancedMetadata: + properties: + id: + type: string + validation: + format: uuid + display_name: optional + description: optional + is_required: optional + is_custom: optional + field_choices: optional> + source: + openapi: openapi/openapi.yml + AsyncPassthroughReciept: + properties: + async_passthrough_receipt_id: + type: string + validation: + format: uuid + source: + openapi: openapi/openapi.yml + AuditLogEventRole: + discriminated: false + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by a + user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + union: + - RoleEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AuditLogEventEventType: + discriminated: false + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + union: + - EventTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AuditLogEvent: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + user_name: + type: optional + docs: The User's full name at the time of this Event occurring. + validation: + maxLength: 200 + user_email: + type: optional + docs: The User's email at the time of this Event occurring. + validation: + format: email + maxLength: 254 + role: + type: AuditLogEventRole + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by + a user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + ip_address: + type: string + validation: + maxLength: 45 + event_type: + type: AuditLogEventEventType + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - + CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - + DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + event_description: string + created_at: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + AvailableActions: + docs: >- + # The AvailableActions Object + + ### Description + + The `Activity` object is used to see all available model/operation + combinations for an integration. + + + ### Usage Example + + Fetch all the actions available for the `Zenefits` integration. + properties: + integration: AccountIntegration + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: openapi/openapi.yml + BankInfoEmployee: + discriminated: false + docs: The employee with this bank account. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + BankInfoAccountType: + discriminated: false + docs: |- + The bank account type + + * `SAVINGS` - SAVINGS + * `CHECKING` - CHECKING + union: + - AccountTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + BankInfo: + docs: >- + # The BankInfo Object + + ### Description + + The `BankInfo` object is used to represent the Bank Account information + for an Employee. + + + ### Usage Example + + Fetch from the `LIST BankInfo` endpoint and filter by `ID` to show all + bank information. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee: + type: optional + docs: The employee with this bank account. + account_number: + type: optional + docs: The account number. + validation: + maxLength: 100 + routing_number: + type: optional + docs: The routing number. + bank_name: + type: optional + docs: The bank name. + account_type: + type: optional + docs: |- + The bank account type + + * `SAVINGS` - SAVINGS + * `CHECKING` - CHECKING + remote_created_at: + type: optional + docs: When the matching bank object was created in the third party system. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + BenefitEmployee: + discriminated: false + docs: The employee on the plan. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + Benefit: + docs: >- + # The Benefit Object + + ### Description + + The `Benefit` object is used to represent a benefit that an employee has + enrolled in. + + + ### Usage Example + + Fetch from the `LIST Benefits` endpoint and filter by `ID` to show all + benefits. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee: + type: optional + docs: The employee on the plan. + provider_name: + type: optional + docs: The name of the benefit provider. + benefit_plan_type: + type: optional + docs: The type of benefit plan + availability: deprecated + employee_contribution: + type: optional + docs: The employee's contribution. + company_contribution: + type: optional + docs: The company's contribution. + start_date: + type: optional + docs: The day and time the benefit started. + end_date: + type: optional + docs: The day and time the benefit ended. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + employer_benefit: + type: optional + docs: The employer benefit plan the employee is enrolled in. + validation: + format: uuid + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + BenefitPlanTypeEnum: + enum: + - MEDICAL + - HEALTH_SAVINGS + - INSURANCE + - RETIREMENT + - OTHER + docs: |- + * `MEDICAL` - MEDICAL + * `HEALTH_SAVINGS` - HEALTH_SAVINGS + * `INSURANCE` - INSURANCE + * `RETIREMENT` - RETIREMENT + * `OTHER` - OTHER + source: + openapi: openapi/openapi.yml + CategoriesEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: openapi/openapi.yml + CategoryEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: openapi/openapi.yml + CommonModelScopeApi: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + source: + openapi: openapi/openapi.yml + CommonModelScopesBodyRequest: + properties: + model_id: + type: string + validation: + minLength: 1 + enabled_actions: list + disabled_fields: list + source: + openapi: openapi/openapi.yml + Company: + docs: >- + # The Company Object + + ### Description + + The `Company` object is used to represent a company within the HRIS / + Payroll system. + + + ### Usage Example + + Fetch from the `LIST Companies` endpoint and filter by `ID` to show all + companies. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + legal_name: + type: optional + docs: The company's legal name. + display_name: + type: optional + docs: The company's display name. + eins: + type: optional>> + docs: The company's Employer Identification Numbers. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + CountryEnum: + enum: + - AF + - AX + - AL + - DZ + - AS + - AD + - AO + - AI + - AQ + - AG + - AR + - AM + - AW + - AU + - AT + - AZ + - BS + - BH + - BD + - BB + - BY + - BE + - BZ + - BJ + - BM + - BT + - BO + - BQ + - BA + - BW + - BV + - BR + - IO + - BN + - BG + - BF + - BI + - CV + - KH + - CM + - CA + - KY + - CF + - TD + - CL + - CN + - CX + - CC + - CO + - KM + - CG + - CD + - CK + - CR + - CI + - HR + - CU + - CW + - CY + - CZ + - DK + - DJ + - DM + - DO + - EC + - EG + - SV + - GQ + - ER + - EE + - SZ + - ET + - FK + - FO + - FJ + - FI + - FR + - GF + - PF + - TF + - GA + - GM + - GE + - DE + - GH + - GI + - GR + - GL + - GD + - GP + - GU + - GT + - GG + - GN + - GW + - GY + - HT + - HM + - VA + - HN + - HK + - HU + - IS + - IN + - ID + - IR + - IQ + - IE + - IM + - IL + - IT + - JM + - JP + - JE + - JO + - KZ + - KE + - KI + - KW + - KG + - LA + - LV + - LB + - LS + - LR + - LY + - LI + - LT + - LU + - MO + - MG + - MW + - MY + - MV + - ML + - MT + - MH + - MQ + - MR + - MU + - YT + - MX + - FM + - MD + - MC + - MN + - ME + - MS + - MA + - MZ + - MM + - NA + - NR + - NP + - NL + - NC + - NZ + - NI + - NE + - NG + - NU + - NF + - KP + - MK + - MP + - 'NO' + - OM + - PK + - PW + - PS + - PA + - PG + - PY + - PE + - PH + - PN + - PL + - PT + - PR + - QA + - RE + - RO + - RU + - RW + - BL + - SH + - KN + - LC + - MF + - PM + - VC + - WS + - SM + - ST + - SA + - SN + - RS + - SC + - SL + - SG + - SX + - SK + - SI + - SB + - SO + - ZA + - GS + - KR + - SS + - ES + - LK + - SD + - SR + - SJ + - SE + - CH + - SY + - TW + - TJ + - TZ + - TH + - TL + - TG + - TK + - TO + - TT + - TN + - TR + - TM + - TC + - TV + - UG + - UA + - AE + - GB + - UM + - US + - UY + - UZ + - VU + - VE + - VN + - VG + - VI + - WF + - EH + - YE + - ZM + - ZW + docs: |- + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + source: + openapi: openapi/openapi.yml + DataPassthroughRequest: + docs: >- + # The DataPassthrough Object + + ### Description + + The `DataPassthrough` object is used to send information to an + otherwise-unsupported third-party endpoint. + + + ### Usage Example + + Create a `DataPassthrough` to get team hierarchies from your Rippling + integration. + properties: + method: MethodEnum + path: + type: string + docs: The path of the request in the third party's platform. + validation: + minLength: 1 + base_url_override: + type: optional + docs: An optional override of the third party's base url for the request. + validation: + minLength: 1 + data: + type: optional + docs: >- + The data with the request. You must include a `request_format` + parameter matching the data's format + validation: + minLength: 1 + multipart_form_data: + type: optional> + docs: >- + Pass an array of `MultipartFormField` objects in here instead of using + the `data` param if `request_format` is set to `MULTIPART`. + headers: + type: optional> + docs: >- + The headers to use for the request (Merge will handle the account's + authorization headers). `Content-Type` header is required for + passthrough. Choose content type corresponding to expected format of + receiving server. + request_format: optional + normalize_response: + type: optional + docs: >- + Optional. If true, the response will always be an object of the form + `{"type": T, "value": ...}` where `T` will be one of `string, boolean, + number, null, array, object`. + source: + openapi: openapi/openapi.yml + DebugModeLog: + properties: + log_id: string + dashboard_view: string + log_summary: DebugModelLogSummary + source: + openapi: openapi/openapi.yml + DebugModelLogSummary: + properties: + url: string + method: string + status_code: integer + source: + openapi: openapi/openapi.yml + Deduction: + docs: >- + # The Deduction Object + + ### Description + + The `Deduction` object is used to represent an array of the wages withheld + from total earnings for the purpose of paying taxes. + + + ### Usage Example + + Fetch from the `LIST Deductions` endpoint and filter by `ID` to show all + deductions. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee_payroll_run: + type: optional + validation: + format: uuid + name: + type: optional + docs: The deduction's name. + employee_deduction: + type: optional + docs: >- + The amount of money that is withheld from an employee's gross pay by + the employee. + company_deduction: + type: optional + docs: >- + The amount of money that is withheld on behalf of an employee by the + company. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + DependentRelationship: + discriminated: false + docs: |- + The dependent's relationship to the employee. + + * `CHILD` - CHILD + * `SPOUSE` - SPOUSE + * `DOMESTIC_PARTNER` - DOMESTIC_PARTNER + union: + - RelationshipEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + DependentGender: + discriminated: false + docs: |- + The dependent's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + union: + - GenderEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Dependent: + docs: >- + # The Dependent Object + + ### Description + + The `Dependent` object is used to represent a dependent (e.g. child, + spouse, domestic partner, etc) of an `Employee` + + + ### Usage Example + + Fetch from the `LIST Dependents` endpoint and filter by `ID` to show all + dependents. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + first_name: + type: optional + docs: The dependents's first name. + validation: + maxLength: 60 + middle_name: + type: optional + docs: The dependents's middle name. + validation: + maxLength: 60 + last_name: + type: optional + docs: The dependents's last name. + validation: + maxLength: 60 + relationship: + type: optional + docs: |- + The dependent's relationship to the employee. + + * `CHILD` - CHILD + * `SPOUSE` - SPOUSE + * `DOMESTIC_PARTNER` - DOMESTIC_PARTNER + employee: + type: optional + docs: The employee this person is a dependent of. + validation: + format: uuid + date_of_birth: + type: optional + docs: The dependent's date of birth. + gender: + type: optional + docs: |- + The dependent's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + phone_number: + type: optional + docs: The dependent's phone number. + validation: + maxLength: 50 + home_location: + type: optional + docs: The dependents's home address. + validation: + format: uuid + is_student: + type: optional + docs: Whether or not the dependent is a student + ssn: + type: optional + docs: The dependents's social security number. + validation: + maxLength: 50 + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + EarningType: + discriminated: false + docs: |- + The type of earning. + + * `SALARY` - SALARY + * `REIMBURSEMENT` - REIMBURSEMENT + * `OVERTIME` - OVERTIME + * `BONUS` - BONUS + union: + - EarningTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Earning: + docs: >- + # The Earning Object + + ### Description + + The `Earning` object is used to represent an array of different + compensations that an employee receives within specific wage categories. + + + ### Usage Example + + Fetch from the `LIST Earnings` endpoint and filter by `ID` to show all + earnings. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee_payroll_run: + type: optional + validation: + format: uuid + amount: + type: optional + docs: The amount earned. + type: + type: optional + docs: |- + The type of earning. + + * `SALARY` - SALARY + * `REIMBURSEMENT` - REIMBURSEMENT + * `OVERTIME` - OVERTIME + * `BONUS` - BONUS + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + EarningTypeEnum: + enum: + - SALARY + - REIMBURSEMENT + - OVERTIME + - BONUS + docs: |- + * `SALARY` - SALARY + * `REIMBURSEMENT` - REIMBURSEMENT + * `OVERTIME` - OVERTIME + * `BONUS` - BONUS + source: + openapi: openapi/openapi.yml + EmployeeCompany: + discriminated: false + docs: The ID of the employee's company. + union: + - type: string + validation: + format: uuid + - Company + source: + openapi: openapi/openapi.yml + inline: true + EmployeeGroupsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Group + source: + openapi: openapi/openapi.yml + inline: true + EmployeeEmploymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Employment + source: + openapi: openapi/openapi.yml + inline: true + EmployeeHomeLocation: + discriminated: false + docs: The employee's home address. + union: + - type: string + validation: + format: uuid + - Location + source: + openapi: openapi/openapi.yml + inline: true + EmployeeWorkLocation: + discriminated: false + docs: The employee's work address. + union: + - type: string + validation: + format: uuid + - Location + source: + openapi: openapi/openapi.yml + inline: true + EmployeeManager: + discriminated: false + docs: The employee ID of the employee's manager. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + EmployeeTeam: + discriminated: false + docs: The employee's team. + union: + - type: string + validation: + format: uuid + - Team + source: + openapi: openapi/openapi.yml + inline: true + EmployeePayGroup: + discriminated: false + docs: The employee's pay group + union: + - type: string + validation: + format: uuid + - PayGroup + source: + openapi: openapi/openapi.yml + inline: true + EmployeeGender: + discriminated: false + docs: |- + The employee's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + union: + - GenderEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EmployeeEthnicity: + discriminated: false + docs: >- + The employee's ethnicity. + + + * `AMERICAN_INDIAN_OR_ALASKA_NATIVE` - AMERICAN_INDIAN_OR_ALASKA_NATIVE + + * `ASIAN_OR_INDIAN_SUBCONTINENT` - ASIAN_OR_INDIAN_SUBCONTINENT + + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - + NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + + * `WHITE` - WHITE + + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + union: + - EthnicityEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EmployeeMaritalStatus: + discriminated: false + docs: >- + The employee's filing status as related to marital status. + + + * `SINGLE` - SINGLE + + * `MARRIED_FILING_JOINTLY` - MARRIED_FILING_JOINTLY + + * `MARRIED_FILING_SEPARATELY` - MARRIED_FILING_SEPARATELY + + * `HEAD_OF_HOUSEHOLD` - HEAD_OF_HOUSEHOLD + + * `QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD` - + QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD + union: + - MaritalStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EmployeeEmploymentStatus: + discriminated: false + docs: |- + The employment status of the employee. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + union: + - EmploymentStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Employee: + docs: >- + # The Employee Object + + ### Description + + The `Employee` object is used to represent any person who has been + employed by a company. By default, it returns all employees. To filter for + only active employees, set the `employment_status` query parameter to + `ACTIVE`. + + + ### Usage Example + + Fetch from the `LIST Employee` endpoint and filter by `ID` to show all + employees. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee_number: + type: optional + docs: >- + The employee's number that appears in the third-party integration's + UI. + company: + type: optional + docs: The ID of the employee's company. + first_name: + type: optional + docs: The employee's first name. + last_name: + type: optional + docs: The employee's last name. + preferred_name: + type: optional + docs: The employee's preferred first name. + display_full_name: + type: optional + docs: >- + The employee's full name, to use for display purposes. If a preferred + first name is available, the full name will include the preferred + first name. + username: + type: optional + docs: The employee's username that appears in the remote UI. + groups: optional>> + work_email: + type: optional + docs: The employee's work email. + validation: + format: email + maxLength: 254 + personal_email: + type: optional + docs: The employee's personal email. + validation: + format: email + maxLength: 254 + mobile_phone_number: + type: optional + docs: The employee's mobile phone number. + employments: + type: optional>> + docs: Array of `Employment` IDs for this Employee. + home_location: + type: optional + docs: The employee's home address. + work_location: + type: optional + docs: The employee's work address. + manager: + type: optional + docs: The employee ID of the employee's manager. + team: + type: optional + docs: The employee's team. + availability: deprecated + pay_group: + type: optional + docs: The employee's pay group + ssn: + type: optional + docs: The employee's social security number. + validation: + maxLength: 100 + gender: + type: optional + docs: |- + The employee's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + ethnicity: + type: optional + docs: >- + The employee's ethnicity. + + + * `AMERICAN_INDIAN_OR_ALASKA_NATIVE` - + AMERICAN_INDIAN_OR_ALASKA_NATIVE + + * `ASIAN_OR_INDIAN_SUBCONTINENT` - ASIAN_OR_INDIAN_SUBCONTINENT + + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - + NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + + * `WHITE` - WHITE + + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + marital_status: + type: optional + docs: >- + The employee's filing status as related to marital status. + + + * `SINGLE` - SINGLE + + * `MARRIED_FILING_JOINTLY` - MARRIED_FILING_JOINTLY + + * `MARRIED_FILING_SEPARATELY` - MARRIED_FILING_SEPARATELY + + * `HEAD_OF_HOUSEHOLD` - HEAD_OF_HOUSEHOLD + + * `QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD` - + QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD + date_of_birth: + type: optional + docs: The employee's date of birth. + hire_date: + type: optional + docs: >- + The date that the employee was hired, usually the day that an offer + letter is signed. If an employee has multiple hire dates from previous + employments, this represents the most recent hire date. Note: If + you're looking for the employee's start date, refer to the start_date + field. + availability: deprecated + start_date: + type: optional + docs: >- + The date that the employee started working. If an employee was + rehired, the most recent start date will be returned. + remote_created_at: + type: optional + docs: When the third party's employee was created. + employment_status: + type: optional + docs: |- + The employment status of the employee. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + termination_date: + type: optional + docs: The employee's termination date. + avatar: + type: optional + docs: The URL of the employee's avatar image. + validation: + format: uri + maxLength: 2000 + custom_fields: + type: optional> + docs: Custom fields configured for a given model. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + EmployeePayrollRunEmployee: + discriminated: false + docs: The employee whose payroll is being run. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + EmployeePayrollRunPayrollRun: + discriminated: false + docs: The payroll being run. + union: + - type: string + validation: + format: uuid + - PayrollRun + source: + openapi: openapi/openapi.yml + inline: true + EmployeePayrollRun: + docs: >- + # The EmployeePayrollRun Object + + ### Description + + The `EmployeePayrollRun` object is used to represent an employee's pay + statement for a specific payroll run. + + + ### Usage Example + + Fetch from the `LIST EmployeePayrollRun` endpoint and filter by `ID` to + show all employee payroll runs. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee: + type: optional + docs: The employee whose payroll is being run. + payroll_run: + type: optional + docs: The payroll being run. + gross_pay: + type: optional + docs: >- + The total earnings throughout a given period for an employee before + any deductions are made. + net_pay: + type: optional + docs: >- + The take-home pay throughout a given period for an employee after + deductions are made. + start_date: + type: optional + docs: The day and time the payroll run started. + end_date: + type: optional + docs: The day and time the payroll run ended. + check_date: + type: optional + docs: The day and time the payroll run was checked. + earnings: + type: optional> + access: read-only + deductions: + type: optional> + access: read-only + taxes: + type: optional> + access: read-only + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + EmployeeRequestCompany: + discriminated: false + docs: The ID of the employee's company. + union: + - type: string + validation: + format: uuid + - Company + source: + openapi: openapi/openapi.yml + inline: true + EmployeeRequestGroupsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Group + source: + openapi: openapi/openapi.yml + inline: true + EmployeeRequestEmploymentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Employment + source: + openapi: openapi/openapi.yml + inline: true + EmployeeRequestHomeLocation: + discriminated: false + docs: The employee's home address. + union: + - type: string + validation: + format: uuid + - Location + source: + openapi: openapi/openapi.yml + inline: true + EmployeeRequestWorkLocation: + discriminated: false + docs: The employee's work address. + union: + - type: string + validation: + format: uuid + - Location + source: + openapi: openapi/openapi.yml + inline: true + EmployeeRequestManager: + discriminated: false + docs: The employee ID of the employee's manager. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + EmployeeRequestTeam: + discriminated: false + docs: The employee's team. + union: + - type: string + validation: + format: uuid + - Team + source: + openapi: openapi/openapi.yml + inline: true + EmployeeRequestPayGroup: + discriminated: false + docs: The employee's pay group + union: + - type: string + validation: + format: uuid + - PayGroup + source: + openapi: openapi/openapi.yml + inline: true + EmployeeRequestGender: + discriminated: false + docs: |- + The employee's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + union: + - GenderEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EmployeeRequestEthnicity: + discriminated: false + docs: >- + The employee's ethnicity. + + + * `AMERICAN_INDIAN_OR_ALASKA_NATIVE` - AMERICAN_INDIAN_OR_ALASKA_NATIVE + + * `ASIAN_OR_INDIAN_SUBCONTINENT` - ASIAN_OR_INDIAN_SUBCONTINENT + + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - + NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + + * `WHITE` - WHITE + + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + union: + - EthnicityEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EmployeeRequestMaritalStatus: + discriminated: false + docs: >- + The employee's filing status as related to marital status. + + + * `SINGLE` - SINGLE + + * `MARRIED_FILING_JOINTLY` - MARRIED_FILING_JOINTLY + + * `MARRIED_FILING_SEPARATELY` - MARRIED_FILING_SEPARATELY + + * `HEAD_OF_HOUSEHOLD` - HEAD_OF_HOUSEHOLD + + * `QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD` - + QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD + union: + - MaritalStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EmployeeRequestEmploymentStatus: + discriminated: false + docs: |- + The employment status of the employee. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + union: + - EmploymentStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EmployeeRequest: + docs: >- + # The Employee Object + + ### Description + + The `Employee` object is used to represent any person who has been + employed by a company. By default, it returns all employees. To filter for + only active employees, set the `employment_status` query parameter to + `ACTIVE`. + + + ### Usage Example + + Fetch from the `LIST Employee` endpoint and filter by `ID` to show all + employees. + properties: + employee_number: + type: optional + docs: >- + The employee's number that appears in the third-party integration's + UI. + company: + type: optional + docs: The ID of the employee's company. + first_name: + type: optional + docs: The employee's first name. + last_name: + type: optional + docs: The employee's last name. + preferred_name: + type: optional + docs: The employee's preferred first name. + display_full_name: + type: optional + docs: >- + The employee's full name, to use for display purposes. If a preferred + first name is available, the full name will include the preferred + first name. + username: + type: optional + docs: The employee's username that appears in the remote UI. + groups: optional>> + work_email: + type: optional + docs: The employee's work email. + validation: + format: email + maxLength: 254 + personal_email: + type: optional + docs: The employee's personal email. + validation: + format: email + maxLength: 254 + mobile_phone_number: + type: optional + docs: The employee's mobile phone number. + employments: + type: optional>> + docs: Array of `Employment` IDs for this Employee. + home_location: + type: optional + docs: The employee's home address. + work_location: + type: optional + docs: The employee's work address. + manager: + type: optional + docs: The employee ID of the employee's manager. + team: + type: optional + docs: The employee's team. + availability: deprecated + pay_group: + type: optional + docs: The employee's pay group + ssn: + type: optional + docs: The employee's social security number. + validation: + maxLength: 100 + gender: + type: optional + docs: |- + The employee's gender. + + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + ethnicity: + type: optional + docs: >- + The employee's ethnicity. + + + * `AMERICAN_INDIAN_OR_ALASKA_NATIVE` - + AMERICAN_INDIAN_OR_ALASKA_NATIVE + + * `ASIAN_OR_INDIAN_SUBCONTINENT` - ASIAN_OR_INDIAN_SUBCONTINENT + + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - + NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + + * `WHITE` - WHITE + + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + marital_status: + type: optional + docs: >- + The employee's filing status as related to marital status. + + + * `SINGLE` - SINGLE + + * `MARRIED_FILING_JOINTLY` - MARRIED_FILING_JOINTLY + + * `MARRIED_FILING_SEPARATELY` - MARRIED_FILING_SEPARATELY + + * `HEAD_OF_HOUSEHOLD` - HEAD_OF_HOUSEHOLD + + * `QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD` - + QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD + date_of_birth: + type: optional + docs: The employee's date of birth. + hire_date: + type: optional + docs: >- + The date that the employee was hired, usually the day that an offer + letter is signed. If an employee has multiple hire dates from previous + employments, this represents the most recent hire date. Note: If + you're looking for the employee's start date, refer to the start_date + field. + availability: deprecated + start_date: + type: optional + docs: >- + The date that the employee started working. If an employee was + rehired, the most recent start date will be returned. + employment_status: + type: optional + docs: |- + The employment status of the employee. + + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + termination_date: + type: optional + docs: The employee's termination date. + avatar: + type: optional + docs: The URL of the employee's avatar image. + validation: + format: uri + maxLength: 2000 + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + EmployeeResponse: + properties: + model: Employee + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + EmployerBenefitBenefitPlanType: + discriminated: false + docs: |- + The type of benefit plan. + + * `MEDICAL` - MEDICAL + * `HEALTH_SAVINGS` - HEALTH_SAVINGS + * `INSURANCE` - INSURANCE + * `RETIREMENT` - RETIREMENT + * `OTHER` - OTHER + union: + - BenefitPlanTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EmployerBenefit: + docs: >- + # The EmployerBenefit Object + + ### Description + + The `Employer Benefit` object is used to represent a benefit plan offered + by a company. + + + ### Usage Example + + Fetch from the `LIST EmployerBenefits` endpoint and filter by `ID` to show + all EmployerBenefits. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + benefit_plan_type: + type: optional + docs: |- + The type of benefit plan. + + * `MEDICAL` - MEDICAL + * `HEALTH_SAVINGS` - HEALTH_SAVINGS + * `INSURANCE` - INSURANCE + * `RETIREMENT` - RETIREMENT + * `OTHER` - OTHER + name: + type: optional + docs: The employer benefit's name - typically the carrier or network name. + validation: + maxLength: 200 + description: + type: optional + docs: The employer benefit's description. + validation: + maxLength: 2000 + deduction_code: + type: optional + docs: The employer benefit's deduction code. + validation: + maxLength: 60 + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + EmploymentEmployee: + discriminated: false + docs: The employee holding this position. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + EmploymentPayPeriod: + discriminated: false + docs: |- + The time period this pay rate encompasses. + + * `HOUR` - HOUR + * `DAY` - DAY + * `WEEK` - WEEK + * `EVERY_TWO_WEEKS` - EVERY_TWO_WEEKS + * `SEMIMONTHLY` - SEMIMONTHLY + * `MONTH` - MONTH + * `QUARTER` - QUARTER + * `EVERY_SIX_MONTHS` - EVERY_SIX_MONTHS + * `YEAR` - YEAR + union: + - PayPeriodEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EmploymentPayFrequency: + discriminated: false + docs: |- + The position's pay frequency. + + * `WEEKLY` - WEEKLY + * `BIWEEKLY` - BIWEEKLY + * `MONTHLY` - MONTHLY + * `QUARTERLY` - QUARTERLY + * `SEMIANNUALLY` - SEMIANNUALLY + * `ANNUALLY` - ANNUALLY + * `THIRTEEN-MONTHLY` - THIRTEEN-MONTHLY + * `PRO_RATA` - PRO_RATA + * `SEMIMONTHLY` - SEMIMONTHLY + union: + - PayFrequencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EmploymentPayCurrency: + discriminated: false + docs: >- + The position's currency code. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + union: + - PayCurrencyEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EmploymentPayGroup: + discriminated: false + docs: The employment's pay group + union: + - type: string + validation: + format: uuid + - PayGroup + source: + openapi: openapi/openapi.yml + inline: true + EmploymentFlsaStatus: + discriminated: false + docs: |- + The position's FLSA status. + + * `EXEMPT` - EXEMPT + * `SALARIED_NONEXEMPT` - SALARIED_NONEXEMPT + * `NONEXEMPT` - NONEXEMPT + * `OWNER` - OWNER + union: + - FlsaStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + EmploymentEmploymentType: + discriminated: false + docs: |- + The position's type of employment. + + * `FULL_TIME` - FULL_TIME + * `PART_TIME` - PART_TIME + * `INTERN` - INTERN + * `CONTRACTOR` - CONTRACTOR + * `FREELANCE` - FREELANCE + union: + - EmploymentTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Employment: + docs: >- + # The Employment Object + + ### Description + + The `Employment` object is used to represent a job position at a company. + + + If an integration supports historical tracking of employments, it will be + reflected in the data. If not, a new `Employment` object will be created + whenever there is a change in job title or pay. The `effective_date` field + should be used to order `Employment` objects, with the most recent date + corresponding to the latest employment record for an employee. + + + ### Usage Example + + Fetch from the `LIST Employments` endpoint and filter by `ID` to show all + employees. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee: + type: optional + docs: The employee holding this position. + job_title: + type: optional + docs: The position's title. + pay_rate: + type: optional + docs: The position's pay rate. + pay_period: + type: optional + docs: |- + The time period this pay rate encompasses. + + * `HOUR` - HOUR + * `DAY` - DAY + * `WEEK` - WEEK + * `EVERY_TWO_WEEKS` - EVERY_TWO_WEEKS + * `SEMIMONTHLY` - SEMIMONTHLY + * `MONTH` - MONTH + * `QUARTER` - QUARTER + * `EVERY_SIX_MONTHS` - EVERY_SIX_MONTHS + * `YEAR` - YEAR + pay_frequency: + type: optional + docs: |- + The position's pay frequency. + + * `WEEKLY` - WEEKLY + * `BIWEEKLY` - BIWEEKLY + * `MONTHLY` - MONTHLY + * `QUARTERLY` - QUARTERLY + * `SEMIANNUALLY` - SEMIANNUALLY + * `ANNUALLY` - ANNUALLY + * `THIRTEEN-MONTHLY` - THIRTEEN-MONTHLY + * `PRO_RATA` - PRO_RATA + * `SEMIMONTHLY` - SEMIMONTHLY + pay_currency: + type: optional + docs: >- + The position's currency code. + + + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + pay_group: + type: optional + docs: The employment's pay group + flsa_status: + type: optional + docs: |- + The position's FLSA status. + + * `EXEMPT` - EXEMPT + * `SALARIED_NONEXEMPT` - SALARIED_NONEXEMPT + * `NONEXEMPT` - NONEXEMPT + * `OWNER` - OWNER + effective_date: + type: optional + docs: The position's effective date. + employment_type: + type: optional + docs: |- + The position's type of employment. + + * `FULL_TIME` - FULL_TIME + * `PART_TIME` - PART_TIME + * `INTERN` - INTERN + * `CONTRACTOR` - CONTRACTOR + * `FREELANCE` - FREELANCE + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + EmploymentStatusEnum: + enum: + - ACTIVE + - PENDING + - INACTIVE + docs: |- + * `ACTIVE` - ACTIVE + * `PENDING` - PENDING + * `INACTIVE` - INACTIVE + source: + openapi: openapi/openapi.yml + EmploymentTypeEnum: + enum: + - FULL_TIME + - PART_TIME + - INTERN + - CONTRACTOR + - FREELANCE + docs: |- + * `FULL_TIME` - FULL_TIME + * `PART_TIME` - PART_TIME + * `INTERN` - INTERN + * `CONTRACTOR` - CONTRACTOR + * `FREELANCE` - FREELANCE + source: + openapi: openapi/openapi.yml + EnabledActionsEnum: + enum: + - READ + - WRITE + docs: |- + * `READ` - READ + * `WRITE` - WRITE + source: + openapi: openapi/openapi.yml + EncodingEnum: + enum: + - RAW + - BASE64 + - GZIP_BASE64 + docs: |- + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + source: + openapi: openapi/openapi.yml + ErrorValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: openapi/openapi.yml + EthnicityEnum: + enum: + - AMERICAN_INDIAN_OR_ALASKA_NATIVE + - ASIAN_OR_INDIAN_SUBCONTINENT + - BLACK_OR_AFRICAN_AMERICAN + - HISPANIC_OR_LATINO + - NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + - TWO_OR_MORE_RACES + - WHITE + - PREFER_NOT_TO_DISCLOSE + docs: >- + * `AMERICAN_INDIAN_OR_ALASKA_NATIVE` - AMERICAN_INDIAN_OR_ALASKA_NATIVE + + * `ASIAN_OR_INDIAN_SUBCONTINENT` - ASIAN_OR_INDIAN_SUBCONTINENT + + * `BLACK_OR_AFRICAN_AMERICAN` - BLACK_OR_AFRICAN_AMERICAN + + * `HISPANIC_OR_LATINO` - HISPANIC_OR_LATINO + + * `NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER` - + NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER + + * `TWO_OR_MORE_RACES` - TWO_OR_MORE_RACES + + * `WHITE` - WHITE + + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + source: + openapi: openapi/openapi.yml + EventTypeEnum: + enum: + - CREATED_REMOTE_PRODUCTION_API_KEY + - DELETED_REMOTE_PRODUCTION_API_KEY + - CREATED_TEST_API_KEY + - DELETED_TEST_API_KEY + - REGENERATED_PRODUCTION_API_KEY + - REGENERATED_WEBHOOK_SIGNATURE + - INVITED_USER + - TWO_FACTOR_AUTH_ENABLED + - TWO_FACTOR_AUTH_DISABLED + - DELETED_LINKED_ACCOUNT + - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + - CREATED_DESTINATION + - DELETED_DESTINATION + - CHANGED_DESTINATION + - CHANGED_SCOPES + - CHANGED_PERSONAL_INFORMATION + - CHANGED_ORGANIZATION_SETTINGS + - ENABLED_INTEGRATION + - DISABLED_INTEGRATION + - ENABLED_CATEGORY + - DISABLED_CATEGORY + - CHANGED_PASSWORD + - RESET_PASSWORD + - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - FORCED_LINKED_ACCOUNT_RESYNC + - MUTED_ISSUE + - GENERATED_MAGIC_LINK + - ENABLED_MERGE_WEBHOOK + - DISABLED_MERGE_WEBHOOK + - MERGE_WEBHOOK_TARGET_CHANGED + - END_USER_CREDENTIALS_ACCESSED + docs: >- + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + source: + openapi: openapi/openapi.yml + ExternalTargetFieldApi: + properties: + name: + type: optional + access: read-only + description: + type: optional + access: read-only + is_mapped: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + ExternalTargetFieldApiResponse: + properties: + Benefit: optional> + EmployerBenefit: optional> + Company: optional> + EmployeePayrollRun: optional> + Employee: optional> + Employment: optional> + Location: optional> + PayrollRun: optional> + Team: optional> + TimeOff: optional> + TimeOffBalance: optional> + BankInfo: optional> + PayGroup: optional> + Group: optional> + Dependent: optional> + TimesheetEntry: optional> + source: + openapi: openapi/openapi.yml + FieldMappingApiInstanceTargetField: + properties: + name: string + description: string + is_organization_wide: boolean + source: + openapi: openapi/openapi.yml + inline: true + FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo: + properties: + method: optional + url_path: optional + field_traversal_path: optional> + source: + openapi: openapi/openapi.yml + inline: true + FieldMappingApiInstanceRemoteField: + properties: + remote_key_name: optional + schema: optional> + remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo + source: + openapi: openapi/openapi.yml + inline: true + FieldMappingApiInstance: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + is_integration_wide: + type: optional + access: read-only + target_field: + type: optional + access: read-only + remote_field: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + FieldMappingApiInstanceResponse: + properties: + Benefit: optional> + EmployerBenefit: optional> + Company: optional> + EmployeePayrollRun: optional> + Employee: optional> + Employment: optional> + Location: optional> + PayrollRun: optional> + Team: optional> + TimeOff: optional> + TimeOffBalance: optional> + BankInfo: optional> + PayGroup: optional> + Group: optional> + Dependent: optional> + TimesheetEntry: optional> + source: + openapi: openapi/openapi.yml + FieldMappingInstanceResponse: + properties: + model: FieldMappingApiInstance + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + FieldPermissionDeserializer: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: openapi/openapi.yml + FieldPermissionDeserializerRequest: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: openapi/openapi.yml + FlsaStatusEnum: + enum: + - EXEMPT + - SALARIED_NONEXEMPT + - NONEXEMPT + - OWNER + docs: |- + * `EXEMPT` - EXEMPT + * `SALARIED_NONEXEMPT` - SALARIED_NONEXEMPT + * `NONEXEMPT` - NONEXEMPT + * `OWNER` - OWNER + source: + openapi: openapi/openapi.yml + GenderEnum: + enum: + - MALE + - FEMALE + - value: NON-BINARY + name: NonBinary + - OTHER + - PREFER_NOT_TO_DISCLOSE + docs: |- + * `MALE` - MALE + * `FEMALE` - FEMALE + * `NON-BINARY` - NON-BINARY + * `OTHER` - OTHER + * `PREFER_NOT_TO_DISCLOSE` - PREFER_NOT_TO_DISCLOSE + source: + openapi: openapi/openapi.yml + GroupType: + discriminated: false + docs: |- + The Group type returned directly from the third-party. + + * `TEAM` - TEAM + * `DEPARTMENT` - DEPARTMENT + * `COST_CENTER` - COST_CENTER + * `BUSINESS_UNIT` - BUSINESS_UNIT + * `GROUP` - GROUP + union: + - GroupTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Group: + docs: >- + # The Group Object + + ### Description + + The `Group` object is used to represent any subset of employees across, + for example, `DEPARTMENT` or `TEAM`. Employees can be in multiple Groups. + + + ### Usage Example + + Fetch from the `LIST Employee` endpoint and expand groups to view an + employee's groups. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + parent_group: + type: optional + docs: The parent group for this group. + validation: + format: uuid + name: + type: optional + docs: The group name. + type: + type: optional + docs: |- + The Group type returned directly from the third-party. + + * `TEAM` - TEAM + * `DEPARTMENT` - DEPARTMENT + * `COST_CENTER` - COST_CENTER + * `BUSINESS_UNIT` - BUSINESS_UNIT + * `GROUP` - GROUP + is_commonly_used_as_team: + type: optional + docs: >- + Indicates whether the Group refers to a team in the third party + platform. Note that this is an opinionated view based on how Merge + observes most organizations representing teams in each third party + platform. If your customer uses a platform different from most, there + is a chance this will not be correct. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + GroupTypeEnum: + enum: + - TEAM + - DEPARTMENT + - COST_CENTER + - BUSINESS_UNIT + - GROUP + docs: |- + * `TEAM` - TEAM + * `DEPARTMENT` - DEPARTMENT + * `COST_CENTER` - COST_CENTER + * `BUSINESS_UNIT` - BUSINESS_UNIT + * `GROUP` - GROUP + source: + openapi: openapi/openapi.yml + IndividualCommonModelScopeDeserializer: + properties: + model_name: string + model_permissions: optional> + field_permissions: optional + source: + openapi: openapi/openapi.yml + IndividualCommonModelScopeDeserializerRequest: + properties: + model_name: + type: string + validation: + minLength: 1 + model_permissions: optional> + field_permissions: optional + source: + openapi: openapi/openapi.yml + IssueStatus: + discriminated: false + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + union: + - IssueStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Issue: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + error_description: string + end_user: + type: optional> + access: read-only + first_incident_time: optional + last_incident_time: optional + is_muted: + type: optional + access: read-only + error_details: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + IssueStatusEnum: + enum: + - ONGOING + - RESOLVED + docs: |- + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + source: + openapi: openapi/openapi.yml + LanguageEnum: + enum: + - en + - de + docs: |- + * `en` - en + * `de` - de + source: + openapi: openapi/openapi.yml + LastSyncResultEnum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: openapi/openapi.yml + LinkToken: + properties: + link_token: string + integration_name: optional + magic_link_url: optional + source: + openapi: openapi/openapi.yml + LinkedAccountStatus: + properties: + linked_account_status: string + can_make_request: boolean + source: + openapi: openapi/openapi.yml + LocationCountry: + discriminated: false + docs: |- + The location's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + union: + - CountryEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + LocationLocationType: + discriminated: false + docs: |- + The location's type. Can be either WORK or HOME + + * `HOME` - HOME + * `WORK` - WORK + union: + - LocationTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Location: + docs: >- + # The Location Object + + ### Description + + The `Location` object is used to represent an address that can be + associated with an employee. + + + ### Usage Example + + Fetch from the `LIST Locations` endpoint and filter by `ID` to show all + office locations. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The location's name. + phone_number: + type: optional + docs: The location's phone number. + street_1: + type: optional + docs: Line 1 of the location's street address. + street_2: + type: optional + docs: Line 2 of the location's street address. + city: + type: optional + docs: The location's city. + state: + type: optional + docs: The location's state. Represents a region if outside of the US. + zip_code: + type: optional + docs: The location's zip code or postal code. + country: + type: optional + docs: |- + The location's country. + + * `AF` - Afghanistan + * `AX` - Åland Islands + * `AL` - Albania + * `DZ` - Algeria + * `AS` - American Samoa + * `AD` - Andorra + * `AO` - Angola + * `AI` - Anguilla + * `AQ` - Antarctica + * `AG` - Antigua and Barbuda + * `AR` - Argentina + * `AM` - Armenia + * `AW` - Aruba + * `AU` - Australia + * `AT` - Austria + * `AZ` - Azerbaijan + * `BS` - Bahamas + * `BH` - Bahrain + * `BD` - Bangladesh + * `BB` - Barbados + * `BY` - Belarus + * `BE` - Belgium + * `BZ` - Belize + * `BJ` - Benin + * `BM` - Bermuda + * `BT` - Bhutan + * `BO` - Bolivia + * `BQ` - Bonaire, Sint Eustatius and Saba + * `BA` - Bosnia and Herzegovina + * `BW` - Botswana + * `BV` - Bouvet Island + * `BR` - Brazil + * `IO` - British Indian Ocean Territory + * `BN` - Brunei + * `BG` - Bulgaria + * `BF` - Burkina Faso + * `BI` - Burundi + * `CV` - Cabo Verde + * `KH` - Cambodia + * `CM` - Cameroon + * `CA` - Canada + * `KY` - Cayman Islands + * `CF` - Central African Republic + * `TD` - Chad + * `CL` - Chile + * `CN` - China + * `CX` - Christmas Island + * `CC` - Cocos (Keeling) Islands + * `CO` - Colombia + * `KM` - Comoros + * `CG` - Congo + * `CD` - Congo (the Democratic Republic of the) + * `CK` - Cook Islands + * `CR` - Costa Rica + * `CI` - Côte d'Ivoire + * `HR` - Croatia + * `CU` - Cuba + * `CW` - Curaçao + * `CY` - Cyprus + * `CZ` - Czechia + * `DK` - Denmark + * `DJ` - Djibouti + * `DM` - Dominica + * `DO` - Dominican Republic + * `EC` - Ecuador + * `EG` - Egypt + * `SV` - El Salvador + * `GQ` - Equatorial Guinea + * `ER` - Eritrea + * `EE` - Estonia + * `SZ` - Eswatini + * `ET` - Ethiopia + * `FK` - Falkland Islands (Malvinas) + * `FO` - Faroe Islands + * `FJ` - Fiji + * `FI` - Finland + * `FR` - France + * `GF` - French Guiana + * `PF` - French Polynesia + * `TF` - French Southern Territories + * `GA` - Gabon + * `GM` - Gambia + * `GE` - Georgia + * `DE` - Germany + * `GH` - Ghana + * `GI` - Gibraltar + * `GR` - Greece + * `GL` - Greenland + * `GD` - Grenada + * `GP` - Guadeloupe + * `GU` - Guam + * `GT` - Guatemala + * `GG` - Guernsey + * `GN` - Guinea + * `GW` - Guinea-Bissau + * `GY` - Guyana + * `HT` - Haiti + * `HM` - Heard Island and McDonald Islands + * `VA` - Holy See + * `HN` - Honduras + * `HK` - Hong Kong + * `HU` - Hungary + * `IS` - Iceland + * `IN` - India + * `ID` - Indonesia + * `IR` - Iran + * `IQ` - Iraq + * `IE` - Ireland + * `IM` - Isle of Man + * `IL` - Israel + * `IT` - Italy + * `JM` - Jamaica + * `JP` - Japan + * `JE` - Jersey + * `JO` - Jordan + * `KZ` - Kazakhstan + * `KE` - Kenya + * `KI` - Kiribati + * `KW` - Kuwait + * `KG` - Kyrgyzstan + * `LA` - Laos + * `LV` - Latvia + * `LB` - Lebanon + * `LS` - Lesotho + * `LR` - Liberia + * `LY` - Libya + * `LI` - Liechtenstein + * `LT` - Lithuania + * `LU` - Luxembourg + * `MO` - Macao + * `MG` - Madagascar + * `MW` - Malawi + * `MY` - Malaysia + * `MV` - Maldives + * `ML` - Mali + * `MT` - Malta + * `MH` - Marshall Islands + * `MQ` - Martinique + * `MR` - Mauritania + * `MU` - Mauritius + * `YT` - Mayotte + * `MX` - Mexico + * `FM` - Micronesia (Federated States of) + * `MD` - Moldova + * `MC` - Monaco + * `MN` - Mongolia + * `ME` - Montenegro + * `MS` - Montserrat + * `MA` - Morocco + * `MZ` - Mozambique + * `MM` - Myanmar + * `NA` - Namibia + * `NR` - Nauru + * `NP` - Nepal + * `NL` - Netherlands + * `NC` - New Caledonia + * `NZ` - New Zealand + * `NI` - Nicaragua + * `NE` - Niger + * `NG` - Nigeria + * `NU` - Niue + * `NF` - Norfolk Island + * `KP` - North Korea + * `MK` - North Macedonia + * `MP` - Northern Mariana Islands + * `NO` - Norway + * `OM` - Oman + * `PK` - Pakistan + * `PW` - Palau + * `PS` - Palestine, State of + * `PA` - Panama + * `PG` - Papua New Guinea + * `PY` - Paraguay + * `PE` - Peru + * `PH` - Philippines + * `PN` - Pitcairn + * `PL` - Poland + * `PT` - Portugal + * `PR` - Puerto Rico + * `QA` - Qatar + * `RE` - Réunion + * `RO` - Romania + * `RU` - Russia + * `RW` - Rwanda + * `BL` - Saint Barthélemy + * `SH` - Saint Helena, Ascension and Tristan da Cunha + * `KN` - Saint Kitts and Nevis + * `LC` - Saint Lucia + * `MF` - Saint Martin (French part) + * `PM` - Saint Pierre and Miquelon + * `VC` - Saint Vincent and the Grenadines + * `WS` - Samoa + * `SM` - San Marino + * `ST` - Sao Tome and Principe + * `SA` - Saudi Arabia + * `SN` - Senegal + * `RS` - Serbia + * `SC` - Seychelles + * `SL` - Sierra Leone + * `SG` - Singapore + * `SX` - Sint Maarten (Dutch part) + * `SK` - Slovakia + * `SI` - Slovenia + * `SB` - Solomon Islands + * `SO` - Somalia + * `ZA` - South Africa + * `GS` - South Georgia and the South Sandwich Islands + * `KR` - South Korea + * `SS` - South Sudan + * `ES` - Spain + * `LK` - Sri Lanka + * `SD` - Sudan + * `SR` - Suriname + * `SJ` - Svalbard and Jan Mayen + * `SE` - Sweden + * `CH` - Switzerland + * `SY` - Syria + * `TW` - Taiwan + * `TJ` - Tajikistan + * `TZ` - Tanzania + * `TH` - Thailand + * `TL` - Timor-Leste + * `TG` - Togo + * `TK` - Tokelau + * `TO` - Tonga + * `TT` - Trinidad and Tobago + * `TN` - Tunisia + * `TR` - Turkey + * `TM` - Turkmenistan + * `TC` - Turks and Caicos Islands + * `TV` - Tuvalu + * `UG` - Uganda + * `UA` - Ukraine + * `AE` - United Arab Emirates + * `GB` - United Kingdom + * `UM` - United States Minor Outlying Islands + * `US` - United States of America + * `UY` - Uruguay + * `UZ` - Uzbekistan + * `VU` - Vanuatu + * `VE` - Venezuela + * `VN` - Vietnam + * `VG` - Virgin Islands (British) + * `VI` - Virgin Islands (U.S.) + * `WF` - Wallis and Futuna + * `EH` - Western Sahara + * `YE` - Yemen + * `ZM` - Zambia + * `ZW` - Zimbabwe + location_type: + type: optional + docs: |- + The location's type. Can be either WORK or HOME + + * `HOME` - HOME + * `WORK` - WORK + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + LocationTypeEnum: + enum: + - HOME + - WORK + docs: |- + * `HOME` - HOME + * `WORK` - WORK + source: + openapi: openapi/openapi.yml + MaritalStatusEnum: + enum: + - SINGLE + - MARRIED_FILING_JOINTLY + - MARRIED_FILING_SEPARATELY + - HEAD_OF_HOUSEHOLD + - QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD + docs: >- + * `SINGLE` - SINGLE + + * `MARRIED_FILING_JOINTLY` - MARRIED_FILING_JOINTLY + + * `MARRIED_FILING_SEPARATELY` - MARRIED_FILING_SEPARATELY + + * `HEAD_OF_HOUSEHOLD` - HEAD_OF_HOUSEHOLD + + * `QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD` - + QUALIFYING_WIDOW_OR_WIDOWER_WITH_DEPENDENT_CHILD + source: + openapi: openapi/openapi.yml + MetaResponse: + properties: + request_schema: map + remote_field_classes: optional> + status: optional + has_conditional_params: boolean + has_required_linked_account_params: boolean + source: + openapi: openapi/openapi.yml + MethodEnum: + enum: + - GET + - OPTIONS + - HEAD + - POST + - PUT + - PATCH + - DELETE + docs: |- + * `GET` - GET + * `OPTIONS` - OPTIONS + * `HEAD` - HEAD + * `POST` - POST + * `PUT` - PUT + * `PATCH` - PATCH + * `DELETE` - DELETE + source: + openapi: openapi/openapi.yml + ModelOperation: + docs: >- + # The ModelOperation Object + + ### Description + + The `ModelOperation` object is used to represent the operations that are + currently supported for a given model. + + + ### Usage Example + + View what operations are supported for the `Candidate` endpoint. + properties: + model_name: string + available_operations: list + required_post_parameters: list + supported_fields: list + source: + openapi: openapi/openapi.yml + ModelPermissionDeserializer: + properties: + is_enabled: optional + source: + openapi: openapi/openapi.yml + ModelPermissionDeserializerRequest: + properties: + is_enabled: optional + source: + openapi: openapi/openapi.yml + MultipartFormFieldRequestEncoding: + discriminated: false + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + union: + - EncodingEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + MultipartFormFieldRequest: + docs: >- + # The MultipartFormField Object + + ### Description + + The `MultipartFormField` object is used to represent fields in an HTTP + request using `multipart/form-data`. + + + ### Usage Example + + Create a `MultipartFormField` to define a multipart form entry. + properties: + name: + type: string + docs: The name of the form field + validation: + minLength: 1 + data: + type: string + docs: The data for the form field. + validation: + minLength: 1 + encoding: + type: optional + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + file_name: + type: optional + docs: The file name of the form field, if the field is for a file. + validation: + minLength: 1 + content_type: + type: optional + docs: The MIME type of the file, if the field is for a file. + validation: + minLength: 1 + source: + openapi: openapi/openapi.yml + PaginatedAccountDetailsAndActionsList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedAuditLogEventList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedBankInfoList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedBenefitList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedCompanyList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedDependentList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedEmployeeList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedEmployeePayrollRunList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedEmployerBenefitList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedEmploymentList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedGroupList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedIssueList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedLocationList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedPayGroupList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedPayrollRunList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedSyncStatusList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedTeamList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedTimeOffBalanceList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedTimeOffList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedTimesheetEntryList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PayCurrencyEnum: + enum: + - XUA + - AFN + - AFA + - ALL + - ALK + - DZD + - ADP + - AOA + - AOK + - AON + - AOR + - ARA + - ARS + - ARM + - ARP + - ARL + - AMD + - AWG + - AUD + - ATS + - AZN + - AZM + - BSD + - BHD + - BDT + - BBD + - BYN + - BYB + - BYR + - BEF + - BEC + - BEL + - BZD + - BMD + - BTN + - BOB + - BOL + - BOV + - BOP + - BAM + - BAD + - BAN + - BWP + - BRC + - BRZ + - BRE + - BRR + - BRN + - BRB + - BRL + - GBP + - BND + - BGL + - BGN + - BGO + - BGM + - BUK + - BIF + - XPF + - KHR + - CAD + - CVE + - KYD + - XAF + - CLE + - CLP + - CLF + - CNX + - CNY + - CNH + - COP + - COU + - KMF + - CDF + - CRC + - HRD + - HRK + - CUC + - CUP + - CYP + - CZK + - CSK + - DKK + - DJF + - DOP + - NLG + - XCD + - DDM + - ECS + - ECV + - EGP + - GQE + - ERN + - EEK + - ETB + - EUR + - XBA + - XEU + - XBB + - XBC + - XBD + - FKP + - FJD + - FIM + - FRF + - XFO + - XFU + - GMD + - GEK + - GEL + - DEM + - GHS + - GHC + - GIP + - XAU + - GRD + - GTQ + - GWP + - GNF + - GNS + - GYD + - HTG + - HNL + - HKD + - HUF + - IMP + - ISK + - ISJ + - INR + - IDR + - IRR + - IQD + - IEP + - ILS + - ILP + - ILR + - ITL + - JMD + - JPY + - JOD + - KZT + - KES + - KWD + - KGS + - LAK + - LVL + - LVR + - LBP + - LSL + - LRD + - LYD + - LTL + - LTT + - LUL + - LUC + - LUF + - MOP + - MKD + - MKN + - MGA + - MGF + - MWK + - MYR + - MVR + - MVP + - MLF + - MTL + - MTP + - MRU + - MRO + - MUR + - MXV + - MXN + - MXP + - MDC + - MDL + - MCF + - MNT + - MAD + - MAF + - MZE + - MZN + - MZM + - MMK + - NAD + - NPR + - ANG + - TWD + - NZD + - NIO + - NIC + - NGN + - KPW + - NOK + - OMR + - PKR + - XPD + - PAB + - PGK + - PYG + - PEI + - PEN + - PES + - PHP + - XPT + - PLN + - PLZ + - PTE + - GWE + - QAR + - XRE + - RHD + - RON + - ROL + - RUB + - RUR + - RWF + - SVC + - WST + - SAR + - RSD + - CSD + - SCR + - SLL + - XAG + - SGD + - SKK + - SIT + - SBD + - SOS + - ZAR + - ZAL + - KRH + - KRW + - KRO + - SSP + - SUR + - ESP + - ESA + - ESB + - XDR + - LKR + - SHP + - XSU + - SDD + - SDG + - SDP + - SRD + - SRG + - SZL + - SEK + - CHF + - SYP + - STN + - STD + - TVD + - TJR + - TJS + - TZS + - XTS + - THB + - XXX + - TPE + - TOP + - TTD + - TND + - TRY + - TRL + - TMT + - TMM + - USD + - USN + - USS + - UGX + - UGS + - UAH + - UAK + - AED + - UYW + - UYU + - UYP + - UYI + - UZS + - VUV + - VES + - VEB + - VEF + - VND + - VNN + - CHE + - CHW + - XOF + - YDD + - YER + - YUN + - YUD + - YUM + - YUR + - ZWN + - ZRN + - ZRZ + - ZMW + - ZMK + - ZWD + - ZWR + - ZWL + docs: >- + * `XUA` - ADB Unit of Account + + * `AFN` - Afghan Afghani + + * `AFA` - Afghan Afghani (1927–2002) + + * `ALL` - Albanian Lek + + * `ALK` - Albanian Lek (1946–1965) + + * `DZD` - Algerian Dinar + + * `ADP` - Andorran Peseta + + * `AOA` - Angolan Kwanza + + * `AOK` - Angolan Kwanza (1977–1991) + + * `AON` - Angolan New Kwanza (1990–2000) + + * `AOR` - Angolan Readjusted Kwanza (1995–1999) + + * `ARA` - Argentine Austral + + * `ARS` - Argentine Peso + + * `ARM` - Argentine Peso (1881–1970) + + * `ARP` - Argentine Peso (1983–1985) + + * `ARL` - Argentine Peso Ley (1970–1983) + + * `AMD` - Armenian Dram + + * `AWG` - Aruban Florin + + * `AUD` - Australian Dollar + + * `ATS` - Austrian Schilling + + * `AZN` - Azerbaijani Manat + + * `AZM` - Azerbaijani Manat (1993–2006) + + * `BSD` - Bahamian Dollar + + * `BHD` - Bahraini Dinar + + * `BDT` - Bangladeshi Taka + + * `BBD` - Barbadian Dollar + + * `BYN` - Belarusian Ruble + + * `BYB` - Belarusian Ruble (1994–1999) + + * `BYR` - Belarusian Ruble (2000–2016) + + * `BEF` - Belgian Franc + + * `BEC` - Belgian Franc (convertible) + + * `BEL` - Belgian Franc (financial) + + * `BZD` - Belize Dollar + + * `BMD` - Bermudan Dollar + + * `BTN` - Bhutanese Ngultrum + + * `BOB` - Bolivian Boliviano + + * `BOL` - Bolivian Boliviano (1863–1963) + + * `BOV` - Bolivian Mvdol + + * `BOP` - Bolivian Peso + + * `BAM` - Bosnia-Herzegovina Convertible Mark + + * `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + + * `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + + * `BWP` - Botswanan Pula + + * `BRC` - Brazilian Cruzado (1986–1989) + + * `BRZ` - Brazilian Cruzeiro (1942–1967) + + * `BRE` - Brazilian Cruzeiro (1990–1993) + + * `BRR` - Brazilian Cruzeiro (1993–1994) + + * `BRN` - Brazilian New Cruzado (1989–1990) + + * `BRB` - Brazilian New Cruzeiro (1967–1986) + + * `BRL` - Brazilian Real + + * `GBP` - British Pound + + * `BND` - Brunei Dollar + + * `BGL` - Bulgarian Hard Lev + + * `BGN` - Bulgarian Lev + + * `BGO` - Bulgarian Lev (1879–1952) + + * `BGM` - Bulgarian Socialist Lev + + * `BUK` - Burmese Kyat + + * `BIF` - Burundian Franc + + * `XPF` - CFP Franc + + * `KHR` - Cambodian Riel + + * `CAD` - Canadian Dollar + + * `CVE` - Cape Verdean Escudo + + * `KYD` - Cayman Islands Dollar + + * `XAF` - Central African CFA Franc + + * `CLE` - Chilean Escudo + + * `CLP` - Chilean Peso + + * `CLF` - Chilean Unit of Account (UF) + + * `CNX` - Chinese People’s Bank Dollar + + * `CNY` - Chinese Yuan + + * `CNH` - Chinese Yuan (offshore) + + * `COP` - Colombian Peso + + * `COU` - Colombian Real Value Unit + + * `KMF` - Comorian Franc + + * `CDF` - Congolese Franc + + * `CRC` - Costa Rican Colón + + * `HRD` - Croatian Dinar + + * `HRK` - Croatian Kuna + + * `CUC` - Cuban Convertible Peso + + * `CUP` - Cuban Peso + + * `CYP` - Cypriot Pound + + * `CZK` - Czech Koruna + + * `CSK` - Czechoslovak Hard Koruna + + * `DKK` - Danish Krone + + * `DJF` - Djiboutian Franc + + * `DOP` - Dominican Peso + + * `NLG` - Dutch Guilder + + * `XCD` - East Caribbean Dollar + + * `DDM` - East German Mark + + * `ECS` - Ecuadorian Sucre + + * `ECV` - Ecuadorian Unit of Constant Value + + * `EGP` - Egyptian Pound + + * `GQE` - Equatorial Guinean Ekwele + + * `ERN` - Eritrean Nakfa + + * `EEK` - Estonian Kroon + + * `ETB` - Ethiopian Birr + + * `EUR` - Euro + + * `XBA` - European Composite Unit + + * `XEU` - European Currency Unit + + * `XBB` - European Monetary Unit + + * `XBC` - European Unit of Account (XBC) + + * `XBD` - European Unit of Account (XBD) + + * `FKP` - Falkland Islands Pound + + * `FJD` - Fijian Dollar + + * `FIM` - Finnish Markka + + * `FRF` - French Franc + + * `XFO` - French Gold Franc + + * `XFU` - French UIC-Franc + + * `GMD` - Gambian Dalasi + + * `GEK` - Georgian Kupon Larit + + * `GEL` - Georgian Lari + + * `DEM` - German Mark + + * `GHS` - Ghanaian Cedi + + * `GHC` - Ghanaian Cedi (1979–2007) + + * `GIP` - Gibraltar Pound + + * `XAU` - Gold + + * `GRD` - Greek Drachma + + * `GTQ` - Guatemalan Quetzal + + * `GWP` - Guinea-Bissau Peso + + * `GNF` - Guinean Franc + + * `GNS` - Guinean Syli + + * `GYD` - Guyanaese Dollar + + * `HTG` - Haitian Gourde + + * `HNL` - Honduran Lempira + + * `HKD` - Hong Kong Dollar + + * `HUF` - Hungarian Forint + + * `IMP` - IMP + + * `ISK` - Icelandic Króna + + * `ISJ` - Icelandic Króna (1918–1981) + + * `INR` - Indian Rupee + + * `IDR` - Indonesian Rupiah + + * `IRR` - Iranian Rial + + * `IQD` - Iraqi Dinar + + * `IEP` - Irish Pound + + * `ILS` - Israeli New Shekel + + * `ILP` - Israeli Pound + + * `ILR` - Israeli Shekel (1980–1985) + + * `ITL` - Italian Lira + + * `JMD` - Jamaican Dollar + + * `JPY` - Japanese Yen + + * `JOD` - Jordanian Dinar + + * `KZT` - Kazakhstani Tenge + + * `KES` - Kenyan Shilling + + * `KWD` - Kuwaiti Dinar + + * `KGS` - Kyrgystani Som + + * `LAK` - Laotian Kip + + * `LVL` - Latvian Lats + + * `LVR` - Latvian Ruble + + * `LBP` - Lebanese Pound + + * `LSL` - Lesotho Loti + + * `LRD` - Liberian Dollar + + * `LYD` - Libyan Dinar + + * `LTL` - Lithuanian Litas + + * `LTT` - Lithuanian Talonas + + * `LUL` - Luxembourg Financial Franc + + * `LUC` - Luxembourgian Convertible Franc + + * `LUF` - Luxembourgian Franc + + * `MOP` - Macanese Pataca + + * `MKD` - Macedonian Denar + + * `MKN` - Macedonian Denar (1992–1993) + + * `MGA` - Malagasy Ariary + + * `MGF` - Malagasy Franc + + * `MWK` - Malawian Kwacha + + * `MYR` - Malaysian Ringgit + + * `MVR` - Maldivian Rufiyaa + + * `MVP` - Maldivian Rupee (1947–1981) + + * `MLF` - Malian Franc + + * `MTL` - Maltese Lira + + * `MTP` - Maltese Pound + + * `MRU` - Mauritanian Ouguiya + + * `MRO` - Mauritanian Ouguiya (1973–2017) + + * `MUR` - Mauritian Rupee + + * `MXV` - Mexican Investment Unit + + * `MXN` - Mexican Peso + + * `MXP` - Mexican Silver Peso (1861–1992) + + * `MDC` - Moldovan Cupon + + * `MDL` - Moldovan Leu + + * `MCF` - Monegasque Franc + + * `MNT` - Mongolian Tugrik + + * `MAD` - Moroccan Dirham + + * `MAF` - Moroccan Franc + + * `MZE` - Mozambican Escudo + + * `MZN` - Mozambican Metical + + * `MZM` - Mozambican Metical (1980–2006) + + * `MMK` - Myanmar Kyat + + * `NAD` - Namibian Dollar + + * `NPR` - Nepalese Rupee + + * `ANG` - Netherlands Antillean Guilder + + * `TWD` - New Taiwan Dollar + + * `NZD` - New Zealand Dollar + + * `NIO` - Nicaraguan Córdoba + + * `NIC` - Nicaraguan Córdoba (1988–1991) + + * `NGN` - Nigerian Naira + + * `KPW` - North Korean Won + + * `NOK` - Norwegian Krone + + * `OMR` - Omani Rial + + * `PKR` - Pakistani Rupee + + * `XPD` - Palladium + + * `PAB` - Panamanian Balboa + + * `PGK` - Papua New Guinean Kina + + * `PYG` - Paraguayan Guarani + + * `PEI` - Peruvian Inti + + * `PEN` - Peruvian Sol + + * `PES` - Peruvian Sol (1863–1965) + + * `PHP` - Philippine Peso + + * `XPT` - Platinum + + * `PLN` - Polish Zloty + + * `PLZ` - Polish Zloty (1950–1995) + + * `PTE` - Portuguese Escudo + + * `GWE` - Portuguese Guinea Escudo + + * `QAR` - Qatari Rial + + * `XRE` - RINET Funds + + * `RHD` - Rhodesian Dollar + + * `RON` - Romanian Leu + + * `ROL` - Romanian Leu (1952–2006) + + * `RUB` - Russian Ruble + + * `RUR` - Russian Ruble (1991–1998) + + * `RWF` - Rwandan Franc + + * `SVC` - Salvadoran Colón + + * `WST` - Samoan Tala + + * `SAR` - Saudi Riyal + + * `RSD` - Serbian Dinar + + * `CSD` - Serbian Dinar (2002–2006) + + * `SCR` - Seychellois Rupee + + * `SLL` - Sierra Leonean Leone + + * `XAG` - Silver + + * `SGD` - Singapore Dollar + + * `SKK` - Slovak Koruna + + * `SIT` - Slovenian Tolar + + * `SBD` - Solomon Islands Dollar + + * `SOS` - Somali Shilling + + * `ZAR` - South African Rand + + * `ZAL` - South African Rand (financial) + + * `KRH` - South Korean Hwan (1953–1962) + + * `KRW` - South Korean Won + + * `KRO` - South Korean Won (1945–1953) + + * `SSP` - South Sudanese Pound + + * `SUR` - Soviet Rouble + + * `ESP` - Spanish Peseta + + * `ESA` - Spanish Peseta (A account) + + * `ESB` - Spanish Peseta (convertible account) + + * `XDR` - Special Drawing Rights + + * `LKR` - Sri Lankan Rupee + + * `SHP` - St. Helena Pound + + * `XSU` - Sucre + + * `SDD` - Sudanese Dinar (1992–2007) + + * `SDG` - Sudanese Pound + + * `SDP` - Sudanese Pound (1957–1998) + + * `SRD` - Surinamese Dollar + + * `SRG` - Surinamese Guilder + + * `SZL` - Swazi Lilangeni + + * `SEK` - Swedish Krona + + * `CHF` - Swiss Franc + + * `SYP` - Syrian Pound + + * `STN` - São Tomé & Príncipe Dobra + + * `STD` - São Tomé & Príncipe Dobra (1977–2017) + + * `TVD` - TVD + + * `TJR` - Tajikistani Ruble + + * `TJS` - Tajikistani Somoni + + * `TZS` - Tanzanian Shilling + + * `XTS` - Testing Currency Code + + * `THB` - Thai Baht + + * `XXX` - The codes assigned for transactions where no currency is + involved + + * `TPE` - Timorese Escudo + + * `TOP` - Tongan Paʻanga + + * `TTD` - Trinidad & Tobago Dollar + + * `TND` - Tunisian Dinar + + * `TRY` - Turkish Lira + + * `TRL` - Turkish Lira (1922–2005) + + * `TMT` - Turkmenistani Manat + + * `TMM` - Turkmenistani Manat (1993–2009) + + * `USD` - US Dollar + + * `USN` - US Dollar (Next day) + + * `USS` - US Dollar (Same day) + + * `UGX` - Ugandan Shilling + + * `UGS` - Ugandan Shilling (1966–1987) + + * `UAH` - Ukrainian Hryvnia + + * `UAK` - Ukrainian Karbovanets + + * `AED` - United Arab Emirates Dirham + + * `UYW` - Uruguayan Nominal Wage Index Unit + + * `UYU` - Uruguayan Peso + + * `UYP` - Uruguayan Peso (1975–1993) + + * `UYI` - Uruguayan Peso (Indexed Units) + + * `UZS` - Uzbekistani Som + + * `VUV` - Vanuatu Vatu + + * `VES` - Venezuelan Bolívar + + * `VEB` - Venezuelan Bolívar (1871–2008) + + * `VEF` - Venezuelan Bolívar (2008–2018) + + * `VND` - Vietnamese Dong + + * `VNN` - Vietnamese Dong (1978–1985) + + * `CHE` - WIR Euro + + * `CHW` - WIR Franc + + * `XOF` - West African CFA Franc + + * `YDD` - Yemeni Dinar + + * `YER` - Yemeni Rial + + * `YUN` - Yugoslavian Convertible Dinar (1990–1992) + + * `YUD` - Yugoslavian Hard Dinar (1966–1990) + + * `YUM` - Yugoslavian New Dinar (1994–2002) + + * `YUR` - Yugoslavian Reformed Dinar (1992–1993) + + * `ZWN` - ZWN + + * `ZRN` - Zairean New Zaire (1993–1998) + + * `ZRZ` - Zairean Zaire (1971–1993) + + * `ZMW` - Zambian Kwacha + + * `ZMK` - Zambian Kwacha (1968–2012) + + * `ZWD` - Zimbabwean Dollar (1980–2008) + + * `ZWR` - Zimbabwean Dollar (2008) + + * `ZWL` - Zimbabwean Dollar (2009) + source: + openapi: openapi/openapi.yml + PayFrequencyEnum: + enum: + - WEEKLY + - BIWEEKLY + - MONTHLY + - QUARTERLY + - SEMIANNUALLY + - ANNUALLY + - value: THIRTEEN-MONTHLY + name: ThirteenMonthly + - PRO_RATA + - SEMIMONTHLY + docs: |- + * `WEEKLY` - WEEKLY + * `BIWEEKLY` - BIWEEKLY + * `MONTHLY` - MONTHLY + * `QUARTERLY` - QUARTERLY + * `SEMIANNUALLY` - SEMIANNUALLY + * `ANNUALLY` - ANNUALLY + * `THIRTEEN-MONTHLY` - THIRTEEN-MONTHLY + * `PRO_RATA` - PRO_RATA + * `SEMIMONTHLY` - SEMIMONTHLY + source: + openapi: openapi/openapi.yml + PayGroup: + docs: >- + # The PayGroup Object + + ### Description + + The `PayGroup` object is used to represent a subset of employees that are + put together for payroll processing purposes. + + + ### Usage Example + + Fetch from the `LIST PayGroup` endpoint and filter by `ID` to show all pay + group information. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + pay_group_name: + type: optional + docs: The pay group name. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + PayPeriodEnum: + enum: + - HOUR + - DAY + - WEEK + - EVERY_TWO_WEEKS + - SEMIMONTHLY + - MONTH + - QUARTER + - EVERY_SIX_MONTHS + - YEAR + docs: |- + * `HOUR` - HOUR + * `DAY` - DAY + * `WEEK` - WEEK + * `EVERY_TWO_WEEKS` - EVERY_TWO_WEEKS + * `SEMIMONTHLY` - SEMIMONTHLY + * `MONTH` - MONTH + * `QUARTER` - QUARTER + * `EVERY_SIX_MONTHS` - EVERY_SIX_MONTHS + * `YEAR` - YEAR + source: + openapi: openapi/openapi.yml + PayrollRunRunState: + discriminated: false + docs: |- + The state of the payroll run + + * `PAID` - PAID + * `DRAFT` - DRAFT + * `APPROVED` - APPROVED + * `FAILED` - FAILED + * `CLOSED` - CLOSED + union: + - RunStateEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PayrollRunRunType: + discriminated: false + docs: |- + The type of the payroll run + + * `REGULAR` - REGULAR + * `OFF_CYCLE` - OFF_CYCLE + * `CORRECTION` - CORRECTION + * `TERMINATION` - TERMINATION + * `SIGN_ON_BONUS` - SIGN_ON_BONUS + union: + - RunTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PayrollRun: + docs: >- + # The PayrollRun Object + + ### Description + + The `PayrollRun` object is used to represent a group of pay statements for + a specific pay schedule. + + + ### Usage Example + + Fetch from the `LIST PayrollRuns` endpoint and filter by `ID` to show all + payroll runs. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + run_state: + type: optional + docs: |- + The state of the payroll run + + * `PAID` - PAID + * `DRAFT` - DRAFT + * `APPROVED` - APPROVED + * `FAILED` - FAILED + * `CLOSED` - CLOSED + run_type: + type: optional + docs: |- + The type of the payroll run + + * `REGULAR` - REGULAR + * `OFF_CYCLE` - OFF_CYCLE + * `CORRECTION` - CORRECTION + * `TERMINATION` - TERMINATION + * `SIGN_ON_BONUS` - SIGN_ON_BONUS + start_date: + type: optional + docs: The day and time the payroll run started. + end_date: + type: optional + docs: The day and time the payroll run ended. + check_date: + type: optional + docs: The day and time the payroll run was checked. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + PolicyTypeEnum: + enum: + - VACATION + - SICK + - PERSONAL + - JURY_DUTY + - VOLUNTEER + - BEREAVEMENT + docs: |- + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + source: + openapi: openapi/openapi.yml + ReasonEnum: + enum: + - GENERAL_CUSTOMER_REQUEST + - GDPR + - OTHER + docs: |- + * `GENERAL_CUSTOMER_REQUEST` - GENERAL_CUSTOMER_REQUEST + * `GDPR` - GDPR + * `OTHER` - OTHER + source: + openapi: openapi/openapi.yml + RelationshipEnum: + enum: + - CHILD + - SPOUSE + - DOMESTIC_PARTNER + docs: |- + * `CHILD` - CHILD + * `SPOUSE` - SPOUSE + * `DOMESTIC_PARTNER` - DOMESTIC_PARTNER + source: + openapi: openapi/openapi.yml + RemoteData: + docs: >- + # The RemoteData Object + + ### Description + + The `RemoteData` object is used to represent the full data pulled from the + third-party API for an object. + + + ### Usage Example + + TODO + properties: + path: + type: string + docs: The third-party API path that is being called. + data: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + RemoteEndpointInfo: + properties: + method: string + url_path: string + field_traversal_path: list + source: + openapi: openapi/openapi.yml + RemoteFieldApiCoverage: + discriminated: false + union: + - integer + - double + source: + openapi: openapi/openapi.yml + inline: true + RemoteFieldApi: + properties: + schema: map + remote_key_name: string + remote_endpoint_info: RemoteEndpointInfo + example_values: optional> + advanced_metadata: optional + coverage: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + RemoteFieldApiResponse: + properties: + Benefit: optional> + EmployerBenefit: optional> + Company: optional> + EmployeePayrollRun: optional> + Employee: optional> + Employment: optional> + Location: optional> + PayrollRun: optional> + Team: optional> + TimeOff: optional> + TimeOffBalance: optional> + BankInfo: optional> + PayGroup: optional> + Group: optional> + Dependent: optional> + TimesheetEntry: optional> + source: + openapi: openapi/openapi.yml + RemoteKey: + docs: >- + # The RemoteKey Object + + ### Description + + The `RemoteKey` object is used to represent a request for a new remote + key. + + + ### Usage Example + + Post a `GenerateRemoteKey` to receive a new `RemoteKey`. + properties: + name: string + key: string + source: + openapi: openapi/openapi.yml + RemoteResponseResponseType: + discriminated: false + union: + - ResponseTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + RemoteResponse: + docs: >- + # The RemoteResponse Object + + ### Description + + The `RemoteResponse` object is used to represent information returned from + a third-party endpoint. + + + ### Usage Example + + View the `RemoteResponse` returned from your `DataPassthrough`. + properties: + method: string + path: string + status: integer + response: unknown + response_headers: optional> + response_type: optional + headers: optional> + source: + openapi: openapi/openapi.yml + RequestFormatEnum: + enum: + - JSON + - XML + - MULTIPART + docs: |- + * `JSON` - JSON + * `XML` - XML + * `MULTIPART` - MULTIPART + source: + openapi: openapi/openapi.yml + RequestTypeEnum: + enum: + - VACATION + - SICK + - PERSONAL + - JURY_DUTY + - VOLUNTEER + - BEREAVEMENT + docs: |- + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + source: + openapi: openapi/openapi.yml + ResponseTypeEnum: + enum: + - JSON + - BASE64_GZIP + docs: |- + * `JSON` - JSON + * `BASE64_GZIP` - BASE64_GZIP + source: + openapi: openapi/openapi.yml + RoleEnum: + enum: + - ADMIN + - DEVELOPER + - MEMBER + - API + - SYSTEM + - MERGE_TEAM + docs: |- + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + source: + openapi: openapi/openapi.yml + RunStateEnum: + enum: + - PAID + - DRAFT + - APPROVED + - FAILED + - CLOSED + docs: |- + * `PAID` - PAID + * `DRAFT` - DRAFT + * `APPROVED` - APPROVED + * `FAILED` - FAILED + * `CLOSED` - CLOSED + source: + openapi: openapi/openapi.yml + RunTypeEnum: + enum: + - REGULAR + - OFF_CYCLE + - CORRECTION + - TERMINATION + - SIGN_ON_BONUS + docs: |- + * `REGULAR` - REGULAR + * `OFF_CYCLE` - OFF_CYCLE + * `CORRECTION` - CORRECTION + * `TERMINATION` - TERMINATION + * `SIGN_ON_BONUS` - SIGN_ON_BONUS + source: + openapi: openapi/openapi.yml + SelectiveSyncConfigurationsUsageEnum: + enum: + - IN_NEXT_SYNC + - IN_LAST_SYNC + docs: |- + * `IN_NEXT_SYNC` - IN_NEXT_SYNC + * `IN_LAST_SYNC` - IN_LAST_SYNC + source: + openapi: openapi/openapi.yml + StatusFd5Enum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: openapi/openapi.yml + SyncStatusLastSyncResult: + discriminated: false + union: + - LastSyncResultEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + SyncStatus: + docs: >- + # The SyncStatus Object + + ### Description + + The `SyncStatus` object is used to represent the syncing state of an + account + + + ### Usage Example + + View the `SyncStatus` for an account to see how recently its models were + synced. + properties: + model_name: string + model_id: string + last_sync_start: optional + next_sync_start: optional + last_sync_result: optional + last_sync_finished: optional + status: StatusFd5Enum + is_initial_sync: boolean + selective_sync_configurations_usage: optional + source: + openapi: openapi/openapi.yml + Tax: + docs: >- + # The Tax Object + + ### Description + + The `Tax` object is used to represent an array of the tax deductions for a + given employee's payroll run. + + + ### Usage Example + + Fetch from the `LIST Taxes` endpoint and filter by `ID` to show all taxes. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee_payroll_run: + type: optional + validation: + format: uuid + name: + type: optional + docs: The tax's name. + amount: + type: optional + docs: The tax amount. + employer_tax: + type: optional + docs: Whether or not the employer is responsible for paying the tax. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + TeamParentTeam: + discriminated: false + docs: The team's parent team. + union: + - type: string + validation: + format: uuid + - Team + source: + openapi: openapi/openapi.yml + inline: true + Team: + docs: >- + # The Team Object + + ### Description + + The `Team` object is used to represent a subdivision of the company, + usually a department. Each employee will be grouped into one specific + Team. + + + ### Usage Example + + If you're building a way to filter by `Team`, you'd hit the `GET Teams` + endpoint to fetch the `Teams`, and then use the `ID` of the team your user + selects to filter the `GET Employees` endpoint. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The team's name. + parent_team: + type: optional + docs: The team's parent team. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + TimeOffEmployee: + discriminated: false + docs: The employee requesting time off. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + TimeOffApprover: + discriminated: false + docs: >- + The Merge ID of the employee with the ability to approve the time off + request. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + TimeOffStatus: + discriminated: false + docs: |- + The status of this time off request. + + * `REQUESTED` - REQUESTED + * `APPROVED` - APPROVED + * `DECLINED` - DECLINED + * `CANCELLED` - CANCELLED + * `DELETED` - DELETED + union: + - TimeOffStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + TimeOffUnits: + discriminated: false + docs: >- + The measurement that the third-party integration uses to count time + requested. + + + * `HOURS` - HOURS + + * `DAYS` - DAYS + union: + - UnitsEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + TimeOffRequestType: + discriminated: false + docs: |- + The type of time off request. + + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + union: + - RequestTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + TimeOff: + docs: >- + # The TimeOff Object + + ### Description + + The `TimeOff` object is used to represent all employees' Time Off entries. + + + ### Usage Example + + Fetch from the `LIST TimeOffs` endpoint and filter by `ID` to show all + time off requests. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee: + type: optional + docs: The employee requesting time off. + approver: + type: optional + docs: >- + The Merge ID of the employee with the ability to approve the time off + request. + status: + type: optional + docs: |- + The status of this time off request. + + * `REQUESTED` - REQUESTED + * `APPROVED` - APPROVED + * `DECLINED` - DECLINED + * `CANCELLED` - CANCELLED + * `DELETED` - DELETED + employee_note: + type: optional + docs: The employee note for this time off request. + units: + type: optional + docs: >- + The measurement that the third-party integration uses to count time + requested. + + + * `HOURS` - HOURS + + * `DAYS` - DAYS + amount: + type: optional + docs: The time off quantity measured by the prescribed “units”. + request_type: + type: optional + docs: |- + The type of time off request. + + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + start_time: + type: optional + docs: The day and time of the start of the time requested off. + end_time: + type: optional + docs: The day and time of the end of the time requested off. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + TimeOffBalanceEmployee: + discriminated: false + docs: The employee the balance belongs to. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + TimeOffBalancePolicyType: + discriminated: false + docs: |- + The policy type of this time off balance. + + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + union: + - PolicyTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + TimeOffBalance: + docs: >- + # The TimeOffBalance Object + + ### Description + + The `TimeOffBalance` object is used to represent current balances for an + employee's Time Off plan. + + + ### Usage Example + + Fetch from the `LIST TimeOffBalances` endpoint and filter by `ID` to show + all time off balances. + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee: + type: optional + docs: The employee the balance belongs to. + balance: + type: optional + docs: >- + The current remaining PTO balance, measured in hours. For integrations + that return this value in days, Merge multiplies by 8 to calculate + hours. + used: + type: optional + docs: >- + The amount of PTO used in terms of hours. For integrations that return + this value in days, Merge multiplies by 8 to calculate hours. + policy_type: + type: optional + docs: |- + The policy type of this time off balance. + + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + TimeOffRequestEmployee: + discriminated: false + docs: The employee requesting time off. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + TimeOffRequestApprover: + discriminated: false + docs: >- + The Merge ID of the employee with the ability to approve the time off + request. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + TimeOffRequestStatus: + discriminated: false + docs: |- + The status of this time off request. + + * `REQUESTED` - REQUESTED + * `APPROVED` - APPROVED + * `DECLINED` - DECLINED + * `CANCELLED` - CANCELLED + * `DELETED` - DELETED + union: + - TimeOffStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + TimeOffRequestUnits: + discriminated: false + docs: >- + The measurement that the third-party integration uses to count time + requested. + + + * `HOURS` - HOURS + + * `DAYS` - DAYS + union: + - UnitsEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + TimeOffRequestRequestType: + discriminated: false + docs: |- + The type of time off request. + + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + union: + - RequestTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + TimeOffRequest: + docs: >- + # The TimeOff Object + + ### Description + + The `TimeOff` object is used to represent all employees' Time Off entries. + + + ### Usage Example + + Fetch from the `LIST TimeOffs` endpoint and filter by `ID` to show all + time off requests. + properties: + employee: + type: optional + docs: The employee requesting time off. + approver: + type: optional + docs: >- + The Merge ID of the employee with the ability to approve the time off + request. + status: + type: optional + docs: |- + The status of this time off request. + + * `REQUESTED` - REQUESTED + * `APPROVED` - APPROVED + * `DECLINED` - DECLINED + * `CANCELLED` - CANCELLED + * `DELETED` - DELETED + employee_note: + type: optional + docs: The employee note for this time off request. + units: + type: optional + docs: >- + The measurement that the third-party integration uses to count time + requested. + + + * `HOURS` - HOURS + + * `DAYS` - DAYS + amount: + type: optional + docs: The time off quantity measured by the prescribed “units”. + request_type: + type: optional + docs: |- + The type of time off request. + + * `VACATION` - VACATION + * `SICK` - SICK + * `PERSONAL` - PERSONAL + * `JURY_DUTY` - JURY_DUTY + * `VOLUNTEER` - VOLUNTEER + * `BEREAVEMENT` - BEREAVEMENT + start_time: + type: optional + docs: The day and time of the start of the time requested off. + end_time: + type: optional + docs: The day and time of the end of the time requested off. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + TimeOffResponse: + properties: + model: TimeOff + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + TimeOffStatusEnum: + enum: + - REQUESTED + - APPROVED + - DECLINED + - CANCELLED + - DELETED + docs: |- + * `REQUESTED` - REQUESTED + * `APPROVED` - APPROVED + * `DECLINED` - DECLINED + * `CANCELLED` - CANCELLED + * `DELETED` - DELETED + source: + openapi: openapi/openapi.yml + TimesheetEntryEmployee: + discriminated: false + docs: The employee the timesheet entry is for. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + TimesheetEntry: + docs: >- + # The Timesheet Entry Object + + ### Description + + The `Timesheet Entry` object is used to track coverage for hours worked by + an 'Employee'. + + + + ### Usage Example + + GET and POST Timesheet Entries + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + employee: + type: optional + docs: The employee the timesheet entry is for. + hours_worked: + type: optional + docs: The number of hours logged by the employee. + start_time: + type: optional + docs: The time at which the employee started work. + end_time: + type: optional + docs: The time at which the employee ended work. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + TimesheetEntryRequestEmployee: + discriminated: false + docs: The employee the timesheet entry is for. + union: + - type: string + validation: + format: uuid + - Employee + source: + openapi: openapi/openapi.yml + inline: true + TimesheetEntryRequest: + docs: >- + # The Timesheet Entry Object + + ### Description + + The `Timesheet Entry` object is used to track coverage for hours worked by + an 'Employee'. + + + + ### Usage Example + + GET and POST Timesheet Entries + properties: + employee: + type: optional + docs: The employee the timesheet entry is for. + hours_worked: + type: optional + docs: The number of hours logged by the employee. + start_time: + type: optional + docs: The time at which the employee started work. + end_time: + type: optional + docs: The time at which the employee ended work. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + TimesheetEntryResponse: + properties: + model: TimesheetEntry + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + UnitsEnum: + enum: + - HOURS + - DAYS + docs: |- + * `HOURS` - HOURS + * `DAYS` - DAYS + source: + openapi: openapi/openapi.yml + ValidationProblemSource: + properties: + pointer: string + source: + openapi: openapi/openapi.yml + WarningValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: openapi/openapi.yml + WebhookReceiver: + properties: + event: string + is_active: boolean + key: optional + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/accountDetails.yml b/.mock/definition/hris/accountDetails.yml new file mode 100644 index 000000000..2d4833d38 --- /dev/null +++ b/.mock/definition/hris/accountDetails.yml @@ -0,0 +1,36 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /hris/v1/account-details + method: GET + auth: true + docs: Get details for a linked account. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.AccountDetails + status-code: 200 + examples: + - headers: {} + response: + body: + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + integration: BambooHR + integration_slug: bamboohr + category: hris + end_user_origin_id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + end_user_organization_name: Waystar Royco + end_user_email_address: kendall.roy@waystar-royco.com + status: COMPLETE + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/accountToken.yml b/.mock/definition/hris/accountToken.yml new file mode 100644 index 000000000..84185ffb1 --- /dev/null +++ b/.mock/definition/hris/accountToken.yml @@ -0,0 +1,44 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /hris/v1/account-token/{public_token} + method: GET + auth: true + docs: >- + Returns the account token for the end user with the provided public + token. + source: + openapi: openapi/openapi.yml + path-parameters: + public_token: string + response: + docs: '' + type: root.AccountToken + status-code: 200 + examples: + - path-parameters: + public_token: public_token + response: + body: + account_token: T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/asyncPassthrough.yml b/.mock/definition/hris/asyncPassthrough.yml new file mode 100644 index 000000000..841c4d914 --- /dev/null +++ b/.mock/definition/hris/asyncPassthrough.yml @@ -0,0 +1,70 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /hris/v1/async-passthrough + method: POST + auth: true + docs: >- + Asynchronously pull data from an endpoint not currently supported by + Merge. + source: + openapi: openapi/openapi.yml + request: + body: root.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: root.AsyncPassthroughReciept + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + async_passthrough_receipt_id: fd29020f-2695-445e-922e-dcd5e81903fd + retrieve: + path: /hris/v1/async-passthrough/{async_passthrough_receipt_id} + method: GET + auth: true + docs: Retrieves data from earlier async-passthrough POST request + source: + openapi: openapi/openapi.yml + path-parameters: + async_passthrough_receipt_id: string + response: + docs: '' + type: AsyncPassthroughRetrieveResponse + status-code: 200 + examples: + - path-parameters: + async_passthrough_receipt_id: async_passthrough_receipt_id + headers: {} + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: openapi/openapi.yml +types: + AsyncPassthroughRetrieveResponse: + discriminated: false + union: + - root.RemoteResponse + - string + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/auditTrail.yml b/.mock/definition/hris/auditTrail.yml new file mode 100644 index 000000000..19e653eae --- /dev/null +++ b/.mock/definition/hris/auditTrail.yml @@ -0,0 +1,94 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/audit-trail + method: GET + auth: true + docs: Gets a list of audit trail events. + source: + openapi: openapi/openapi.yml + request: + name: AuditTrailListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + before this time + event_type: + type: optional + docs: >- + If included, will only include events with the given event type. + Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, + `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, + `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, + `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, + `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, + `DELETED_LINKED_ACCOUNT`, + `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, + `CREATED_DESTINATION`, `DELETED_DESTINATION`, + `CHANGED_DESTINATION`, `CHANGED_SCOPES`, + `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, + `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, + `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, + `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, + `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, + `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, + `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, + `END_USER_CREDENTIALS_ACCESSED` + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + after this time + user_email: + type: optional + docs: >- + If provided, this will return events associated with the specified + user email. Please note that the email address reflects the user's + email at the time of the event, and may not be their current + email. + response: + docs: '' + type: root.PaginatedAuditLogEventList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b5ceea2a-7171-47ce-8090-165cfce5572c + user_name: Gil Feig + user_email: hello@merge.dev + role: ADMIN + ip_address: 192.0.2.123 + event_type: CREATED_REMOTE_PRODUCTION_API_KEY + event_description: >- + Organization-wide Scopes for model hris.Employee updated + from Read to Read+Write + created_at: '2024-01-15T09:30:00Z' + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/availableActions.yml b/.mock/definition/hris/availableActions.yml new file mode 100644 index 000000000..74b6e655d --- /dev/null +++ b/.mock/definition/hris/availableActions.yml @@ -0,0 +1,50 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /hris/v1/available-actions + method: GET + auth: true + docs: Returns a list of models and actions available for an account. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.AvailableActions + status-code: 200 + examples: + - headers: {} + response: + body: + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/bankInfo.yml b/.mock/definition/hris/bankInfo.yml new file mode 100644 index 000000000..d8d8fc216 --- /dev/null +++ b/.mock/definition/hris/bankInfo.yml @@ -0,0 +1,212 @@ +types: + BankInfoListRequestAccountType: + enum: + - CHECKING + - SAVINGS + source: + openapi: openapi/openapi.yml + BankInfoListRequestOrderBy: + enum: + - value: '-remote_created_at' + name: RemoteCreatedAtDescending + - value: remote_created_at + name: RemoteCreatedAtAscending + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/bank-info + method: GET + auth: true + docs: Returns a list of `BankInfo` objects. + source: + openapi: openapi/openapi.yml + request: + name: BankInfoListRequest + query-parameters: + account_type: + type: optional + docs: >- + If provided, will only return BankInfo's with this account type. + Options: ('SAVINGS', 'CHECKING') + + + * `SAVINGS` - SAVINGS + + * `CHECKING` - CHECKING + bank_name: + type: optional + docs: If provided, will only return BankInfo's with this bank name. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + employee_id: + type: optional + docs: If provided, will only return bank accounts for this employee. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + order_by: + type: optional + docs: >- + Overrides the default ordering for this endpoint. Possible values + include: remote_created_at, -remote_created_at. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.PaginatedBankInfoList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: fd1e0fb5-8f92-4ec9-9f32-179cf732867d + remote_id: '123234' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + account_number: '439291590' + routing_number: '089690059' + bank_name: Chase + account_type: SAVINGS + remote_created_at: '2021-12-06T10:11:26Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /bank-info + data: + - Varies by platform + retrieve: + path: /hris/v1/bank-info/{id} + method: GET + auth: true + docs: Returns a `BankInfo` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: BankInfoRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.BankInfo + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: fd1e0fb5-8f92-4ec9-9f32-179cf732867d + remote_id: '123234' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + account_number: '439291590' + routing_number: '089690059' + bank_name: Chase + account_type: SAVINGS + remote_created_at: '2021-12-06T10:11:26Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /bank-info + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/benefits.yml b/.mock/definition/hris/benefits.yml new file mode 100644 index 000000000..2a98a3781 --- /dev/null +++ b/.mock/definition/hris/benefits.yml @@ -0,0 +1,165 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/benefits + method: GET + auth: true + docs: Returns a list of `Benefit` objects. + source: + openapi: openapi/openapi.yml + request: + name: BenefitsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + employee_id: + type: optional + docs: >- + If provided, will return the benefits associated with the + employee. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedBenefitList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3fe5ae7a-f1ba-4529-b7af-84e86dc6d232 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + provider_name: Blue Shield of California + benefit_plan_type: benefit_plan_type + employee_contribution: 23.65 + company_contribution: 150 + start_date: '2020-11-15T00:59:25Z' + end_date: '2021-10-15T00:23:25Z' + remote_was_deleted: true + employer_benefit: 025fjlc6-6000-430a-848e-aafacbadf4fe + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /benefits + data: + - Varies by platform + retrieve: + path: /hris/v1/benefits/{id} + method: GET + auth: true + docs: Returns a `Benefit` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: BenefitsRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Benefit + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 3fe5ae7a-f1ba-4529-b7af-84e86dc6d232 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + provider_name: Blue Shield of California + benefit_plan_type: benefit_plan_type + employee_contribution: 23.65 + company_contribution: 150 + start_date: '2020-11-15T00:59:25Z' + end_date: '2021-10-15T00:23:25Z' + remote_was_deleted: true + employer_benefit: 025fjlc6-6000-430a-848e-aafacbadf4fe + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /benefits + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/companies.yml b/.mock/definition/hris/companies.yml new file mode 100644 index 000000000..3b107952f --- /dev/null +++ b/.mock/definition/hris/companies.yml @@ -0,0 +1,146 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/companies + method: GET + auth: true + docs: Returns a list of `Company` objects. + source: + openapi: openapi/openapi.yml + request: + name: CompaniesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedCompanyList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 1b998423-db0a-4037-a4cf-f79c60cb67b3 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + legal_name: Waystar Royco, Inc. + display_name: Waystar Royco + eins: + - 12-3456789 + - 12-3451111 + - 11-0011000 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /companies + data: + - Varies by platform + retrieve: + path: /hris/v1/companies/{id} + method: GET + auth: true + docs: Returns a `Company` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: CompaniesRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Company + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 1b998423-db0a-4037-a4cf-f79c60cb67b3 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + legal_name: Waystar Royco, Inc. + display_name: Waystar Royco + eins: + - 12-3456789 + - 12-3451111 + - 11-0011000 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /companies + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/deleteAccount.yml b/.mock/definition/hris/deleteAccount.yml new file mode 100644 index 000000000..d8b1e45ca --- /dev/null +++ b/.mock/definition/hris/deleteAccount.yml @@ -0,0 +1,15 @@ +service: + auth: false + base-path: '' + endpoints: + delete: + path: /hris/v1/delete-account + method: POST + auth: true + docs: Delete a linked account. + source: + openapi: openapi/openapi.yml + examples: + - headers: {} + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/dependents.yml b/.mock/definition/hris/dependents.yml new file mode 100644 index 000000000..a4254ddd6 --- /dev/null +++ b/.mock/definition/hris/dependents.yml @@ -0,0 +1,166 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/dependents + method: GET + auth: true + docs: Returns a list of `Dependent` objects. + source: + openapi: openapi/openapi.yml + request: + name: DependentsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_sensitive_fields: + type: optional + docs: >- + Whether to include sensitive fields (such as social security + numbers) in the response. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedDependentList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 025fjlc6-6000-430a-848e-aafacbadf4fe + remote_id: '19202940' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Greg + middle_name: A + last_name: Hirsch + relationship: CHILD + employee: 0958cbc6-6040-430a-848e-aafacbadf4ae + date_of_birth: '1990-11-10T00:00:00Z' + gender: MALE + phone_number: '+1234567890' + home_location: d2f972d0-2526-434b-9409-4c3b468e08f0 + is_student: true + ssn: '1234567890' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /dependent + data: + - Varies by platform + retrieve: + path: /hris/v1/dependents/{id} + method: GET + auth: true + docs: Returns a `Dependent` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: DependentsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_sensitive_fields: + type: optional + docs: >- + Whether to include sensitive fields (such as social security + numbers) in the response. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Dependent + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 025fjlc6-6000-430a-848e-aafacbadf4fe + remote_id: '19202940' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + first_name: Greg + middle_name: A + last_name: Hirsch + relationship: CHILD + employee: 0958cbc6-6040-430a-848e-aafacbadf4ae + date_of_birth: '1990-11-10T00:00:00Z' + gender: MALE + phone_number: '+1234567890' + home_location: d2f972d0-2526-434b-9409-4c3b468e08f0 + is_student: true + ssn: '1234567890' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /dependent + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/employeePayrollRuns.yml b/.mock/definition/hris/employeePayrollRuns.yml new file mode 100644 index 000000000..c4ffb0b90 --- /dev/null +++ b/.mock/definition/hris/employeePayrollRuns.yml @@ -0,0 +1,301 @@ +types: + EmployeePayrollRunsListRequestExpand: + enum: + - employee + - value: employee,payroll_run + name: EmployeePayrollRun + - payroll_run + source: + openapi: openapi/openapi.yml + EmployeePayrollRunsRetrieveRequestExpand: + enum: + - employee + - value: employee,payroll_run + name: EmployeePayrollRun + - payroll_run + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/employee-payroll-runs + method: GET + auth: true + docs: Returns a list of `EmployeePayrollRun` objects. + source: + openapi: openapi/openapi.yml + request: + name: EmployeePayrollRunsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + employee_id: + type: optional + docs: >- + If provided, will only return employee payroll runs for this + employee. + ended_after: + type: optional + docs: >- + If provided, will only return employee payroll runs ended after + this datetime. + ended_before: + type: optional + docs: >- + If provided, will only return employee payroll runs ended before + this datetime. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + payroll_run_id: + type: optional + docs: >- + If provided, will only return employee payroll runs for this + employee. + remote_id: + type: optional + docs: The API provider's ID for the given object. + started_after: + type: optional + docs: >- + If provided, will only return employee payroll runs started after + this datetime. + started_before: + type: optional + docs: >- + If provided, will only return employee payroll runs started before + this datetime. + response: + docs: '' + type: root.PaginatedEmployeePayrollRunList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: fb8c55b6-1cb8-4b4c-9fb6-17924231619d + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + payroll_run: payroll_run + gross_pay: 1342.67 + net_pay: 865.78 + start_date: '2020-11-08T00:00:00Z' + end_date: '2020-11-09T00:00:00Z' + check_date: '2020-11-10T00:00:00Z' + earnings: + - id: babbced6-3a81-4775-8da2-490dc6385259 + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + amount: 1002.34 + type: SALARY + - id: babbced6-3a81-4775-8da2-490dc6385259 + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + amount: 8342.34 + type: OVERTIME + deductions: + - id: 5fd439fc-1b64-4755-b275-64918936c365 + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + name: Social Security + employee_deduction: 34.54 + company_deduction: 78.78 + taxes: + - id: e3a825fd-c38d-4095-a717-df98c4cb9ebc + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + name: California State Income Tax + amount: 100.25 + employer_tax: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /employee-payroll + data: + - Varies by platform + retrieve: + path: /hris/v1/employee-payroll-runs/{id} + method: GET + auth: true + docs: Returns an `EmployeePayrollRun` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: EmployeePayrollRunsRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.EmployeePayrollRun + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: fb8c55b6-1cb8-4b4c-9fb6-17924231619d + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + payroll_run: payroll_run + gross_pay: 1342.67 + net_pay: 865.78 + start_date: '2020-11-08T00:00:00Z' + end_date: '2020-11-09T00:00:00Z' + check_date: '2020-11-10T00:00:00Z' + earnings: + - id: babbced6-3a81-4775-8da2-490dc6385259 + remote_id: '52802' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + amount: 1002.34 + type: SALARY + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + - id: babbced6-3a81-4775-8da2-490dc6385259 + remote_id: '52802' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + amount: 8342.34 + type: OVERTIME + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + deductions: + - id: 5fd439fc-1b64-4755-b275-64918936c365 + remote_id: '93478612' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + name: Social Security + employee_deduction: 34.54 + company_deduction: 78.78 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /payroll-deduction + data: + - Varies by platform + taxes: + - id: e3a825fd-c38d-4095-a717-df98c4cb9ebc + remote_id: '26806834' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_payroll_run: 35347df1-95e7-46e2-93cc-66f1191edca5 + name: California State Income Tax + amount: 100.25 + employer_tax: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /employee-payroll + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/employees.yml b/.mock/definition/hris/employees.yml new file mode 100644 index 000000000..bd50cfa6d --- /dev/null +++ b/.mock/definition/hris/employees.yml @@ -0,0 +1,1787 @@ +types: + EmployeesListRequestEmploymentStatus: + enum: + - ACTIVE + - INACTIVE + - PENDING + source: + openapi: openapi/openapi.yml + EmployeesListRequestExpand: + enum: + - company + - value: company,pay_group + name: CompanyPayGroup + - employments + - value: employments,company + name: EmploymentsCompany + - value: employments,company,pay_group + name: EmploymentsCompanyPayGroup + - value: employments,groups + name: EmploymentsGroups + - value: employments,groups,company + name: EmploymentsGroupsCompany + - value: employments,groups,company,pay_group + name: EmploymentsGroupsCompanyPayGroup + - value: employments,groups,home_location + name: EmploymentsGroupsHomeLocation + - value: employments,groups,home_location,company + name: EmploymentsGroupsHomeLocationCompany + - value: employments,groups,home_location,company,pay_group + name: EmploymentsGroupsHomeLocationCompanyPayGroup + - value: employments,groups,home_location,manager + name: EmploymentsGroupsHomeLocationManager + - value: employments,groups,home_location,manager,company + name: EmploymentsGroupsHomeLocationManagerCompany + - value: employments,groups,home_location,manager,company,pay_group + name: EmploymentsGroupsHomeLocationManagerCompanyPayGroup + - value: employments,groups,home_location,manager,pay_group + name: EmploymentsGroupsHomeLocationManagerPayGroup + - value: employments,groups,home_location,manager,team + name: EmploymentsGroupsHomeLocationManagerTeam + - value: employments,groups,home_location,manager,team,company + name: EmploymentsGroupsHomeLocationManagerTeamCompany + - value: employments,groups,home_location,manager,team,company,pay_group + name: EmploymentsGroupsHomeLocationManagerTeamCompanyPayGroup + - value: employments,groups,home_location,manager,team,pay_group + name: EmploymentsGroupsHomeLocationManagerTeamPayGroup + - value: employments,groups,home_location,pay_group + name: EmploymentsGroupsHomeLocationPayGroup + - value: employments,groups,home_location,team + name: EmploymentsGroupsHomeLocationTeam + - value: employments,groups,home_location,team,company + name: EmploymentsGroupsHomeLocationTeamCompany + - value: employments,groups,home_location,team,company,pay_group + name: EmploymentsGroupsHomeLocationTeamCompanyPayGroup + - value: employments,groups,home_location,team,pay_group + name: EmploymentsGroupsHomeLocationTeamPayGroup + - value: employments,groups,home_location,work_location + name: EmploymentsGroupsHomeLocationWorkLocation + - value: employments,groups,home_location,work_location,company + name: EmploymentsGroupsHomeLocationWorkLocationCompany + - value: employments,groups,home_location,work_location,company,pay_group + name: EmploymentsGroupsHomeLocationWorkLocationCompanyPayGroup + - value: employments,groups,home_location,work_location,manager + name: EmploymentsGroupsHomeLocationWorkLocationManager + - value: employments,groups,home_location,work_location,manager,company + name: EmploymentsGroupsHomeLocationWorkLocationManagerCompany + - value: >- + employments,groups,home_location,work_location,manager,company,pay_group + name: EmploymentsGroupsHomeLocationWorkLocationManagerCompanyPayGroup + - value: employments,groups,home_location,work_location,manager,pay_group + name: EmploymentsGroupsHomeLocationWorkLocationManagerPayGroup + - value: employments,groups,home_location,work_location,manager,team + name: EmploymentsGroupsHomeLocationWorkLocationManagerTeam + - value: employments,groups,home_location,work_location,manager,team,company + name: EmploymentsGroupsHomeLocationWorkLocationManagerTeamCompany + - value: >- + employments,groups,home_location,work_location,manager,team,company,pay_group + name: EmploymentsGroupsHomeLocationWorkLocationManagerTeamCompanyPayGroup + - value: employments,groups,home_location,work_location,manager,team,pay_group + name: EmploymentsGroupsHomeLocationWorkLocationManagerTeamPayGroup + - value: employments,groups,home_location,work_location,pay_group + name: EmploymentsGroupsHomeLocationWorkLocationPayGroup + - value: employments,groups,home_location,work_location,team + name: EmploymentsGroupsHomeLocationWorkLocationTeam + - value: employments,groups,home_location,work_location,team,company + name: EmploymentsGroupsHomeLocationWorkLocationTeamCompany + - value: employments,groups,home_location,work_location,team,company,pay_group + name: EmploymentsGroupsHomeLocationWorkLocationTeamCompanyPayGroup + - value: employments,groups,home_location,work_location,team,pay_group + name: EmploymentsGroupsHomeLocationWorkLocationTeamPayGroup + - value: employments,groups,manager + name: EmploymentsGroupsManager + - value: employments,groups,manager,company + name: EmploymentsGroupsManagerCompany + - value: employments,groups,manager,company,pay_group + name: EmploymentsGroupsManagerCompanyPayGroup + - value: employments,groups,manager,pay_group + name: EmploymentsGroupsManagerPayGroup + - value: employments,groups,manager,team + name: EmploymentsGroupsManagerTeam + - value: employments,groups,manager,team,company + name: EmploymentsGroupsManagerTeamCompany + - value: employments,groups,manager,team,company,pay_group + name: EmploymentsGroupsManagerTeamCompanyPayGroup + - value: employments,groups,manager,team,pay_group + name: EmploymentsGroupsManagerTeamPayGroup + - value: employments,groups,pay_group + name: EmploymentsGroupsPayGroup + - value: employments,groups,team + name: EmploymentsGroupsTeam + - value: employments,groups,team,company + name: EmploymentsGroupsTeamCompany + - value: employments,groups,team,company,pay_group + name: EmploymentsGroupsTeamCompanyPayGroup + - value: employments,groups,team,pay_group + name: EmploymentsGroupsTeamPayGroup + - value: employments,groups,work_location + name: EmploymentsGroupsWorkLocation + - value: employments,groups,work_location,company + name: EmploymentsGroupsWorkLocationCompany + - value: employments,groups,work_location,company,pay_group + name: EmploymentsGroupsWorkLocationCompanyPayGroup + - value: employments,groups,work_location,manager + name: EmploymentsGroupsWorkLocationManager + - value: employments,groups,work_location,manager,company + name: EmploymentsGroupsWorkLocationManagerCompany + - value: employments,groups,work_location,manager,company,pay_group + name: EmploymentsGroupsWorkLocationManagerCompanyPayGroup + - value: employments,groups,work_location,manager,pay_group + name: EmploymentsGroupsWorkLocationManagerPayGroup + - value: employments,groups,work_location,manager,team + name: EmploymentsGroupsWorkLocationManagerTeam + - value: employments,groups,work_location,manager,team,company + name: EmploymentsGroupsWorkLocationManagerTeamCompany + - value: employments,groups,work_location,manager,team,company,pay_group + name: EmploymentsGroupsWorkLocationManagerTeamCompanyPayGroup + - value: employments,groups,work_location,manager,team,pay_group + name: EmploymentsGroupsWorkLocationManagerTeamPayGroup + - value: employments,groups,work_location,pay_group + name: EmploymentsGroupsWorkLocationPayGroup + - value: employments,groups,work_location,team + name: EmploymentsGroupsWorkLocationTeam + - value: employments,groups,work_location,team,company + name: EmploymentsGroupsWorkLocationTeamCompany + - value: employments,groups,work_location,team,company,pay_group + name: EmploymentsGroupsWorkLocationTeamCompanyPayGroup + - value: employments,groups,work_location,team,pay_group + name: EmploymentsGroupsWorkLocationTeamPayGroup + - value: employments,home_location + name: EmploymentsHomeLocation + - value: employments,home_location,company + name: EmploymentsHomeLocationCompany + - value: employments,home_location,company,pay_group + name: EmploymentsHomeLocationCompanyPayGroup + - value: employments,home_location,manager + name: EmploymentsHomeLocationManager + - value: employments,home_location,manager,company + name: EmploymentsHomeLocationManagerCompany + - value: employments,home_location,manager,company,pay_group + name: EmploymentsHomeLocationManagerCompanyPayGroup + - value: employments,home_location,manager,pay_group + name: EmploymentsHomeLocationManagerPayGroup + - value: employments,home_location,manager,team + name: EmploymentsHomeLocationManagerTeam + - value: employments,home_location,manager,team,company + name: EmploymentsHomeLocationManagerTeamCompany + - value: employments,home_location,manager,team,company,pay_group + name: EmploymentsHomeLocationManagerTeamCompanyPayGroup + - value: employments,home_location,manager,team,pay_group + name: EmploymentsHomeLocationManagerTeamPayGroup + - value: employments,home_location,pay_group + name: EmploymentsHomeLocationPayGroup + - value: employments,home_location,team + name: EmploymentsHomeLocationTeam + - value: employments,home_location,team,company + name: EmploymentsHomeLocationTeamCompany + - value: employments,home_location,team,company,pay_group + name: EmploymentsHomeLocationTeamCompanyPayGroup + - value: employments,home_location,team,pay_group + name: EmploymentsHomeLocationTeamPayGroup + - value: employments,home_location,work_location + name: EmploymentsHomeLocationWorkLocation + - value: employments,home_location,work_location,company + name: EmploymentsHomeLocationWorkLocationCompany + - value: employments,home_location,work_location,company,pay_group + name: EmploymentsHomeLocationWorkLocationCompanyPayGroup + - value: employments,home_location,work_location,manager + name: EmploymentsHomeLocationWorkLocationManager + - value: employments,home_location,work_location,manager,company + name: EmploymentsHomeLocationWorkLocationManagerCompany + - value: employments,home_location,work_location,manager,company,pay_group + name: EmploymentsHomeLocationWorkLocationManagerCompanyPayGroup + - value: employments,home_location,work_location,manager,pay_group + name: EmploymentsHomeLocationWorkLocationManagerPayGroup + - value: employments,home_location,work_location,manager,team + name: EmploymentsHomeLocationWorkLocationManagerTeam + - value: employments,home_location,work_location,manager,team,company + name: EmploymentsHomeLocationWorkLocationManagerTeamCompany + - value: employments,home_location,work_location,manager,team,company,pay_group + name: EmploymentsHomeLocationWorkLocationManagerTeamCompanyPayGroup + - value: employments,home_location,work_location,manager,team,pay_group + name: EmploymentsHomeLocationWorkLocationManagerTeamPayGroup + - value: employments,home_location,work_location,pay_group + name: EmploymentsHomeLocationWorkLocationPayGroup + - value: employments,home_location,work_location,team + name: EmploymentsHomeLocationWorkLocationTeam + - value: employments,home_location,work_location,team,company + name: EmploymentsHomeLocationWorkLocationTeamCompany + - value: employments,home_location,work_location,team,company,pay_group + name: EmploymentsHomeLocationWorkLocationTeamCompanyPayGroup + - value: employments,home_location,work_location,team,pay_group + name: EmploymentsHomeLocationWorkLocationTeamPayGroup + - value: employments,manager + name: EmploymentsManager + - value: employments,manager,company + name: EmploymentsManagerCompany + - value: employments,manager,company,pay_group + name: EmploymentsManagerCompanyPayGroup + - value: employments,manager,pay_group + name: EmploymentsManagerPayGroup + - value: employments,manager,team + name: EmploymentsManagerTeam + - value: employments,manager,team,company + name: EmploymentsManagerTeamCompany + - value: employments,manager,team,company,pay_group + name: EmploymentsManagerTeamCompanyPayGroup + - value: employments,manager,team,pay_group + name: EmploymentsManagerTeamPayGroup + - value: employments,pay_group + name: EmploymentsPayGroup + - value: employments,team + name: EmploymentsTeam + - value: employments,team,company + name: EmploymentsTeamCompany + - value: employments,team,company,pay_group + name: EmploymentsTeamCompanyPayGroup + - value: employments,team,pay_group + name: EmploymentsTeamPayGroup + - value: employments,work_location + name: EmploymentsWorkLocation + - value: employments,work_location,company + name: EmploymentsWorkLocationCompany + - value: employments,work_location,company,pay_group + name: EmploymentsWorkLocationCompanyPayGroup + - value: employments,work_location,manager + name: EmploymentsWorkLocationManager + - value: employments,work_location,manager,company + name: EmploymentsWorkLocationManagerCompany + - value: employments,work_location,manager,company,pay_group + name: EmploymentsWorkLocationManagerCompanyPayGroup + - value: employments,work_location,manager,pay_group + name: EmploymentsWorkLocationManagerPayGroup + - value: employments,work_location,manager,team + name: EmploymentsWorkLocationManagerTeam + - value: employments,work_location,manager,team,company + name: EmploymentsWorkLocationManagerTeamCompany + - value: employments,work_location,manager,team,company,pay_group + name: EmploymentsWorkLocationManagerTeamCompanyPayGroup + - value: employments,work_location,manager,team,pay_group + name: EmploymentsWorkLocationManagerTeamPayGroup + - value: employments,work_location,pay_group + name: EmploymentsWorkLocationPayGroup + - value: employments,work_location,team + name: EmploymentsWorkLocationTeam + - value: employments,work_location,team,company + name: EmploymentsWorkLocationTeamCompany + - value: employments,work_location,team,company,pay_group + name: EmploymentsWorkLocationTeamCompanyPayGroup + - value: employments,work_location,team,pay_group + name: EmploymentsWorkLocationTeamPayGroup + - groups + - value: groups,company + name: GroupsCompany + - value: groups,company,pay_group + name: GroupsCompanyPayGroup + - value: groups,home_location + name: GroupsHomeLocation + - value: groups,home_location,company + name: GroupsHomeLocationCompany + - value: groups,home_location,company,pay_group + name: GroupsHomeLocationCompanyPayGroup + - value: groups,home_location,manager + name: GroupsHomeLocationManager + - value: groups,home_location,manager,company + name: GroupsHomeLocationManagerCompany + - value: groups,home_location,manager,company,pay_group + name: GroupsHomeLocationManagerCompanyPayGroup + - value: groups,home_location,manager,pay_group + name: GroupsHomeLocationManagerPayGroup + - value: groups,home_location,manager,team + name: GroupsHomeLocationManagerTeam + - value: groups,home_location,manager,team,company + name: GroupsHomeLocationManagerTeamCompany + - value: groups,home_location,manager,team,company,pay_group + name: GroupsHomeLocationManagerTeamCompanyPayGroup + - value: groups,home_location,manager,team,pay_group + name: GroupsHomeLocationManagerTeamPayGroup + - value: groups,home_location,pay_group + name: GroupsHomeLocationPayGroup + - value: groups,home_location,team + name: GroupsHomeLocationTeam + - value: groups,home_location,team,company + name: GroupsHomeLocationTeamCompany + - value: groups,home_location,team,company,pay_group + name: GroupsHomeLocationTeamCompanyPayGroup + - value: groups,home_location,team,pay_group + name: GroupsHomeLocationTeamPayGroup + - value: groups,home_location,work_location + name: GroupsHomeLocationWorkLocation + - value: groups,home_location,work_location,company + name: GroupsHomeLocationWorkLocationCompany + - value: groups,home_location,work_location,company,pay_group + name: GroupsHomeLocationWorkLocationCompanyPayGroup + - value: groups,home_location,work_location,manager + name: GroupsHomeLocationWorkLocationManager + - value: groups,home_location,work_location,manager,company + name: GroupsHomeLocationWorkLocationManagerCompany + - value: groups,home_location,work_location,manager,company,pay_group + name: GroupsHomeLocationWorkLocationManagerCompanyPayGroup + - value: groups,home_location,work_location,manager,pay_group + name: GroupsHomeLocationWorkLocationManagerPayGroup + - value: groups,home_location,work_location,manager,team + name: GroupsHomeLocationWorkLocationManagerTeam + - value: groups,home_location,work_location,manager,team,company + name: GroupsHomeLocationWorkLocationManagerTeamCompany + - value: groups,home_location,work_location,manager,team,company,pay_group + name: GroupsHomeLocationWorkLocationManagerTeamCompanyPayGroup + - value: groups,home_location,work_location,manager,team,pay_group + name: GroupsHomeLocationWorkLocationManagerTeamPayGroup + - value: groups,home_location,work_location,pay_group + name: GroupsHomeLocationWorkLocationPayGroup + - value: groups,home_location,work_location,team + name: GroupsHomeLocationWorkLocationTeam + - value: groups,home_location,work_location,team,company + name: GroupsHomeLocationWorkLocationTeamCompany + - value: groups,home_location,work_location,team,company,pay_group + name: GroupsHomeLocationWorkLocationTeamCompanyPayGroup + - value: groups,home_location,work_location,team,pay_group + name: GroupsHomeLocationWorkLocationTeamPayGroup + - value: groups,manager + name: GroupsManager + - value: groups,manager,company + name: GroupsManagerCompany + - value: groups,manager,company,pay_group + name: GroupsManagerCompanyPayGroup + - value: groups,manager,pay_group + name: GroupsManagerPayGroup + - value: groups,manager,team + name: GroupsManagerTeam + - value: groups,manager,team,company + name: GroupsManagerTeamCompany + - value: groups,manager,team,company,pay_group + name: GroupsManagerTeamCompanyPayGroup + - value: groups,manager,team,pay_group + name: GroupsManagerTeamPayGroup + - value: groups,pay_group + name: GroupsPayGroup + - value: groups,team + name: GroupsTeam + - value: groups,team,company + name: GroupsTeamCompany + - value: groups,team,company,pay_group + name: GroupsTeamCompanyPayGroup + - value: groups,team,pay_group + name: GroupsTeamPayGroup + - value: groups,work_location + name: GroupsWorkLocation + - value: groups,work_location,company + name: GroupsWorkLocationCompany + - value: groups,work_location,company,pay_group + name: GroupsWorkLocationCompanyPayGroup + - value: groups,work_location,manager + name: GroupsWorkLocationManager + - value: groups,work_location,manager,company + name: GroupsWorkLocationManagerCompany + - value: groups,work_location,manager,company,pay_group + name: GroupsWorkLocationManagerCompanyPayGroup + - value: groups,work_location,manager,pay_group + name: GroupsWorkLocationManagerPayGroup + - value: groups,work_location,manager,team + name: GroupsWorkLocationManagerTeam + - value: groups,work_location,manager,team,company + name: GroupsWorkLocationManagerTeamCompany + - value: groups,work_location,manager,team,company,pay_group + name: GroupsWorkLocationManagerTeamCompanyPayGroup + - value: groups,work_location,manager,team,pay_group + name: GroupsWorkLocationManagerTeamPayGroup + - value: groups,work_location,pay_group + name: GroupsWorkLocationPayGroup + - value: groups,work_location,team + name: GroupsWorkLocationTeam + - value: groups,work_location,team,company + name: GroupsWorkLocationTeamCompany + - value: groups,work_location,team,company,pay_group + name: GroupsWorkLocationTeamCompanyPayGroup + - value: groups,work_location,team,pay_group + name: GroupsWorkLocationTeamPayGroup + - home_location + - value: home_location,company + name: HomeLocationCompany + - value: home_location,company,pay_group + name: HomeLocationCompanyPayGroup + - value: home_location,manager + name: HomeLocationManager + - value: home_location,manager,company + name: HomeLocationManagerCompany + - value: home_location,manager,company,pay_group + name: HomeLocationManagerCompanyPayGroup + - value: home_location,manager,pay_group + name: HomeLocationManagerPayGroup + - value: home_location,manager,team + name: HomeLocationManagerTeam + - value: home_location,manager,team,company + name: HomeLocationManagerTeamCompany + - value: home_location,manager,team,company,pay_group + name: HomeLocationManagerTeamCompanyPayGroup + - value: home_location,manager,team,pay_group + name: HomeLocationManagerTeamPayGroup + - value: home_location,pay_group + name: HomeLocationPayGroup + - value: home_location,team + name: HomeLocationTeam + - value: home_location,team,company + name: HomeLocationTeamCompany + - value: home_location,team,company,pay_group + name: HomeLocationTeamCompanyPayGroup + - value: home_location,team,pay_group + name: HomeLocationTeamPayGroup + - value: home_location,work_location + name: HomeLocationWorkLocation + - value: home_location,work_location,company + name: HomeLocationWorkLocationCompany + - value: home_location,work_location,company,pay_group + name: HomeLocationWorkLocationCompanyPayGroup + - value: home_location,work_location,manager + name: HomeLocationWorkLocationManager + - value: home_location,work_location,manager,company + name: HomeLocationWorkLocationManagerCompany + - value: home_location,work_location,manager,company,pay_group + name: HomeLocationWorkLocationManagerCompanyPayGroup + - value: home_location,work_location,manager,pay_group + name: HomeLocationWorkLocationManagerPayGroup + - value: home_location,work_location,manager,team + name: HomeLocationWorkLocationManagerTeam + - value: home_location,work_location,manager,team,company + name: HomeLocationWorkLocationManagerTeamCompany + - value: home_location,work_location,manager,team,company,pay_group + name: HomeLocationWorkLocationManagerTeamCompanyPayGroup + - value: home_location,work_location,manager,team,pay_group + name: HomeLocationWorkLocationManagerTeamPayGroup + - value: home_location,work_location,pay_group + name: HomeLocationWorkLocationPayGroup + - value: home_location,work_location,team + name: HomeLocationWorkLocationTeam + - value: home_location,work_location,team,company + name: HomeLocationWorkLocationTeamCompany + - value: home_location,work_location,team,company,pay_group + name: HomeLocationWorkLocationTeamCompanyPayGroup + - value: home_location,work_location,team,pay_group + name: HomeLocationWorkLocationTeamPayGroup + - manager + - value: manager,company + name: ManagerCompany + - value: manager,company,pay_group + name: ManagerCompanyPayGroup + - value: manager,pay_group + name: ManagerPayGroup + - value: manager,team + name: ManagerTeam + - value: manager,team,company + name: ManagerTeamCompany + - value: manager,team,company,pay_group + name: ManagerTeamCompanyPayGroup + - value: manager,team,pay_group + name: ManagerTeamPayGroup + - pay_group + - team + - value: team,company + name: TeamCompany + - value: team,company,pay_group + name: TeamCompanyPayGroup + - value: team,pay_group + name: TeamPayGroup + - work_location + - value: work_location,company + name: WorkLocationCompany + - value: work_location,company,pay_group + name: WorkLocationCompanyPayGroup + - value: work_location,manager + name: WorkLocationManager + - value: work_location,manager,company + name: WorkLocationManagerCompany + - value: work_location,manager,company,pay_group + name: WorkLocationManagerCompanyPayGroup + - value: work_location,manager,pay_group + name: WorkLocationManagerPayGroup + - value: work_location,manager,team + name: WorkLocationManagerTeam + - value: work_location,manager,team,company + name: WorkLocationManagerTeamCompany + - value: work_location,manager,team,company,pay_group + name: WorkLocationManagerTeamCompanyPayGroup + - value: work_location,manager,team,pay_group + name: WorkLocationManagerTeamPayGroup + - value: work_location,pay_group + name: WorkLocationPayGroup + - value: work_location,team + name: WorkLocationTeam + - value: work_location,team,company + name: WorkLocationTeamCompany + - value: work_location,team,company,pay_group + name: WorkLocationTeamCompanyPayGroup + - value: work_location,team,pay_group + name: WorkLocationTeamPayGroup + source: + openapi: openapi/openapi.yml + EmployeesListRequestRemoteFields: + enum: + - employment_status + - value: employment_status,ethnicity + name: EmploymentStatusEthnicity + - value: employment_status,ethnicity,gender + name: EmploymentStatusEthnicityGender + - value: employment_status,ethnicity,gender,marital_status + name: EmploymentStatusEthnicityGenderMaritalStatus + - value: employment_status,ethnicity,marital_status + name: EmploymentStatusEthnicityMaritalStatus + - value: employment_status,gender + name: EmploymentStatusGender + - value: employment_status,gender,marital_status + name: EmploymentStatusGenderMaritalStatus + - value: employment_status,marital_status + name: EmploymentStatusMaritalStatus + - ethnicity + - value: ethnicity,gender + name: EthnicityGender + - value: ethnicity,gender,marital_status + name: EthnicityGenderMaritalStatus + - value: ethnicity,marital_status + name: EthnicityMaritalStatus + - gender + - value: gender,marital_status + name: GenderMaritalStatus + - marital_status + source: + openapi: openapi/openapi.yml + EmployeesListRequestShowEnumOrigins: + enum: + - employment_status + - value: employment_status,ethnicity + name: EmploymentStatusEthnicity + - value: employment_status,ethnicity,gender + name: EmploymentStatusEthnicityGender + - value: employment_status,ethnicity,gender,marital_status + name: EmploymentStatusEthnicityGenderMaritalStatus + - value: employment_status,ethnicity,marital_status + name: EmploymentStatusEthnicityMaritalStatus + - value: employment_status,gender + name: EmploymentStatusGender + - value: employment_status,gender,marital_status + name: EmploymentStatusGenderMaritalStatus + - value: employment_status,marital_status + name: EmploymentStatusMaritalStatus + - ethnicity + - value: ethnicity,gender + name: EthnicityGender + - value: ethnicity,gender,marital_status + name: EthnicityGenderMaritalStatus + - value: ethnicity,marital_status + name: EthnicityMaritalStatus + - gender + - value: gender,marital_status + name: GenderMaritalStatus + - marital_status + source: + openapi: openapi/openapi.yml + EmployeesRetrieveRequestExpand: + enum: + - company + - value: company,pay_group + name: CompanyPayGroup + - employments + - value: employments,company + name: EmploymentsCompany + - value: employments,company,pay_group + name: EmploymentsCompanyPayGroup + - value: employments,groups + name: EmploymentsGroups + - value: employments,groups,company + name: EmploymentsGroupsCompany + - value: employments,groups,company,pay_group + name: EmploymentsGroupsCompanyPayGroup + - value: employments,groups,home_location + name: EmploymentsGroupsHomeLocation + - value: employments,groups,home_location,company + name: EmploymentsGroupsHomeLocationCompany + - value: employments,groups,home_location,company,pay_group + name: EmploymentsGroupsHomeLocationCompanyPayGroup + - value: employments,groups,home_location,manager + name: EmploymentsGroupsHomeLocationManager + - value: employments,groups,home_location,manager,company + name: EmploymentsGroupsHomeLocationManagerCompany + - value: employments,groups,home_location,manager,company,pay_group + name: EmploymentsGroupsHomeLocationManagerCompanyPayGroup + - value: employments,groups,home_location,manager,pay_group + name: EmploymentsGroupsHomeLocationManagerPayGroup + - value: employments,groups,home_location,manager,team + name: EmploymentsGroupsHomeLocationManagerTeam + - value: employments,groups,home_location,manager,team,company + name: EmploymentsGroupsHomeLocationManagerTeamCompany + - value: employments,groups,home_location,manager,team,company,pay_group + name: EmploymentsGroupsHomeLocationManagerTeamCompanyPayGroup + - value: employments,groups,home_location,manager,team,pay_group + name: EmploymentsGroupsHomeLocationManagerTeamPayGroup + - value: employments,groups,home_location,pay_group + name: EmploymentsGroupsHomeLocationPayGroup + - value: employments,groups,home_location,team + name: EmploymentsGroupsHomeLocationTeam + - value: employments,groups,home_location,team,company + name: EmploymentsGroupsHomeLocationTeamCompany + - value: employments,groups,home_location,team,company,pay_group + name: EmploymentsGroupsHomeLocationTeamCompanyPayGroup + - value: employments,groups,home_location,team,pay_group + name: EmploymentsGroupsHomeLocationTeamPayGroup + - value: employments,groups,home_location,work_location + name: EmploymentsGroupsHomeLocationWorkLocation + - value: employments,groups,home_location,work_location,company + name: EmploymentsGroupsHomeLocationWorkLocationCompany + - value: employments,groups,home_location,work_location,company,pay_group + name: EmploymentsGroupsHomeLocationWorkLocationCompanyPayGroup + - value: employments,groups,home_location,work_location,manager + name: EmploymentsGroupsHomeLocationWorkLocationManager + - value: employments,groups,home_location,work_location,manager,company + name: EmploymentsGroupsHomeLocationWorkLocationManagerCompany + - value: >- + employments,groups,home_location,work_location,manager,company,pay_group + name: EmploymentsGroupsHomeLocationWorkLocationManagerCompanyPayGroup + - value: employments,groups,home_location,work_location,manager,pay_group + name: EmploymentsGroupsHomeLocationWorkLocationManagerPayGroup + - value: employments,groups,home_location,work_location,manager,team + name: EmploymentsGroupsHomeLocationWorkLocationManagerTeam + - value: employments,groups,home_location,work_location,manager,team,company + name: EmploymentsGroupsHomeLocationWorkLocationManagerTeamCompany + - value: >- + employments,groups,home_location,work_location,manager,team,company,pay_group + name: EmploymentsGroupsHomeLocationWorkLocationManagerTeamCompanyPayGroup + - value: employments,groups,home_location,work_location,manager,team,pay_group + name: EmploymentsGroupsHomeLocationWorkLocationManagerTeamPayGroup + - value: employments,groups,home_location,work_location,pay_group + name: EmploymentsGroupsHomeLocationWorkLocationPayGroup + - value: employments,groups,home_location,work_location,team + name: EmploymentsGroupsHomeLocationWorkLocationTeam + - value: employments,groups,home_location,work_location,team,company + name: EmploymentsGroupsHomeLocationWorkLocationTeamCompany + - value: employments,groups,home_location,work_location,team,company,pay_group + name: EmploymentsGroupsHomeLocationWorkLocationTeamCompanyPayGroup + - value: employments,groups,home_location,work_location,team,pay_group + name: EmploymentsGroupsHomeLocationWorkLocationTeamPayGroup + - value: employments,groups,manager + name: EmploymentsGroupsManager + - value: employments,groups,manager,company + name: EmploymentsGroupsManagerCompany + - value: employments,groups,manager,company,pay_group + name: EmploymentsGroupsManagerCompanyPayGroup + - value: employments,groups,manager,pay_group + name: EmploymentsGroupsManagerPayGroup + - value: employments,groups,manager,team + name: EmploymentsGroupsManagerTeam + - value: employments,groups,manager,team,company + name: EmploymentsGroupsManagerTeamCompany + - value: employments,groups,manager,team,company,pay_group + name: EmploymentsGroupsManagerTeamCompanyPayGroup + - value: employments,groups,manager,team,pay_group + name: EmploymentsGroupsManagerTeamPayGroup + - value: employments,groups,pay_group + name: EmploymentsGroupsPayGroup + - value: employments,groups,team + name: EmploymentsGroupsTeam + - value: employments,groups,team,company + name: EmploymentsGroupsTeamCompany + - value: employments,groups,team,company,pay_group + name: EmploymentsGroupsTeamCompanyPayGroup + - value: employments,groups,team,pay_group + name: EmploymentsGroupsTeamPayGroup + - value: employments,groups,work_location + name: EmploymentsGroupsWorkLocation + - value: employments,groups,work_location,company + name: EmploymentsGroupsWorkLocationCompany + - value: employments,groups,work_location,company,pay_group + name: EmploymentsGroupsWorkLocationCompanyPayGroup + - value: employments,groups,work_location,manager + name: EmploymentsGroupsWorkLocationManager + - value: employments,groups,work_location,manager,company + name: EmploymentsGroupsWorkLocationManagerCompany + - value: employments,groups,work_location,manager,company,pay_group + name: EmploymentsGroupsWorkLocationManagerCompanyPayGroup + - value: employments,groups,work_location,manager,pay_group + name: EmploymentsGroupsWorkLocationManagerPayGroup + - value: employments,groups,work_location,manager,team + name: EmploymentsGroupsWorkLocationManagerTeam + - value: employments,groups,work_location,manager,team,company + name: EmploymentsGroupsWorkLocationManagerTeamCompany + - value: employments,groups,work_location,manager,team,company,pay_group + name: EmploymentsGroupsWorkLocationManagerTeamCompanyPayGroup + - value: employments,groups,work_location,manager,team,pay_group + name: EmploymentsGroupsWorkLocationManagerTeamPayGroup + - value: employments,groups,work_location,pay_group + name: EmploymentsGroupsWorkLocationPayGroup + - value: employments,groups,work_location,team + name: EmploymentsGroupsWorkLocationTeam + - value: employments,groups,work_location,team,company + name: EmploymentsGroupsWorkLocationTeamCompany + - value: employments,groups,work_location,team,company,pay_group + name: EmploymentsGroupsWorkLocationTeamCompanyPayGroup + - value: employments,groups,work_location,team,pay_group + name: EmploymentsGroupsWorkLocationTeamPayGroup + - value: employments,home_location + name: EmploymentsHomeLocation + - value: employments,home_location,company + name: EmploymentsHomeLocationCompany + - value: employments,home_location,company,pay_group + name: EmploymentsHomeLocationCompanyPayGroup + - value: employments,home_location,manager + name: EmploymentsHomeLocationManager + - value: employments,home_location,manager,company + name: EmploymentsHomeLocationManagerCompany + - value: employments,home_location,manager,company,pay_group + name: EmploymentsHomeLocationManagerCompanyPayGroup + - value: employments,home_location,manager,pay_group + name: EmploymentsHomeLocationManagerPayGroup + - value: employments,home_location,manager,team + name: EmploymentsHomeLocationManagerTeam + - value: employments,home_location,manager,team,company + name: EmploymentsHomeLocationManagerTeamCompany + - value: employments,home_location,manager,team,company,pay_group + name: EmploymentsHomeLocationManagerTeamCompanyPayGroup + - value: employments,home_location,manager,team,pay_group + name: EmploymentsHomeLocationManagerTeamPayGroup + - value: employments,home_location,pay_group + name: EmploymentsHomeLocationPayGroup + - value: employments,home_location,team + name: EmploymentsHomeLocationTeam + - value: employments,home_location,team,company + name: EmploymentsHomeLocationTeamCompany + - value: employments,home_location,team,company,pay_group + name: EmploymentsHomeLocationTeamCompanyPayGroup + - value: employments,home_location,team,pay_group + name: EmploymentsHomeLocationTeamPayGroup + - value: employments,home_location,work_location + name: EmploymentsHomeLocationWorkLocation + - value: employments,home_location,work_location,company + name: EmploymentsHomeLocationWorkLocationCompany + - value: employments,home_location,work_location,company,pay_group + name: EmploymentsHomeLocationWorkLocationCompanyPayGroup + - value: employments,home_location,work_location,manager + name: EmploymentsHomeLocationWorkLocationManager + - value: employments,home_location,work_location,manager,company + name: EmploymentsHomeLocationWorkLocationManagerCompany + - value: employments,home_location,work_location,manager,company,pay_group + name: EmploymentsHomeLocationWorkLocationManagerCompanyPayGroup + - value: employments,home_location,work_location,manager,pay_group + name: EmploymentsHomeLocationWorkLocationManagerPayGroup + - value: employments,home_location,work_location,manager,team + name: EmploymentsHomeLocationWorkLocationManagerTeam + - value: employments,home_location,work_location,manager,team,company + name: EmploymentsHomeLocationWorkLocationManagerTeamCompany + - value: employments,home_location,work_location,manager,team,company,pay_group + name: EmploymentsHomeLocationWorkLocationManagerTeamCompanyPayGroup + - value: employments,home_location,work_location,manager,team,pay_group + name: EmploymentsHomeLocationWorkLocationManagerTeamPayGroup + - value: employments,home_location,work_location,pay_group + name: EmploymentsHomeLocationWorkLocationPayGroup + - value: employments,home_location,work_location,team + name: EmploymentsHomeLocationWorkLocationTeam + - value: employments,home_location,work_location,team,company + name: EmploymentsHomeLocationWorkLocationTeamCompany + - value: employments,home_location,work_location,team,company,pay_group + name: EmploymentsHomeLocationWorkLocationTeamCompanyPayGroup + - value: employments,home_location,work_location,team,pay_group + name: EmploymentsHomeLocationWorkLocationTeamPayGroup + - value: employments,manager + name: EmploymentsManager + - value: employments,manager,company + name: EmploymentsManagerCompany + - value: employments,manager,company,pay_group + name: EmploymentsManagerCompanyPayGroup + - value: employments,manager,pay_group + name: EmploymentsManagerPayGroup + - value: employments,manager,team + name: EmploymentsManagerTeam + - value: employments,manager,team,company + name: EmploymentsManagerTeamCompany + - value: employments,manager,team,company,pay_group + name: EmploymentsManagerTeamCompanyPayGroup + - value: employments,manager,team,pay_group + name: EmploymentsManagerTeamPayGroup + - value: employments,pay_group + name: EmploymentsPayGroup + - value: employments,team + name: EmploymentsTeam + - value: employments,team,company + name: EmploymentsTeamCompany + - value: employments,team,company,pay_group + name: EmploymentsTeamCompanyPayGroup + - value: employments,team,pay_group + name: EmploymentsTeamPayGroup + - value: employments,work_location + name: EmploymentsWorkLocation + - value: employments,work_location,company + name: EmploymentsWorkLocationCompany + - value: employments,work_location,company,pay_group + name: EmploymentsWorkLocationCompanyPayGroup + - value: employments,work_location,manager + name: EmploymentsWorkLocationManager + - value: employments,work_location,manager,company + name: EmploymentsWorkLocationManagerCompany + - value: employments,work_location,manager,company,pay_group + name: EmploymentsWorkLocationManagerCompanyPayGroup + - value: employments,work_location,manager,pay_group + name: EmploymentsWorkLocationManagerPayGroup + - value: employments,work_location,manager,team + name: EmploymentsWorkLocationManagerTeam + - value: employments,work_location,manager,team,company + name: EmploymentsWorkLocationManagerTeamCompany + - value: employments,work_location,manager,team,company,pay_group + name: EmploymentsWorkLocationManagerTeamCompanyPayGroup + - value: employments,work_location,manager,team,pay_group + name: EmploymentsWorkLocationManagerTeamPayGroup + - value: employments,work_location,pay_group + name: EmploymentsWorkLocationPayGroup + - value: employments,work_location,team + name: EmploymentsWorkLocationTeam + - value: employments,work_location,team,company + name: EmploymentsWorkLocationTeamCompany + - value: employments,work_location,team,company,pay_group + name: EmploymentsWorkLocationTeamCompanyPayGroup + - value: employments,work_location,team,pay_group + name: EmploymentsWorkLocationTeamPayGroup + - groups + - value: groups,company + name: GroupsCompany + - value: groups,company,pay_group + name: GroupsCompanyPayGroup + - value: groups,home_location + name: GroupsHomeLocation + - value: groups,home_location,company + name: GroupsHomeLocationCompany + - value: groups,home_location,company,pay_group + name: GroupsHomeLocationCompanyPayGroup + - value: groups,home_location,manager + name: GroupsHomeLocationManager + - value: groups,home_location,manager,company + name: GroupsHomeLocationManagerCompany + - value: groups,home_location,manager,company,pay_group + name: GroupsHomeLocationManagerCompanyPayGroup + - value: groups,home_location,manager,pay_group + name: GroupsHomeLocationManagerPayGroup + - value: groups,home_location,manager,team + name: GroupsHomeLocationManagerTeam + - value: groups,home_location,manager,team,company + name: GroupsHomeLocationManagerTeamCompany + - value: groups,home_location,manager,team,company,pay_group + name: GroupsHomeLocationManagerTeamCompanyPayGroup + - value: groups,home_location,manager,team,pay_group + name: GroupsHomeLocationManagerTeamPayGroup + - value: groups,home_location,pay_group + name: GroupsHomeLocationPayGroup + - value: groups,home_location,team + name: GroupsHomeLocationTeam + - value: groups,home_location,team,company + name: GroupsHomeLocationTeamCompany + - value: groups,home_location,team,company,pay_group + name: GroupsHomeLocationTeamCompanyPayGroup + - value: groups,home_location,team,pay_group + name: GroupsHomeLocationTeamPayGroup + - value: groups,home_location,work_location + name: GroupsHomeLocationWorkLocation + - value: groups,home_location,work_location,company + name: GroupsHomeLocationWorkLocationCompany + - value: groups,home_location,work_location,company,pay_group + name: GroupsHomeLocationWorkLocationCompanyPayGroup + - value: groups,home_location,work_location,manager + name: GroupsHomeLocationWorkLocationManager + - value: groups,home_location,work_location,manager,company + name: GroupsHomeLocationWorkLocationManagerCompany + - value: groups,home_location,work_location,manager,company,pay_group + name: GroupsHomeLocationWorkLocationManagerCompanyPayGroup + - value: groups,home_location,work_location,manager,pay_group + name: GroupsHomeLocationWorkLocationManagerPayGroup + - value: groups,home_location,work_location,manager,team + name: GroupsHomeLocationWorkLocationManagerTeam + - value: groups,home_location,work_location,manager,team,company + name: GroupsHomeLocationWorkLocationManagerTeamCompany + - value: groups,home_location,work_location,manager,team,company,pay_group + name: GroupsHomeLocationWorkLocationManagerTeamCompanyPayGroup + - value: groups,home_location,work_location,manager,team,pay_group + name: GroupsHomeLocationWorkLocationManagerTeamPayGroup + - value: groups,home_location,work_location,pay_group + name: GroupsHomeLocationWorkLocationPayGroup + - value: groups,home_location,work_location,team + name: GroupsHomeLocationWorkLocationTeam + - value: groups,home_location,work_location,team,company + name: GroupsHomeLocationWorkLocationTeamCompany + - value: groups,home_location,work_location,team,company,pay_group + name: GroupsHomeLocationWorkLocationTeamCompanyPayGroup + - value: groups,home_location,work_location,team,pay_group + name: GroupsHomeLocationWorkLocationTeamPayGroup + - value: groups,manager + name: GroupsManager + - value: groups,manager,company + name: GroupsManagerCompany + - value: groups,manager,company,pay_group + name: GroupsManagerCompanyPayGroup + - value: groups,manager,pay_group + name: GroupsManagerPayGroup + - value: groups,manager,team + name: GroupsManagerTeam + - value: groups,manager,team,company + name: GroupsManagerTeamCompany + - value: groups,manager,team,company,pay_group + name: GroupsManagerTeamCompanyPayGroup + - value: groups,manager,team,pay_group + name: GroupsManagerTeamPayGroup + - value: groups,pay_group + name: GroupsPayGroup + - value: groups,team + name: GroupsTeam + - value: groups,team,company + name: GroupsTeamCompany + - value: groups,team,company,pay_group + name: GroupsTeamCompanyPayGroup + - value: groups,team,pay_group + name: GroupsTeamPayGroup + - value: groups,work_location + name: GroupsWorkLocation + - value: groups,work_location,company + name: GroupsWorkLocationCompany + - value: groups,work_location,company,pay_group + name: GroupsWorkLocationCompanyPayGroup + - value: groups,work_location,manager + name: GroupsWorkLocationManager + - value: groups,work_location,manager,company + name: GroupsWorkLocationManagerCompany + - value: groups,work_location,manager,company,pay_group + name: GroupsWorkLocationManagerCompanyPayGroup + - value: groups,work_location,manager,pay_group + name: GroupsWorkLocationManagerPayGroup + - value: groups,work_location,manager,team + name: GroupsWorkLocationManagerTeam + - value: groups,work_location,manager,team,company + name: GroupsWorkLocationManagerTeamCompany + - value: groups,work_location,manager,team,company,pay_group + name: GroupsWorkLocationManagerTeamCompanyPayGroup + - value: groups,work_location,manager,team,pay_group + name: GroupsWorkLocationManagerTeamPayGroup + - value: groups,work_location,pay_group + name: GroupsWorkLocationPayGroup + - value: groups,work_location,team + name: GroupsWorkLocationTeam + - value: groups,work_location,team,company + name: GroupsWorkLocationTeamCompany + - value: groups,work_location,team,company,pay_group + name: GroupsWorkLocationTeamCompanyPayGroup + - value: groups,work_location,team,pay_group + name: GroupsWorkLocationTeamPayGroup + - home_location + - value: home_location,company + name: HomeLocationCompany + - value: home_location,company,pay_group + name: HomeLocationCompanyPayGroup + - value: home_location,manager + name: HomeLocationManager + - value: home_location,manager,company + name: HomeLocationManagerCompany + - value: home_location,manager,company,pay_group + name: HomeLocationManagerCompanyPayGroup + - value: home_location,manager,pay_group + name: HomeLocationManagerPayGroup + - value: home_location,manager,team + name: HomeLocationManagerTeam + - value: home_location,manager,team,company + name: HomeLocationManagerTeamCompany + - value: home_location,manager,team,company,pay_group + name: HomeLocationManagerTeamCompanyPayGroup + - value: home_location,manager,team,pay_group + name: HomeLocationManagerTeamPayGroup + - value: home_location,pay_group + name: HomeLocationPayGroup + - value: home_location,team + name: HomeLocationTeam + - value: home_location,team,company + name: HomeLocationTeamCompany + - value: home_location,team,company,pay_group + name: HomeLocationTeamCompanyPayGroup + - value: home_location,team,pay_group + name: HomeLocationTeamPayGroup + - value: home_location,work_location + name: HomeLocationWorkLocation + - value: home_location,work_location,company + name: HomeLocationWorkLocationCompany + - value: home_location,work_location,company,pay_group + name: HomeLocationWorkLocationCompanyPayGroup + - value: home_location,work_location,manager + name: HomeLocationWorkLocationManager + - value: home_location,work_location,manager,company + name: HomeLocationWorkLocationManagerCompany + - value: home_location,work_location,manager,company,pay_group + name: HomeLocationWorkLocationManagerCompanyPayGroup + - value: home_location,work_location,manager,pay_group + name: HomeLocationWorkLocationManagerPayGroup + - value: home_location,work_location,manager,team + name: HomeLocationWorkLocationManagerTeam + - value: home_location,work_location,manager,team,company + name: HomeLocationWorkLocationManagerTeamCompany + - value: home_location,work_location,manager,team,company,pay_group + name: HomeLocationWorkLocationManagerTeamCompanyPayGroup + - value: home_location,work_location,manager,team,pay_group + name: HomeLocationWorkLocationManagerTeamPayGroup + - value: home_location,work_location,pay_group + name: HomeLocationWorkLocationPayGroup + - value: home_location,work_location,team + name: HomeLocationWorkLocationTeam + - value: home_location,work_location,team,company + name: HomeLocationWorkLocationTeamCompany + - value: home_location,work_location,team,company,pay_group + name: HomeLocationWorkLocationTeamCompanyPayGroup + - value: home_location,work_location,team,pay_group + name: HomeLocationWorkLocationTeamPayGroup + - manager + - value: manager,company + name: ManagerCompany + - value: manager,company,pay_group + name: ManagerCompanyPayGroup + - value: manager,pay_group + name: ManagerPayGroup + - value: manager,team + name: ManagerTeam + - value: manager,team,company + name: ManagerTeamCompany + - value: manager,team,company,pay_group + name: ManagerTeamCompanyPayGroup + - value: manager,team,pay_group + name: ManagerTeamPayGroup + - pay_group + - team + - value: team,company + name: TeamCompany + - value: team,company,pay_group + name: TeamCompanyPayGroup + - value: team,pay_group + name: TeamPayGroup + - work_location + - value: work_location,company + name: WorkLocationCompany + - value: work_location,company,pay_group + name: WorkLocationCompanyPayGroup + - value: work_location,manager + name: WorkLocationManager + - value: work_location,manager,company + name: WorkLocationManagerCompany + - value: work_location,manager,company,pay_group + name: WorkLocationManagerCompanyPayGroup + - value: work_location,manager,pay_group + name: WorkLocationManagerPayGroup + - value: work_location,manager,team + name: WorkLocationManagerTeam + - value: work_location,manager,team,company + name: WorkLocationManagerTeamCompany + - value: work_location,manager,team,company,pay_group + name: WorkLocationManagerTeamCompanyPayGroup + - value: work_location,manager,team,pay_group + name: WorkLocationManagerTeamPayGroup + - value: work_location,pay_group + name: WorkLocationPayGroup + - value: work_location,team + name: WorkLocationTeam + - value: work_location,team,company + name: WorkLocationTeamCompany + - value: work_location,team,company,pay_group + name: WorkLocationTeamCompanyPayGroup + - value: work_location,team,pay_group + name: WorkLocationTeamPayGroup + source: + openapi: openapi/openapi.yml + EmployeesRetrieveRequestRemoteFields: + enum: + - employment_status + - value: employment_status,ethnicity + name: EmploymentStatusEthnicity + - value: employment_status,ethnicity,gender + name: EmploymentStatusEthnicityGender + - value: employment_status,ethnicity,gender,marital_status + name: EmploymentStatusEthnicityGenderMaritalStatus + - value: employment_status,ethnicity,marital_status + name: EmploymentStatusEthnicityMaritalStatus + - value: employment_status,gender + name: EmploymentStatusGender + - value: employment_status,gender,marital_status + name: EmploymentStatusGenderMaritalStatus + - value: employment_status,marital_status + name: EmploymentStatusMaritalStatus + - ethnicity + - value: ethnicity,gender + name: EthnicityGender + - value: ethnicity,gender,marital_status + name: EthnicityGenderMaritalStatus + - value: ethnicity,marital_status + name: EthnicityMaritalStatus + - gender + - value: gender,marital_status + name: GenderMaritalStatus + - marital_status + source: + openapi: openapi/openapi.yml + EmployeesRetrieveRequestShowEnumOrigins: + enum: + - employment_status + - value: employment_status,ethnicity + name: EmploymentStatusEthnicity + - value: employment_status,ethnicity,gender + name: EmploymentStatusEthnicityGender + - value: employment_status,ethnicity,gender,marital_status + name: EmploymentStatusEthnicityGenderMaritalStatus + - value: employment_status,ethnicity,marital_status + name: EmploymentStatusEthnicityMaritalStatus + - value: employment_status,gender + name: EmploymentStatusGender + - value: employment_status,gender,marital_status + name: EmploymentStatusGenderMaritalStatus + - value: employment_status,marital_status + name: EmploymentStatusMaritalStatus + - ethnicity + - value: ethnicity,gender + name: EthnicityGender + - value: ethnicity,gender,marital_status + name: EthnicityGenderMaritalStatus + - value: ethnicity,marital_status + name: EthnicityMaritalStatus + - gender + - value: gender,marital_status + name: GenderMaritalStatus + - marital_status + source: + openapi: openapi/openapi.yml + IgnoreCommonModelRequestReason: + discriminated: false + union: + - root.ReasonEnum + - string + source: + openapi: openapi/openapi.yml + inline: true +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/employees + method: GET + auth: true + docs: Returns a list of `Employee` objects. + source: + openapi: openapi/openapi.yml + request: + name: EmployeesListRequest + query-parameters: + company_id: + type: optional + docs: If provided, will only return employees for this company. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + display_full_name: + type: optional + docs: If provided, will only return employees with this display name. + employment_status: + type: optional + docs: >- + If provided, will only return employees with this employment + status. + + + * `ACTIVE` - ACTIVE + + * `PENDING` - PENDING + + * `INACTIVE` - INACTIVE + employment_type: + type: optional + docs: >- + If provided, will only return employees that have an employment of + the specified employment_type. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + first_name: + type: optional + docs: If provided, will only return employees with this first name. + groups: + type: optional + docs: >- + If provided, will only return employees matching the group ids; + multiple groups can be separated by commas. + home_location_id: + type: optional + docs: If provided, will only return employees for this home location. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_sensitive_fields: + type: optional + docs: >- + Whether to include sensitive fields (such as social security + numbers) in the response. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + job_title: + type: optional + docs: >- + If provided, will only return employees that have an employment of + the specified job_title. + last_name: + type: optional + docs: If provided, will only return employees with this last name. + manager_id: + type: optional + docs: If provided, will only return employees for this manager. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + pay_group_id: + type: optional + docs: If provided, will only return employees for this pay group + personal_email: + type: optional + docs: If provided, will only return Employees with this personal email + validation: + format: email + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + started_after: + type: optional + docs: >- + If provided, will only return employees that started after this + datetime. + started_before: + type: optional + docs: >- + If provided, will only return employees that started before this + datetime. + team_id: + type: optional + docs: If provided, will only return employees for this team. + terminated_after: + type: optional + docs: >- + If provided, will only return employees that were terminated after + this datetime. + terminated_before: + type: optional + docs: >- + If provided, will only return employees that were terminated + before this datetime. + work_email: + type: optional + docs: If provided, will only return Employees with this work email + validation: + format: email + work_location_id: + type: optional + docs: If provided, will only return employees for this location. + response: + docs: '' + type: root.PaginatedEmployeeList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_number: '2' + company: company + first_name: Greg + last_name: Hirsch + preferred_name: Greg the egg + display_full_name: Cousin Greg Hirsch + username: cousingreg + groups: + - 21a54124-397f-494d-985e-3c5b330b8a68 + work_email: greg@merge.dev + personal_email: greg@gmail.com + mobile_phone_number: '+1234567890' + employments: + - 17a54124-287f-494d-965e-3c5b330c9a68 + home_location: home_location + work_location: work_location + manager: manager + team: team + pay_group: pay_group + ssn: '1234567890' + gender: MALE + ethnicity: AMERICAN_INDIAN_OR_ALASKA_NATIVE + marital_status: SINGLE + date_of_birth: '1990-11-10T00:00:00Z' + hire_date: '2020-10-10T00:00:00Z' + start_date: '2020-10-11T00:00:00Z' + remote_created_at: '2020-10-11T00:00:00Z' + employment_status: ACTIVE + termination_date: '2021-10-12T00:00:00Z' + avatar: http://alturl.com/h2h8m + custom_fields: + key: value + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /people + data: + - Varies by platform + create: + path: /hris/v1/employees + method: POST + auth: true + docs: Creates an `Employee` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: EmployeeEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.EmployeeRequest + content-type: application/json + response: + docs: '' + type: root.EmployeeResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_number: '2' + company: company + first_name: Greg + last_name: Hirsch + preferred_name: Greg the egg + display_full_name: Cousin Greg Hirsch + username: cousingreg + groups: + - 21a54124-397f-494d-985e-3c5b330b8a68 + work_email: greg@merge.dev + personal_email: greg@gmail.com + mobile_phone_number: '+1234567890' + employments: + - 17a54124-287f-494d-965e-3c5b330c9a68 + home_location: home_location + work_location: work_location + manager: manager + team: team + pay_group: pay_group + ssn: '1234567890' + gender: MALE + ethnicity: AMERICAN_INDIAN_OR_ALASKA_NATIVE + marital_status: SINGLE + date_of_birth: '1990-11-10T00:00:00Z' + hire_date: '2020-10-10T00:00:00Z' + start_date: '2020-10-11T00:00:00Z' + remote_created_at: '2020-10-11T00:00:00Z' + employment_status: ACTIVE + termination_date: '2021-10-12T00:00:00Z' + avatar: http://alturl.com/h2h8m + custom_fields: + key: value + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /people + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /hris/v1/employees/{id} + method: GET + auth: true + docs: Returns an `Employee` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: EmployeesRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_sensitive_fields: + type: optional + docs: >- + Whether to include sensitive fields (such as social security + numbers) in the response. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.Employee + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee_number: '2' + company: company + first_name: Greg + last_name: Hirsch + preferred_name: Greg the egg + display_full_name: Cousin Greg Hirsch + username: cousingreg + groups: + - 21a54124-397f-494d-985e-3c5b330b8a68 + work_email: greg@merge.dev + personal_email: greg@gmail.com + mobile_phone_number: '+1234567890' + employments: + - 17a54124-287f-494d-965e-3c5b330c9a68 + home_location: home_location + work_location: work_location + manager: manager + team: team + pay_group: pay_group + ssn: '1234567890' + gender: MALE + ethnicity: AMERICAN_INDIAN_OR_ALASKA_NATIVE + marital_status: SINGLE + date_of_birth: '1990-11-10T00:00:00Z' + hire_date: '2020-10-10T00:00:00Z' + start_date: '2020-10-11T00:00:00Z' + remote_created_at: '2020-10-11T00:00:00Z' + employment_status: ACTIVE + termination_date: '2021-10-12T00:00:00Z' + avatar: http://alturl.com/h2h8m + custom_fields: + key: value + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /people + data: + - Varies by platform + ignoreCreate: + path: /hris/v1/employees/ignore/{model_id} + method: POST + auth: true + docs: >- + Ignores a specific row based on the `model_id` in the url. These records + will have their properties set to null, and will not be updated in + future syncs. The "reason" and "message" fields in the request body will + be stored for audit purposes. + source: + openapi: openapi/openapi.yml + path-parameters: + model_id: string + request: + name: IgnoreCommonModelRequest + body: + properties: + reason: IgnoreCommonModelRequestReason + message: + type: optional + validation: + minLength: 1 + maxLength: 256 + content-type: application/json + examples: + - path-parameters: + model_id: model_id + headers: {} + request: + reason: GENERAL_CUSTOMER_REQUEST + metaPostRetrieve: + path: /hris/v1/employees/meta/post + method: GET + auth: true + docs: Returns metadata for `Employee` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/employerBenefits.yml b/.mock/definition/hris/employerBenefits.yml new file mode 100644 index 000000000..f110617fe --- /dev/null +++ b/.mock/definition/hris/employerBenefits.yml @@ -0,0 +1,140 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/employer-benefits + method: GET + auth: true + docs: Returns a list of `EmployerBenefit` objects. + source: + openapi: openapi/openapi.yml + request: + name: EmployerBenefitsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedEmployerBenefitList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 025fjlc6-6000-430a-848e-aafacbadf4fele + remote_id: '19202939' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + benefit_plan_type: MEDICAL + name: Kaiser Permanente Medical Plan + description: HDHP Silver Plan + deduction_code: COL + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + retrieve: + path: /hris/v1/employer-benefits/{id} + method: GET + auth: true + docs: Returns an `EmployerBenefit` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: EmployerBenefitsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.EmployerBenefit + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 025fjlc6-6000-430a-848e-aafacbadf4fele + remote_id: '19202939' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + benefit_plan_type: MEDICAL + name: Kaiser Permanente Medical Plan + description: HDHP Silver Plan + deduction_code: COL + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/employments.yml b/.mock/definition/hris/employments.yml new file mode 100644 index 000000000..f676c7df4 --- /dev/null +++ b/.mock/definition/hris/employments.yml @@ -0,0 +1,337 @@ +types: + EmploymentsListRequestExpand: + enum: + - employee + - value: employee,pay_group + name: EmployeePayGroup + - pay_group + source: + openapi: openapi/openapi.yml + EmploymentsListRequestOrderBy: + enum: + - value: '-effective_date' + name: EffectiveDateDescending + - value: effective_date + name: EffectiveDateAscending + source: + openapi: openapi/openapi.yml + EmploymentsListRequestRemoteFields: + enum: + - employment_type + - value: employment_type,flsa_status + name: EmploymentTypeFlsaStatus + - value: employment_type,flsa_status,pay_frequency + name: EmploymentTypeFlsaStatusPayFrequency + - value: employment_type,flsa_status,pay_frequency,pay_period + name: EmploymentTypeFlsaStatusPayFrequencyPayPeriod + - value: employment_type,flsa_status,pay_period + name: EmploymentTypeFlsaStatusPayPeriod + - value: employment_type,pay_frequency + name: EmploymentTypePayFrequency + - value: employment_type,pay_frequency,pay_period + name: EmploymentTypePayFrequencyPayPeriod + - value: employment_type,pay_period + name: EmploymentTypePayPeriod + - flsa_status + - value: flsa_status,pay_frequency + name: FlsaStatusPayFrequency + - value: flsa_status,pay_frequency,pay_period + name: FlsaStatusPayFrequencyPayPeriod + - value: flsa_status,pay_period + name: FlsaStatusPayPeriod + - pay_frequency + - value: pay_frequency,pay_period + name: PayFrequencyPayPeriod + - pay_period + source: + openapi: openapi/openapi.yml + EmploymentsListRequestShowEnumOrigins: + enum: + - employment_type + - value: employment_type,flsa_status + name: EmploymentTypeFlsaStatus + - value: employment_type,flsa_status,pay_frequency + name: EmploymentTypeFlsaStatusPayFrequency + - value: employment_type,flsa_status,pay_frequency,pay_period + name: EmploymentTypeFlsaStatusPayFrequencyPayPeriod + - value: employment_type,flsa_status,pay_period + name: EmploymentTypeFlsaStatusPayPeriod + - value: employment_type,pay_frequency + name: EmploymentTypePayFrequency + - value: employment_type,pay_frequency,pay_period + name: EmploymentTypePayFrequencyPayPeriod + - value: employment_type,pay_period + name: EmploymentTypePayPeriod + - flsa_status + - value: flsa_status,pay_frequency + name: FlsaStatusPayFrequency + - value: flsa_status,pay_frequency,pay_period + name: FlsaStatusPayFrequencyPayPeriod + - value: flsa_status,pay_period + name: FlsaStatusPayPeriod + - pay_frequency + - value: pay_frequency,pay_period + name: PayFrequencyPayPeriod + - pay_period + source: + openapi: openapi/openapi.yml + EmploymentsRetrieveRequestExpand: + enum: + - employee + - value: employee,pay_group + name: EmployeePayGroup + - pay_group + source: + openapi: openapi/openapi.yml + EmploymentsRetrieveRequestRemoteFields: + enum: + - employment_type + - value: employment_type,flsa_status + name: EmploymentTypeFlsaStatus + - value: employment_type,flsa_status,pay_frequency + name: EmploymentTypeFlsaStatusPayFrequency + - value: employment_type,flsa_status,pay_frequency,pay_period + name: EmploymentTypeFlsaStatusPayFrequencyPayPeriod + - value: employment_type,flsa_status,pay_period + name: EmploymentTypeFlsaStatusPayPeriod + - value: employment_type,pay_frequency + name: EmploymentTypePayFrequency + - value: employment_type,pay_frequency,pay_period + name: EmploymentTypePayFrequencyPayPeriod + - value: employment_type,pay_period + name: EmploymentTypePayPeriod + - flsa_status + - value: flsa_status,pay_frequency + name: FlsaStatusPayFrequency + - value: flsa_status,pay_frequency,pay_period + name: FlsaStatusPayFrequencyPayPeriod + - value: flsa_status,pay_period + name: FlsaStatusPayPeriod + - pay_frequency + - value: pay_frequency,pay_period + name: PayFrequencyPayPeriod + - pay_period + source: + openapi: openapi/openapi.yml + EmploymentsRetrieveRequestShowEnumOrigins: + enum: + - employment_type + - value: employment_type,flsa_status + name: EmploymentTypeFlsaStatus + - value: employment_type,flsa_status,pay_frequency + name: EmploymentTypeFlsaStatusPayFrequency + - value: employment_type,flsa_status,pay_frequency,pay_period + name: EmploymentTypeFlsaStatusPayFrequencyPayPeriod + - value: employment_type,flsa_status,pay_period + name: EmploymentTypeFlsaStatusPayPeriod + - value: employment_type,pay_frequency + name: EmploymentTypePayFrequency + - value: employment_type,pay_frequency,pay_period + name: EmploymentTypePayFrequencyPayPeriod + - value: employment_type,pay_period + name: EmploymentTypePayPeriod + - flsa_status + - value: flsa_status,pay_frequency + name: FlsaStatusPayFrequency + - value: flsa_status,pay_frequency,pay_period + name: FlsaStatusPayFrequencyPayPeriod + - value: flsa_status,pay_period + name: FlsaStatusPayPeriod + - pay_frequency + - value: pay_frequency,pay_period + name: PayFrequencyPayPeriod + - pay_period + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/employments + method: GET + auth: true + docs: Returns a list of `Employment` objects. + source: + openapi: openapi/openapi.yml + request: + name: EmploymentsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + employee_id: + type: optional + docs: If provided, will only return employments for this employee. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + order_by: + type: optional + docs: >- + Overrides the default ordering for this endpoint. Possible values + include: effective_date, -effective_date. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.PaginatedEmploymentList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 65d8ffd0-211b-4ba4-b85a-fbe2ce220982 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + job_title: Executive Assistant to Tom Wambsgans + pay_rate: 1.1 + pay_period: HOUR + pay_frequency: WEEKLY + pay_currency: XUA + pay_group: pay_group + flsa_status: EXEMPT + effective_date: '2023-10-06T18:42:34Z' + employment_type: FULL_TIME + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /jobs + data: + - Varies by platform + retrieve: + path: /hris/v1/employments/{id} + method: GET + auth: true + docs: Returns an `Employment` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: EmploymentsRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.Employment + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 65d8ffd0-211b-4ba4-b85a-fbe2ce220982 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + job_title: Executive Assistant to Tom Wambsgans + pay_rate: 1.1 + pay_period: HOUR + pay_frequency: WEEKLY + pay_currency: XUA + pay_group: pay_group + flsa_status: EXEMPT + effective_date: '2023-10-06T18:42:34Z' + employment_type: FULL_TIME + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /jobs + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/fieldMapping.yml b/.mock/definition/hris/fieldMapping.yml new file mode 100644 index 000000000..2c83b146d --- /dev/null +++ b/.mock/definition/hris/fieldMapping.yml @@ -0,0 +1,892 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + field_mappings_retrieve: + path: /hris/v1/field-mappings + method: GET + auth: true + docs: >- + Get all Field Mappings for this Linked Account. Field Mappings are + mappings between third-party Remote Fields and user defined Merge + fields. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: openapi/openapi.yml + request: + name: FieldMappingsRetrieveRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + response: + docs: '' + type: root.FieldMappingApiInstanceResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Benefit: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + EmployerBenefit: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Company: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + EmployeePayrollRun: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Employee: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Employment: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Location: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + PayrollRun: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Team: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + TimeOff: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + TimeOffBalance: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + BankInfo: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + PayGroup: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Group: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Dependent: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + TimesheetEntry: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + field_mappings_create: + path: /hris/v1/field-mappings + method: POST + auth: true + docs: >- + Create new Field Mappings that will be available after the next + scheduled sync. This will cause the next sync for this Linked Account to + sync **ALL** data from start. + source: + openapi: openapi/openapi.yml + request: + name: CreateFieldMappingRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + body: + properties: + target_field_name: + type: string + docs: >- + The name of the target field you want this remote field to map + to. + validation: + minLength: 1 + target_field_description: + type: string + docs: >- + The description of the target field you want this remote field + to map to. + validation: + minLength: 1 + remote_field_traversal_path: + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + type: list + remote_method: + type: string + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: string + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + common_model_name: + type: string + docs: >- + The name of the Common Model that the remote field corresponds + to in a given category. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.FieldMappingInstanceResponse + status-code: 201 + examples: + - headers: {} + request: + target_field_name: example_target_field_name + target_field_description: this is a example description of the target field + remote_field_traversal_path: + - example_remote_field + remote_method: GET + remote_url_path: /example-url-path + common_model_name: ExampleCommonModel + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_destroy: + path: /hris/v1/field-mappings/{field_mapping_id} + method: DELETE + auth: true + docs: >- + Deletes Field Mappings for a Linked Account. All data related to this + Field Mapping will be deleted and these changes will be reflected after + the next scheduled sync. This will cause the next sync for this Linked + Account to sync **ALL** data from start. + source: + openapi: openapi/openapi.yml + path-parameters: + field_mapping_id: string + response: + docs: '' + type: root.FieldMappingInstanceResponse + status-code: 204 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_partial_update: + path: /hris/v1/field-mappings/{field_mapping_id} + method: PATCH + auth: true + docs: >- + Create or update existing Field Mappings for a Linked Account. Changes + will be reflected after the next scheduled sync. This will cause the + next sync for this Linked Account to sync **ALL** data from start. + source: + openapi: openapi/openapi.yml + path-parameters: + field_mapping_id: string + request: + name: PatchedEditFieldMappingRequest + body: + properties: + remote_field_traversal_path: + type: optional> + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + remote_method: + type: optional + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: optional + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.FieldMappingInstanceResponse + status-code: 200 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + request: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + remote_fields_retrieve: + path: /hris/v1/remote-fields + method: GET + auth: true + docs: >- + Get all remote fields for a Linked Account. Remote fields are + third-party fields that are accessible after initial sync if remote_data + is enabled. You can use remote fields to override existing Merge fields + or map a new Merge field. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: openapi/openapi.yml + request: + name: RemoteFieldsRetrieveRequest + query-parameters: + common_models: + type: optional + docs: >- + A comma seperated list of Common Model names. If included, will + only return Remote Fields for those Common Models. + include_example_values: + type: optional + docs: >- + If true, will include example values, where available, for remote + fields in the 3rd party platform. These examples come from active + data from your customers. + response: + docs: '' + type: root.RemoteFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Benefit: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + EmployerBenefit: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Company: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + EmployeePayrollRun: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Employee: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Employment: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Location: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + PayrollRun: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Team: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + TimeOff: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + TimeOffBalance: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + BankInfo: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + PayGroup: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Group: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Dependent: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + TimesheetEntry: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + target_fields_retrieve: + path: /hris/v1/target-fields + method: GET + auth: true + docs: >- + Get all organization-wide Target Fields, this will not include any + Linked Account specific Target Fields. Organization-wide Target Fields + are additional fields appended to the Merge Common Model for all Linked + Accounts in a category. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.ExternalTargetFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Benefit: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + EmployerBenefit: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Company: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + EmployeePayrollRun: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Employee: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Employment: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Location: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + PayrollRun: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Team: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + TimeOff: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + TimeOffBalance: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + BankInfo: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + PayGroup: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Group: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Dependent: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + TimesheetEntry: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/forceResync.yml b/.mock/definition/hris/forceResync.yml new file mode 100644 index 000000000..ccae8e7b1 --- /dev/null +++ b/.mock/definition/hris/forceResync.yml @@ -0,0 +1,37 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + sync_status_resync_create: + path: /hris/v1/sync-status/resync + method: POST + auth: true + docs: >- + Force re-sync of all models. This endpoint is available for monthly, + quarterly, and highest sync frequency customers on the Professional or + Enterprise plans. Doing so will consume a sync credit for the relevant + linked account. Force re-syncs can also be triggered manually in the + Merge Dashboard and is available for all customers. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - model_name: Employee + model_id: hris.Employee + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/generateKey.yml b/.mock/definition/hris/generateKey.yml new file mode 100644 index 000000000..94a399fc6 --- /dev/null +++ b/.mock/definition/hris/generateKey.yml @@ -0,0 +1,36 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /hris/v1/generate-key + method: POST + auth: true + docs: Create a remote key. + source: + openapi: openapi/openapi.yml + request: + name: GenerateRemoteKeyRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/groups.yml b/.mock/definition/hris/groups.yml new file mode 100644 index 000000000..942ebedfc --- /dev/null +++ b/.mock/definition/hris/groups.yml @@ -0,0 +1,179 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/groups + method: GET + auth: true + docs: Returns a list of `Group` objects. + source: + openapi: openapi/openapi.yml + request: + name: GroupsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_commonly_used_as_team: + type: optional + docs: >- + If provided, specifies whether to return only Group objects which + refer to a team in the third party platform. Note that this is an + opinionated view based on how a team may be represented in the + third party platform. + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + names: + type: optional + docs: >- + If provided, will only return groups with these names. Multiple + values can be separated by commas. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + types: + type: optional + docs: >- + If provided, will only return groups of these types. Multiple + values can be separated by commas. + response: + docs: '' + type: root.PaginatedGroupList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 134e0111-0f67-44f6-98f0-597000290bb3 + remote_id: '800293' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + parent_group: 2ef51b11-2c4e-4b02-8d1d-50592d9e96ef + name: COST_CENTER_US + type: TEAM + is_commonly_used_as_team: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /group + data: + - Varies by platform + retrieve: + path: /hris/v1/groups/{id} + method: GET + auth: true + docs: Returns a `Group` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: GroupsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.Group + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 134e0111-0f67-44f6-98f0-597000290bb3 + remote_id: '800293' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + parent_group: 2ef51b11-2c4e-4b02-8d1d-50592d9e96ef + name: COST_CENTER_US + type: TEAM + is_commonly_used_as_team: true + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /group + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/issues.yml b/.mock/definition/hris/issues.yml new file mode 100644 index 000000000..9fd39ae26 --- /dev/null +++ b/.mock/definition/hris/issues.yml @@ -0,0 +1,129 @@ +types: + IssuesListRequestStatus: + enum: + - ONGOING + - RESOLVED + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/issues + method: GET + auth: true + docs: Gets all issues for Organization. + source: + openapi: openapi/openapi.yml + request: + name: IssuesListRequest + query-parameters: + account_token: optional + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred before this time + end_user_organization_name: optional + first_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + after this datetime. + first_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + before this datetime. + include_muted: + type: optional + docs: If true, will include muted issues + integration_name: optional + last_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + after this datetime. + last_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + before this datetime. + linked_account_id: + type: optional + docs: >- + If provided, will only include issues pertaining to the linked + account passed in. + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred after this time + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + response: + docs: '' + type: root.PaginatedIssueList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + retrieve: + path: /hris/v1/issues/{id} + method: GET + auth: true + docs: Get a specific issue. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + response: + docs: '' + type: root.Issue + status-code: 200 + examples: + - path-parameters: + id: id + response: + body: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/linkToken.yml b/.mock/definition/hris/linkToken.yml new file mode 100644 index 000000000..c83a57e8a --- /dev/null +++ b/.mock/definition/hris/linkToken.yml @@ -0,0 +1,152 @@ +imports: + root: __package__.yml +types: + EndUserDetailsRequestLanguage: + discriminated: false + docs: >- + The following subset of IETF language tags can be used to configure + localization. + + + * `en` - en + + * `de` - de + union: + - root.LanguageEnum + - string + source: + openapi: openapi/openapi.yml + inline: true +service: + auth: false + base-path: '' + endpoints: + create: + path: /hris/v1/link-token + method: POST + auth: true + docs: Creates a link token to be used when linking a new end user. + source: + openapi: openapi/openapi.yml + request: + name: EndUserDetailsRequest + body: + properties: + end_user_email_address: + type: string + docs: >- + Your end user's email address. This is purely for identification + purposes - setting this value will not cause any emails to be + sent. + validation: + minLength: 1 + maxLength: 100 + end_user_organization_name: + type: string + docs: Your end user's organization. + validation: + minLength: 1 + maxLength: 100 + end_user_origin_id: + type: string + docs: >- + This unique identifier typically represents the ID for your end + user in your product's database. This value must be distinct + from other Linked Accounts' unique identifiers. + validation: + minLength: 1 + maxLength: 100 + categories: + docs: The integration categories to show in Merge Link. + type: list + integration: + type: optional + docs: >- + The slug of a specific pre-selected integration for this linking + flow token. For examples of slugs, see + https://docs.merge.dev/guides/merge-link/single-integration/. + validation: + minLength: 1 + link_expiry_mins: + type: optional + docs: >- + An integer number of minutes between [30, 720 or 10080 if for a + Magic Link URL] for how long this token is valid. Defaults to + 30. + default: 30 + validation: + min: 30 + max: 10080 + should_create_magic_link_url: + type: optional + docs: >- + Whether to generate a Magic Link URL. Defaults to false. For + more information on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + hide_admin_magic_link: + type: optional + docs: >- + Whether to generate a Magic Link URL on the Admin Needed screen + during the linking flow. Defaults to false. For more information + on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + common_models: + type: optional> + docs: >- + An array of objects to specify the models and fields that will + be disabled for a given Linked Account. Each object uses + model_id, enabled_actions, and disabled_fields to specify the + model, method, and fields that are scoped for a given Linked + Account. + category_common_model_scopes: + type: >- + optional>>> + docs: >- + When creating a Link Token, you can set permissions for Common + Models that will apply to the account that is going to be + linked. Any model or field not specified in link token payload + will default to existing settings. + language: + type: optional + docs: >- + The following subset of IETF language tags can be used to + configure localization. + + + * `en` - en + + * `de` - de + are_syncs_disabled: + type: optional + docs: >- + The boolean that indicates whether initial, periodic, and force + syncs will be disabled. + default: false + integration_specific_config: + type: optional> + docs: >- + A JSON object containing integration-specific configuration + options. + content-type: application/json + response: + docs: '' + type: root.LinkToken + status-code: 200 + examples: + - request: + end_user_email_address: example@gmail.com + end_user_organization_name: Test Organization + end_user_origin_id: '12345' + categories: + - hris + - ats + response: + body: + link_token: necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0 + integration_name: Lever + magic_link_url: https://link.merge.dev/asdfjkl12345jsndfgi2i83n + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/linkedAccounts.yml b/.mock/definition/hris/linkedAccounts.yml new file mode 100644 index 000000000..3ed63936b --- /dev/null +++ b/.mock/definition/hris/linkedAccounts.yml @@ -0,0 +1,150 @@ +types: + LinkedAccountsListRequestCategory: + enum: + - accounting + - ats + - crm + - filestorage + - hris + - mktg + - ticketing + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/linked-accounts + method: GET + auth: true + docs: List linked accounts for your organization. + source: + openapi: openapi/openapi.yml + request: + name: LinkedAccountsListRequest + query-parameters: + category: + type: optional + docs: >- + Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, + `mktg`, `ticketing` + + + * `hris` - hris + + * `ats` - ats + + * `accounting` - accounting + + * `ticketing` - ticketing + + * `crm` - crm + + * `mktg` - mktg + + * `filestorage` - filestorage + cursor: + type: optional + docs: The pagination cursor value. + end_user_email_address: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given email address. + end_user_organization_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given organization name. + end_user_origin_id: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given origin ID. + end_user_origin_ids: + type: optional + docs: >- + Comma-separated list of EndUser origin IDs, making it possible to + specify multiple EndUsers at once. + id: + type: optional + validation: + format: uuid + ids: + type: optional + docs: >- + Comma-separated list of LinkedAccount IDs, making it possible to + specify multiple LinkedAccounts at once. + include_duplicates: + type: optional + docs: >- + If `true`, will include complete production duplicates of the + account specified by the `id` query parameter in the response. + `id` must be for a complete production linked account. + integration_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given integration name. + is_test_account: + type: optional + docs: >- + If included, will only include test linked accounts. If not + included, will only include non-test linked accounts. + page_size: + type: optional + docs: Number of results to return per page. + status: + type: optional + docs: >- + Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, + `RELINK_NEEDED` + response: + docs: '' + type: root.PaginatedAccountDetailsAndActionsList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: e59b1821-f85c-4e28-a6b3-1804156f3563 + category: hris + status: COMPLETE + status_detail: Invalid login credentials + end_user_origin_id: 3ac95cde-6c7f-4eef-afec-be710b42308d + end_user_organization_name: Foo Bar, LLC + end_user_email_address: hradmin@foobar.dev + subdomain: foobar + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + integration: + name: name + categories: + - hris + color: color + slug: slug + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + integration_specific_fields: + integration_specific_field: Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/locations.yml b/.mock/definition/hris/locations.yml new file mode 100644 index 000000000..a4c2f9b6b --- /dev/null +++ b/.mock/definition/hris/locations.yml @@ -0,0 +1,218 @@ +types: + LocationsListRequestLocationType: + enum: + - HOME + - WORK + source: + openapi: openapi/openapi.yml + LocationsListRequestRemoteFields: + enum: + - country + - value: country,location_type + name: CountryLocationType + - location_type + source: + openapi: openapi/openapi.yml + LocationsListRequestShowEnumOrigins: + enum: + - country + - value: country,location_type + name: CountryLocationType + - location_type + source: + openapi: openapi/openapi.yml + LocationsRetrieveRequestRemoteFields: + enum: + - country + - value: country,location_type + name: CountryLocationType + - location_type + source: + openapi: openapi/openapi.yml + LocationsRetrieveRequestShowEnumOrigins: + enum: + - country + - value: country,location_type + name: CountryLocationType + - location_type + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/locations + method: GET + auth: true + docs: Returns a list of `Location` objects. + source: + openapi: openapi/openapi.yml + request: + name: LocationsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + location_type: + type: optional + docs: |- + If provided, will only return locations with this location_type + + * `HOME` - HOME + * `WORK` - WORK + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.PaginatedLocationList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: f5e6a151-f44e-449a-afb1-8fd781905958 + remote_id: '93018402' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: NYC Office + phone_number: '+1111111111' + street_1: 2920 Broadway + street_2: 2nd Floor + city: 'New York ' + state: NY + zip_code: '10027' + country: AF + location_type: HOME + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /locations + data: + - Varies by platform + retrieve: + path: /hris/v1/locations/{id} + method: GET + auth: true + docs: Returns a `Location` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: LocationsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.Location + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: f5e6a151-f44e-449a-afb1-8fd781905958 + remote_id: '93018402' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: NYC Office + phone_number: '+1111111111' + street_1: 2920 Broadway + street_2: 2nd Floor + city: 'New York ' + state: NY + zip_code: '10027' + country: AF + location_type: HOME + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /locations + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/passthrough.yml b/.mock/definition/hris/passthrough.yml new file mode 100644 index 000000000..602b2cd67 --- /dev/null +++ b/.mock/definition/hris/passthrough.yml @@ -0,0 +1,40 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /hris/v1/passthrough + method: POST + auth: true + docs: Pull data from an endpoint not currently supported by Merge. + source: + openapi: openapi/openapi.yml + request: + body: root.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: root.RemoteResponse + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/payGroups.yml b/.mock/definition/hris/payGroups.yml new file mode 100644 index 000000000..981803d8e --- /dev/null +++ b/.mock/definition/hris/payGroups.yml @@ -0,0 +1,136 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/pay-groups + method: GET + auth: true + docs: Returns a list of `PayGroup` objects. + source: + openapi: openapi/openapi.yml + request: + name: PayGroupsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedPayGroupList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: fd1e0fb5-8f92-4ec9-9f32-179cf732867d + remote_id: '800293' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + pay_group_name: contractor + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /pay-group + data: + - Varies by platform + retrieve: + path: /hris/v1/pay-groups/{id} + method: GET + auth: true + docs: Returns a `PayGroup` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: PayGroupsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.PayGroup + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: fd1e0fb5-8f92-4ec9-9f32-179cf732867d + remote_id: '800293' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + pay_group_name: contractor + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /pay-group + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/payrollRuns.yml b/.mock/definition/hris/payrollRuns.yml new file mode 100644 index 000000000..b4414e439 --- /dev/null +++ b/.mock/definition/hris/payrollRuns.yml @@ -0,0 +1,243 @@ +types: + PayrollRunsListRequestRemoteFields: + enum: + - run_state + - value: run_state,run_type + name: RunStateRunType + - run_type + source: + openapi: openapi/openapi.yml + PayrollRunsListRequestRunType: + enum: + - CORRECTION + - OFF_CYCLE + - REGULAR + - SIGN_ON_BONUS + - TERMINATION + source: + openapi: openapi/openapi.yml + PayrollRunsListRequestShowEnumOrigins: + enum: + - run_state + - value: run_state,run_type + name: RunStateRunType + - run_type + source: + openapi: openapi/openapi.yml + PayrollRunsRetrieveRequestRemoteFields: + enum: + - run_state + - value: run_state,run_type + name: RunStateRunType + - run_type + source: + openapi: openapi/openapi.yml + PayrollRunsRetrieveRequestShowEnumOrigins: + enum: + - run_state + - value: run_state,run_type + name: RunStateRunType + - run_type + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/payroll-runs + method: GET + auth: true + docs: Returns a list of `PayrollRun` objects. + source: + openapi: openapi/openapi.yml + request: + name: PayrollRunsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + ended_after: + type: optional + docs: >- + If provided, will only return payroll runs ended after this + datetime. + ended_before: + type: optional + docs: >- + If provided, will only return payroll runs ended before this + datetime. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + run_type: + type: optional + docs: >- + If provided, will only return PayrollRun's with this status. + Options: ('REGULAR', 'OFF_CYCLE', 'CORRECTION', 'TERMINATION', + 'SIGN_ON_BONUS') + + + * `REGULAR` - REGULAR + + * `OFF_CYCLE` - OFF_CYCLE + + * `CORRECTION` - CORRECTION + + * `TERMINATION` - TERMINATION + + * `SIGN_ON_BONUS` - SIGN_ON_BONUS + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + started_after: + type: optional + docs: >- + If provided, will only return payroll runs started after this + datetime. + started_before: + type: optional + docs: >- + If provided, will only return payroll runs started before this + datetime. + response: + docs: '' + type: root.PaginatedPayrollRunList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 37336947-b3d4-4a4c-a310-ab6ab510e079 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + run_state: PAID + run_type: REGULAR + start_date: '2020-11-08T00:00:00Z' + end_date: '2020-11-15T00:00:00Z' + check_date: '2020-11-15T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /payroll + data: + - Varies by platform + retrieve: + path: /hris/v1/payroll-runs/{id} + method: GET + auth: true + docs: Returns a `PayrollRun` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: PayrollRunsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.PayrollRun + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 37336947-b3d4-4a4c-a310-ab6ab510e079 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + run_state: PAID + run_type: REGULAR + start_date: '2020-11-08T00:00:00Z' + end_date: '2020-11-15T00:00:00Z' + check_date: '2020-11-15T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /payroll + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/regenerateKey.yml b/.mock/definition/hris/regenerateKey.yml new file mode 100644 index 000000000..e29e77d39 --- /dev/null +++ b/.mock/definition/hris/regenerateKey.yml @@ -0,0 +1,36 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /hris/v1/regenerate-key + method: POST + auth: true + docs: Exchange remote keys. + source: + openapi: openapi/openapi.yml + request: + name: RemoteKeyForRegenerationRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/scopes.yml b/.mock/definition/hris/scopes.yml new file mode 100644 index 000000000..59ec6a77b --- /dev/null +++ b/.mock/definition/hris/scopes.yml @@ -0,0 +1,160 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + default_scopes_retrieve: + path: /hris/v1/default-scopes + method: GET + auth: true + docs: >- + Get the default permissions for Merge Common Models and fields across + all Linked Accounts of a given category. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.CommonModelScopeApi + status-code: 200 + examples: + - response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_retrieve: + path: /hris/v1/linked-account-scopes + method: GET + auth: true + docs: >- + Get all available permissions for Merge Common Models and fields for a + single Linked Account. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_create: + path: /hris/v1/linked-account-scopes + method: POST + auth: true + docs: >- + Update permissions for any Common Model or field for a single Linked + Account. Any Scopes not set in this POST request will inherit the + default Scopes. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) + source: + openapi: openapi/openapi.yml + request: + name: LinkedAccountCommonModelScopeDeserializerRequest + body: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + content-type: application/json + response: + docs: '' + type: root.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + request: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - home_location + disabled_fields: + - work_location + - model_name: Benefit + model_permissions: + WRITE: + is_enabled: false + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/syncStatus.yml b/.mock/definition/hris/syncStatus.yml new file mode 100644 index 000000000..c7e03e66a --- /dev/null +++ b/.mock/definition/hris/syncStatus.yml @@ -0,0 +1,55 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/sync-status + method: GET + auth: true + docs: >- + Get sync status for the current sync and the most recently finished + sync. `last_sync_start` represents the most recent time any sync began. + `last_sync_finished` represents the most recent time any sync completed. + These timestamps may correspond to different sync instances which may + result in a sync start time being later than a separate sync completed + time. To ensure you are retrieving the latest available data reference + the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. + Possible values for `status` and `last_sync_result` are `DISABLED`, + `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more + about sync status in our [Help + Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + source: + openapi: openapi/openapi.yml + request: + name: SyncStatusListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedSyncStatusList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - model_name: Employee + model_id: hris.Employee + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/teams.yml b/.mock/definition/hris/teams.yml new file mode 100644 index 000000000..4cb87414c --- /dev/null +++ b/.mock/definition/hris/teams.yml @@ -0,0 +1,151 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/teams + method: GET + auth: true + docs: Returns a list of `Team` objects. + source: + openapi: openapi/openapi.yml + request: + name: TeamsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + parent_team_id: + type: optional + docs: If provided, will only return teams with this parent team. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedTeamList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 13a72919-9fae-4f54-81ca-ddfd8712a1ba + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Engineering + parent_team: parent_team + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /teams + data: + - Varies by platform + retrieve: + path: /hris/v1/teams/{id} + method: GET + auth: true + docs: Returns a `Team` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: TeamsRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Team + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 13a72919-9fae-4f54-81ca-ddfd8712a1ba + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Engineering + parent_team: parent_team + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /teams + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/timeOff.yml b/.mock/definition/hris/timeOff.yml new file mode 100644 index 000000000..94818112c --- /dev/null +++ b/.mock/definition/hris/timeOff.yml @@ -0,0 +1,599 @@ +types: + TimeOffListRequestExpand: + enum: + - approver + - employee + - value: employee,approver + name: EmployeeApprover + source: + openapi: openapi/openapi.yml + TimeOffListRequestRemoteFields: + enum: + - request_type + - value: request_type,status + name: RequestTypeStatus + - value: request_type,status,units + name: RequestTypeStatusUnits + - value: request_type,units + name: RequestTypeUnits + - status + - value: status,units + name: StatusUnits + - units + source: + openapi: openapi/openapi.yml + TimeOffListRequestRequestType: + enum: + - BEREAVEMENT + - JURY_DUTY + - PERSONAL + - SICK + - VACATION + - VOLUNTEER + source: + openapi: openapi/openapi.yml + TimeOffListRequestShowEnumOrigins: + enum: + - request_type + - value: request_type,status + name: RequestTypeStatus + - value: request_type,status,units + name: RequestTypeStatusUnits + - value: request_type,units + name: RequestTypeUnits + - status + - value: status,units + name: StatusUnits + - units + source: + openapi: openapi/openapi.yml + TimeOffListRequestStatus: + enum: + - APPROVED + - CANCELLED + - DECLINED + - DELETED + - REQUESTED + source: + openapi: openapi/openapi.yml + TimeOffRetrieveRequestExpand: + enum: + - approver + - employee + - value: employee,approver + name: EmployeeApprover + source: + openapi: openapi/openapi.yml + TimeOffRetrieveRequestRemoteFields: + enum: + - request_type + - value: request_type,status + name: RequestTypeStatus + - value: request_type,status,units + name: RequestTypeStatusUnits + - value: request_type,units + name: RequestTypeUnits + - status + - value: status,units + name: StatusUnits + - units + source: + openapi: openapi/openapi.yml + TimeOffRetrieveRequestShowEnumOrigins: + enum: + - request_type + - value: request_type,status + name: RequestTypeStatus + - value: request_type,status,units + name: RequestTypeStatusUnits + - value: request_type,units + name: RequestTypeUnits + - status + - value: status,units + name: StatusUnits + - units + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/time-off + method: GET + auth: true + docs: Returns a list of `TimeOff` objects. + source: + openapi: openapi/openapi.yml + request: + name: TimeOffListRequest + query-parameters: + approver_id: + type: optional + docs: If provided, will only return time off for this approver. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + employee_id: + type: optional + docs: If provided, will only return time off for this employee. + ended_after: + type: optional + docs: >- + If provided, will only return employees that ended after this + datetime. + ended_before: + type: optional + docs: >- + If provided, will only return time-offs that ended before this + datetime. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + request_type: + type: optional + docs: >- + If provided, will only return TimeOff with this request type. + Options: ('VACATION', 'SICK', 'PERSONAL', 'JURY_DUTY', + 'VOLUNTEER', 'BEREAVEMENT') + + + * `VACATION` - VACATION + + * `SICK` - SICK + + * `PERSONAL` - PERSONAL + + * `JURY_DUTY` - JURY_DUTY + + * `VOLUNTEER` - VOLUNTEER + + * `BEREAVEMENT` - BEREAVEMENT + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + started_after: + type: optional + docs: >- + If provided, will only return time-offs that started after this + datetime. + started_before: + type: optional + docs: >- + If provided, will only return time-offs that started before this + datetime. + status: + type: optional + docs: >- + If provided, will only return TimeOff with this status. Options: + ('REQUESTED', 'APPROVED', 'DECLINED', 'CANCELLED', 'DELETED') + + + * `REQUESTED` - REQUESTED + + * `APPROVED` - APPROVED + + * `DECLINED` - DECLINED + + * `CANCELLED` - CANCELLED + + * `DELETED` - DELETED + response: + docs: '' + type: root.PaginatedTimeOffList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 91b2b905-e866-40c8-8be2-efe53827a0aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + approver: approver + status: REQUESTED + employee_note: Moving into the new apartment Kendall Roy gave me! + units: HOURS + amount: 3 + request_type: VACATION + start_time: '2020-11-10T00:00:00Z' + end_time: '2020-11-17T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /leave + data: + - Varies by platform + create: + path: /hris/v1/time-off + method: POST + auth: true + docs: Creates a `TimeOff` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: TimeOffEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.TimeOffRequest + content-type: application/json + response: + docs: '' + type: root.TimeOffResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 91b2b905-e866-40c8-8be2-efe53827a0aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + approver: approver + status: REQUESTED + employee_note: Moving into the new apartment Kendall Roy gave me! + units: HOURS + amount: 3 + request_type: VACATION + start_time: '2020-11-10T00:00:00Z' + end_time: '2020-11-17T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /leave + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /hris/v1/time-off/{id} + method: GET + auth: true + docs: Returns a `TimeOff` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: TimeOffRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.TimeOff + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 91b2b905-e866-40c8-8be2-efe53827a0aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + approver: approver + status: REQUESTED + employee_note: Moving into the new apartment Kendall Roy gave me! + units: HOURS + amount: 3 + request_type: VACATION + start_time: '2020-11-10T00:00:00Z' + end_time: '2020-11-17T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /leave + data: + - Varies by platform + metaPostRetrieve: + path: /hris/v1/time-off/meta/post + method: GET + auth: true + docs: Returns metadata for `TimeOff` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/timeOffBalances.yml b/.mock/definition/hris/timeOffBalances.yml new file mode 100644 index 000000000..509df3618 --- /dev/null +++ b/.mock/definition/hris/timeOffBalances.yml @@ -0,0 +1,205 @@ +types: + TimeOffBalancesListRequestPolicyType: + enum: + - BEREAVEMENT + - JURY_DUTY + - PERSONAL + - SICK + - VACATION + - VOLUNTEER + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/time-off-balances + method: GET + auth: true + docs: Returns a list of `TimeOffBalance` objects. + source: + openapi: openapi/openapi.yml + request: + name: TimeOffBalancesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + employee_id: + type: optional + docs: If provided, will only return time off balances for this employee. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + policy_type: + type: optional + docs: >- + If provided, will only return TimeOffBalance with this policy + type. Options: ('VACATION', 'SICK', 'PERSONAL', 'JURY_DUTY', + 'VOLUNTEER', 'BEREAVEMENT') + + + * `VACATION` - VACATION + + * `SICK` - SICK + + * `PERSONAL` - PERSONAL + + * `JURY_DUTY` - JURY_DUTY + + * `VOLUNTEER` - VOLUNTEER + + * `BEREAVEMENT` - BEREAVEMENT + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.PaginatedTimeOffBalanceList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 91b2b905-e866-40c8-8be2-efe53827a0aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + balance: 1.1 + used: 1.1 + policy_type: VACATION + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /leave + data: + - Varies by platform + retrieve: + path: /hris/v1/time-off-balances/{id} + method: GET + auth: true + docs: Returns a `TimeOffBalance` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: TimeOffBalancesRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.TimeOffBalance + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 91b2b905-e866-40c8-8be2-efe53827a0aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + balance: 1.1 + used: 1.1 + policy_type: VACATION + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /leave + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/timesheetEntries.yml b/.mock/definition/hris/timesheetEntries.yml new file mode 100644 index 000000000..69380ef45 --- /dev/null +++ b/.mock/definition/hris/timesheetEntries.yml @@ -0,0 +1,444 @@ +types: + TimesheetEntriesListRequestOrderBy: + enum: + - value: '-start_time' + name: StartTimeDescending + - value: start_time + name: StartTimeAscending + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/timesheet-entries + method: GET + auth: true + docs: Returns a list of `TimesheetEntry` objects. + source: + openapi: openapi/openapi.yml + request: + name: TimesheetEntriesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + employee_id: + type: optional + docs: If provided, will only return timesheet entries for this employee. + ended_after: + type: optional + docs: >- + If provided, will only return timesheet entries ended after this + datetime. + ended_before: + type: optional + docs: >- + If provided, will only return timesheet entries ended before this + datetime. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + order_by: + type: optional + docs: >- + Overrides the default ordering for this endpoint. Possible values + include: start_time, -start_time. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + started_after: + type: optional + docs: >- + If provided, will only return timesheet entries started after this + datetime. + started_before: + type: optional + docs: >- + If provided, will only return timesheet entries started before + this datetime. + response: + docs: '' + type: root.PaginatedTimesheetEntryList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 91b2b905-e866-40c8-8be2-efe53827a0aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + hours_worked: 10 + start_time: '2020-11-10T00:00:00Z' + end_time: '2020-11-10T00:10:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /dependent + data: + - Varies by platform + create: + path: /hris/v1/timesheet-entries + method: POST + auth: true + docs: Creates a `TimesheetEntry` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: TimesheetEntryEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.TimesheetEntryRequest + content-type: application/json + response: + docs: '' + type: root.TimesheetEntryResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 91b2b905-e866-40c8-8be2-efe53827a0aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + hours_worked: 10 + start_time: '2020-11-10T00:00:00Z' + end_time: '2020-11-10T00:10:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /dependent + data: + - Varies by platform + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /hris/v1/timesheet-entries/{id} + method: GET + auth: true + docs: Returns a `TimesheetEntry` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: TimesheetEntriesRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.TimesheetEntry + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 91b2b905-e866-40c8-8be2-efe53827a0aa + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + employee: employee + hours_worked: 10 + start_time: '2020-11-10T00:00:00Z' + end_time: '2020-11-10T00:10:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /dependent + data: + - Varies by platform + metaPostRetrieve: + path: /hris/v1/timesheet-entries/meta/post + method: GET + auth: true + docs: Returns metadata for `TimesheetEntry` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/hris/webhookReceivers.yml b/.mock/definition/hris/webhookReceivers.yml new file mode 100644 index 000000000..05eae39d7 --- /dev/null +++ b/.mock/definition/hris/webhookReceivers.yml @@ -0,0 +1,61 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /hris/v1/webhook-receivers + method: GET + auth: true + docs: Returns a list of `WebhookReceiver` objects. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - event: event + is_active: true + key: key + create: + path: /hris/v1/webhook-receivers + method: POST + auth: true + docs: Creates a `WebhookReceiver` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: WebhookReceiverRequest + body: + properties: + event: + type: string + validation: + minLength: 1 + is_active: boolean + key: + type: optional + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.WebhookReceiver + status-code: 201 + examples: + - headers: {} + request: + event: event + is_active: true + response: + body: + event: event + is_active: true + key: key + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/__package__.yml b/.mock/definition/ticketing/__package__.yml new file mode 100644 index 000000000..fef97a5f1 --- /dev/null +++ b/.mock/definition/ticketing/__package__.yml @@ -0,0 +1,3421 @@ +types: + Account: + docs: >- + # The Account Object + + ### Description + + The `Account` object is used to represent the account that a ticket is + associated with. + + + The account is a company that may be a customer. This does not represent + the company that is receiving the ticket. + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The account's name. + domains: + type: optional>> + docs: The account's domain names. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + AccountDetailsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountDetails: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + integration: + type: optional + access: read-only + integration_slug: + type: optional + access: read-only + category: optional + end_user_origin_id: + type: optional + access: read-only + end_user_organization_name: + type: optional + access: read-only + end_user_email_address: + type: optional + validation: + format: email + access: read-only + status: + type: optional + access: read-only + webhook_listener_url: + type: optional + validation: + format: uri + access: read-only + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + access: read-only + account_type: + type: optional + access: read-only + completed_at: + type: optional + docs: The time at which account completes the linking flow. + source: + openapi: openapi/openapi.yml + AccountDetailsAndActionsCategory: + discriminated: false + union: + - CategoryEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountDetailsAndActionsStatus: + discriminated: false + union: + - AccountDetailsAndActionsStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AccountDetailsAndActions: + docs: >- + # The LinkedAccount Object + + ### Description + + The `LinkedAccount` object is used to represent an end user's link with a + specific integration. + + + ### Usage Example + + View a list of your organization's `LinkedAccount` objects. + properties: + id: string + category: optional + status: AccountDetailsAndActionsStatus + status_detail: optional + end_user_origin_id: optional + end_user_organization_name: string + end_user_email_address: string + subdomain: + type: optional + docs: The tenant or domain the customer has provided access to. + webhook_listener_url: string + is_duplicate: + type: optional + docs: >- + Whether a Production Linked Account's credentials match another + existing Production Linked Account. This field is `null` for Test + Linked Accounts, incomplete Production Linked Accounts, and ignored + duplicate Production Linked Account sets. + integration: optional + account_type: string + completed_at: datetime + integration_specific_fields: optional> + source: + openapi: openapi/openapi.yml + AccountDetailsAndActionsIntegration: + properties: + name: string + categories: list + image: optional + square_image: optional + color: string + slug: string + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: openapi/openapi.yml + AccountDetailsAndActionsStatusEnum: + enum: + - COMPLETE + - INCOMPLETE + - RELINK_NEEDED + - IDLE + docs: |- + * `COMPLETE` - COMPLETE + * `INCOMPLETE` - INCOMPLETE + * `RELINK_NEEDED` - RELINK_NEEDED + * `IDLE` - IDLE + source: + openapi: openapi/openapi.yml + AccountIntegration: + properties: + name: + type: string + docs: Company name. + abbreviated_name: + type: optional + docs: >- + Optional. This shortened name appears in places with limited space, + usually in conjunction with the platform's logo (e.g., Merge Link + menu).

Example: Workforce Now (in lieu of ADP Workforce + Now), SuccessFactors (in lieu of SAP SuccessFactors) + categories: + type: optional> + docs: >- + Category or categories this integration belongs to. Multiple + categories should be comma separated, i.e. [ats, hris]. + access: read-only + image: + type: optional + docs: Company logo in rectangular shape. + validation: + format: uri + square_image: + type: optional + docs: Company logo in square shape. + validation: + format: uri + color: + type: optional + docs: >- + The color of this integration used for buttons and text throughout the + app and landing pages. Choose a darker, saturated color. + validation: + pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ + maxLength: 18 + slug: + type: optional + access: read-only + api_endpoints_to_documentation_urls: + type: optional> + docs: >- + Mapping of API endpoints to documentation urls for support. Example: + {'GET': [['/common-model-scopes', + 'https://docs.merge.dev/accounting/common-model-scopes/#common_model_scopes_retrieve'],['/common-model-actions', + 'https://docs.merge.dev/accounting/common-model-actions/#common_model_actions_retrieve']], + 'POST': []} + webhook_setup_guide_url: + type: optional + docs: >- + Setup guide URL for third party webhook creation. Exposed in Merge + Docs. + category_beta_status: + type: optional> + docs: Category or categories this integration is in beta status for. + access: read-only + source: + openapi: openapi/openapi.yml + AccountToken: + properties: + account_token: string + integration: AccountIntegration + id: string + source: + openapi: openapi/openapi.yml + AdvancedMetadata: + properties: + id: + type: string + validation: + format: uuid + display_name: optional + description: optional + is_required: optional + is_custom: optional + field_choices: optional> + source: + openapi: openapi/openapi.yml + AsyncPassthroughReciept: + properties: + async_passthrough_receipt_id: + type: string + validation: + format: uuid + source: + openapi: openapi/openapi.yml + AttachmentTicket: + discriminated: false + docs: The ticket associated with the attachment. + union: + - type: string + validation: + format: uuid + - Ticket + source: + openapi: openapi/openapi.yml + inline: true + Attachment: + docs: |- + # The Attachment Object + ### Description + The `Attachment` object is used to represent an attachment for a ticket. + + ### Usage Example + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + file_name: + type: optional + docs: >- + The attachment's name. It is required to include the file extension in + the attachment's name. + ticket: + type: optional + docs: The ticket associated with the attachment. + file_url: + type: optional + docs: >- + The attachment's url. It is required to include the file extension in + the file's URL. + content_type: + type: optional + docs: The attachment's file format. + uploaded_by: + type: optional + docs: The user who uploaded the attachment. + validation: + format: uuid + remote_created_at: + type: optional + docs: When the third party's attachment was created. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + AttachmentRequestTicket: + discriminated: false + docs: The ticket associated with the attachment. + union: + - type: string + validation: + format: uuid + - Ticket + source: + openapi: openapi/openapi.yml + inline: true + AttachmentRequest: + docs: |- + # The Attachment Object + ### Description + The `Attachment` object is used to represent an attachment for a ticket. + + ### Usage Example + TODO + properties: + file_name: + type: optional + docs: >- + The attachment's name. It is required to include the file extension in + the attachment's name. + ticket: + type: optional + docs: The ticket associated with the attachment. + file_url: + type: optional + docs: >- + The attachment's url. It is required to include the file extension in + the file's URL. + content_type: + type: optional + docs: The attachment's file format. + uploaded_by: + type: optional + docs: The user who uploaded the attachment. + validation: + format: uuid + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + AuditLogEventRole: + discriminated: false + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by a + user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + union: + - RoleEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AuditLogEventEventType: + discriminated: false + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + union: + - EventTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + AuditLogEvent: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + user_name: + type: optional + docs: The User's full name at the time of this Event occurring. + validation: + maxLength: 200 + user_email: + type: optional + docs: The User's email at the time of this Event occurring. + validation: + format: email + maxLength: 254 + role: + type: AuditLogEventRole + docs: >- + Designates the role of the user (or SYSTEM/API if action not taken by + a user) at the time of this Event occurring. + + + * `ADMIN` - ADMIN + + * `DEVELOPER` - DEVELOPER + + * `MEMBER` - MEMBER + + * `API` - API + + * `SYSTEM` - SYSTEM + + * `MERGE_TEAM` - MERGE_TEAM + ip_address: + type: string + validation: + maxLength: 45 + event_type: + type: AuditLogEventEventType + docs: >- + Designates the type of event that occurred. + + + * `CREATED_REMOTE_PRODUCTION_API_KEY` - + CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - + DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + event_description: string + created_at: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + AvailableActions: + docs: >- + # The AvailableActions Object + + ### Description + + The `Activity` object is used to see all available model/operation + combinations for an integration. + + + ### Usage Example + + Fetch all the actions available for the `Zenefits` integration. + properties: + integration: AccountIntegration + passthrough_available: boolean + available_model_operations: optional> + source: + openapi: openapi/openapi.yml + CategoriesEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: openapi/openapi.yml + CategoryEnum: + enum: + - hris + - ats + - accounting + - ticketing + - crm + - mktg + - filestorage + docs: |- + * `hris` - hris + * `ats` - ats + * `accounting` - accounting + * `ticketing` - ticketing + * `crm` - crm + * `mktg` - mktg + * `filestorage` - filestorage + source: + openapi: openapi/openapi.yml + CollectionAccessLevel: + discriminated: false + docs: |- + The level of access a User has to the Collection and its sub-objects. + + * `PRIVATE` - PRIVATE + * `COMPANY` - COMPANY + * `PUBLIC` - PUBLIC + * `PARENT_COLLECTION` - PARENT_COLLECTION + union: + - CollectionAccessLevelEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + CollectionCollectionType: + discriminated: false + docs: |- + The collection's type. + + * `LIST` - LIST + * `PROJECT` - PROJECT + union: + - CollectionTypeEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + CollectionParentCollection: + discriminated: false + docs: The parent collection for this collection. + union: + - type: string + validation: + format: uuid + - Collection + source: + openapi: openapi/openapi.yml + inline: true + Collection: + docs: >- + # The Collection Object + + ### Description + + The `Collection` object is used to represent one or more `Tickets`. There + can be a hierarchy of `Collections`, in which a sub-collection belongs to + a parent-collection. + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The collection's name. + description: + type: optional + docs: The collection's description. + access_level: + type: optional + docs: |- + The level of access a User has to the Collection and its sub-objects. + + * `PRIVATE` - PRIVATE + * `COMPANY` - COMPANY + * `PUBLIC` - PUBLIC + * `PARENT_COLLECTION` - PARENT_COLLECTION + collection_type: + type: optional + docs: |- + The collection's type. + + * `LIST` - LIST + * `PROJECT` - PROJECT + parent_collection: + type: optional + docs: The parent collection for this collection. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + CollectionAccessLevelEnum: + enum: + - PRIVATE + - COMPANY + - PUBLIC + - PARENT_COLLECTION + docs: |- + * `PRIVATE` - PRIVATE + * `COMPANY` - COMPANY + * `PUBLIC` - PUBLIC + * `PARENT_COLLECTION` - PARENT_COLLECTION + source: + openapi: openapi/openapi.yml + CollectionTypeEnum: + enum: + - LIST + - PROJECT + docs: |- + * `LIST` - LIST + * `PROJECT` - PROJECT + source: + openapi: openapi/openapi.yml + CommentUser: + discriminated: false + docs: >- + The author of the Comment, if the author is a User. If the third party + does not support specifying an author, we will append "[Posted on behalf + of {name}]" to the comment. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + CommentContact: + discriminated: false + docs: >- + The author of the Comment, if the author is a Contact.If the third party + does not support specifying an author, we will append "[Posted on behalf + of {name}]" to the comment. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + CommentTicket: + discriminated: false + docs: 'The ticket associated with the comment. ' + union: + - type: string + validation: + format: uuid + - Ticket + source: + openapi: openapi/openapi.yml + inline: true + Comment: + docs: |- + # The Comment Object + ### Description + The `Comment` object is used to represent a comment on a ticket. + + ### Usage Example + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + user: + type: optional + docs: >- + The author of the Comment, if the author is a User. If the third party + does not support specifying an author, we will append "[Posted on + behalf of {name}]" to the comment. + contact: + type: optional + docs: >- + The author of the Comment, if the author is a Contact.If the third + party does not support specifying an author, we will append "[Posted + on behalf of {name}]" to the comment. + body: + type: optional + docs: The comment's text body. + html_body: + type: optional + docs: The comment's text body formatted as html. + ticket: + type: optional + docs: 'The ticket associated with the comment. ' + is_private: + type: optional + docs: Whether or not the comment is internal. + remote_created_at: + type: optional + docs: When the third party's comment was created. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + CommentRequestUser: + discriminated: false + docs: >- + The author of the Comment, if the author is a User. If the third party + does not support specifying an author, we will append "[Posted on behalf + of {name}]" to the comment. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + CommentRequestContact: + discriminated: false + docs: >- + The author of the Comment, if the author is a Contact.If the third party + does not support specifying an author, we will append "[Posted on behalf + of {name}]" to the comment. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + CommentRequestTicket: + discriminated: false + docs: 'The ticket associated with the comment. ' + union: + - type: string + validation: + format: uuid + - Ticket + source: + openapi: openapi/openapi.yml + inline: true + CommentRequest: + docs: |- + # The Comment Object + ### Description + The `Comment` object is used to represent a comment on a ticket. + + ### Usage Example + TODO + properties: + user: + type: optional + docs: >- + The author of the Comment, if the author is a User. If the third party + does not support specifying an author, we will append "[Posted on + behalf of {name}]" to the comment. + contact: + type: optional + docs: >- + The author of the Comment, if the author is a Contact.If the third + party does not support specifying an author, we will append "[Posted + on behalf of {name}]" to the comment. + body: + type: optional + docs: The comment's text body. + html_body: + type: optional + docs: The comment's text body formatted as html. + ticket: + type: optional + docs: 'The ticket associated with the comment. ' + is_private: + type: optional + docs: Whether or not the comment is internal. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + CommentResponse: + properties: + model: Comment + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + CommonModelScopeApi: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + source: + openapi: openapi/openapi.yml + CommonModelScopesBodyRequest: + properties: + model_id: + type: string + validation: + minLength: 1 + enabled_actions: list + disabled_fields: list + source: + openapi: openapi/openapi.yml + ContactAccount: + discriminated: false + docs: The contact's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + Contact: + docs: >- + # The Contact Object + + ### Description + + The `Contact` object is used to represent the customer, lead, or external + user that a ticket is associated with. + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The contact's name. + email_address: + type: optional + docs: The contact's email address. + phone_number: + type: optional + docs: The contact's phone number. + details: + type: optional + docs: The contact's details. + account: + type: optional + docs: The contact's account. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + ContactRequestAccount: + discriminated: false + docs: The contact's account. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + ContactRequest: + docs: >- + # The Contact Object + + ### Description + + The `Contact` object is used to represent the customer, lead, or external + user that a ticket is associated with. + + + ### Usage Example + + TODO + properties: + name: + type: optional + docs: The contact's name. + email_address: + type: optional + docs: The contact's email address. + phone_number: + type: optional + docs: The contact's phone number. + details: + type: optional + docs: The contact's details. + account: + type: optional + docs: The contact's account. + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + DataPassthroughRequest: + docs: >- + # The DataPassthrough Object + + ### Description + + The `DataPassthrough` object is used to send information to an + otherwise-unsupported third-party endpoint. + + + ### Usage Example + + Create a `DataPassthrough` to get team hierarchies from your Rippling + integration. + properties: + method: MethodEnum + path: + type: string + docs: The path of the request in the third party's platform. + validation: + minLength: 1 + base_url_override: + type: optional + docs: An optional override of the third party's base url for the request. + validation: + minLength: 1 + data: + type: optional + docs: >- + The data with the request. You must include a `request_format` + parameter matching the data's format + validation: + minLength: 1 + multipart_form_data: + type: optional> + docs: >- + Pass an array of `MultipartFormField` objects in here instead of using + the `data` param if `request_format` is set to `MULTIPART`. + headers: + type: optional> + docs: >- + The headers to use for the request (Merge will handle the account's + authorization headers). `Content-Type` header is required for + passthrough. Choose content type corresponding to expected format of + receiving server. + request_format: optional + normalize_response: + type: optional + docs: >- + Optional. If true, the response will always be an object of the form + `{"type": T, "value": ...}` where `T` will be one of `string, boolean, + number, null, array, object`. + source: + openapi: openapi/openapi.yml + DebugModeLog: + properties: + log_id: string + dashboard_view: string + log_summary: DebugModelLogSummary + source: + openapi: openapi/openapi.yml + DebugModelLogSummary: + properties: + url: string + method: string + status_code: integer + source: + openapi: openapi/openapi.yml + EnabledActionsEnum: + enum: + - READ + - WRITE + docs: |- + * `READ` - READ + * `WRITE` - WRITE + source: + openapi: openapi/openapi.yml + EncodingEnum: + enum: + - RAW + - BASE64 + - GZIP_BASE64 + docs: |- + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + source: + openapi: openapi/openapi.yml + ErrorValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: openapi/openapi.yml + EventTypeEnum: + enum: + - CREATED_REMOTE_PRODUCTION_API_KEY + - DELETED_REMOTE_PRODUCTION_API_KEY + - CREATED_TEST_API_KEY + - DELETED_TEST_API_KEY + - REGENERATED_PRODUCTION_API_KEY + - REGENERATED_WEBHOOK_SIGNATURE + - INVITED_USER + - TWO_FACTOR_AUTH_ENABLED + - TWO_FACTOR_AUTH_DISABLED + - DELETED_LINKED_ACCOUNT + - DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + - CREATED_DESTINATION + - DELETED_DESTINATION + - CHANGED_DESTINATION + - CHANGED_SCOPES + - CHANGED_PERSONAL_INFORMATION + - CHANGED_ORGANIZATION_SETTINGS + - ENABLED_INTEGRATION + - DISABLED_INTEGRATION + - ENABLED_CATEGORY + - DISABLED_CATEGORY + - CHANGED_PASSWORD + - RESET_PASSWORD + - ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + - DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + - CREATED_INTEGRATION_WIDE_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_FIELD_MAPPING + - CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + - CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + - DELETED_INTEGRATION_WIDE_FIELD_MAPPING + - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + - CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + - FORCED_LINKED_ACCOUNT_RESYNC + - MUTED_ISSUE + - GENERATED_MAGIC_LINK + - ENABLED_MERGE_WEBHOOK + - DISABLED_MERGE_WEBHOOK + - MERGE_WEBHOOK_TARGET_CHANGED + - END_USER_CREDENTIALS_ACCESSED + docs: >- + * `CREATED_REMOTE_PRODUCTION_API_KEY` - CREATED_REMOTE_PRODUCTION_API_KEY + + * `DELETED_REMOTE_PRODUCTION_API_KEY` - DELETED_REMOTE_PRODUCTION_API_KEY + + * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY + + * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY + + * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + + * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE + + * `INVITED_USER` - INVITED_USER + + * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED + + * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED + + * `DELETED_LINKED_ACCOUNT` - DELETED_LINKED_ACCOUNT + + * `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT` - + DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT + + * `CREATED_DESTINATION` - CREATED_DESTINATION + + * `DELETED_DESTINATION` - DELETED_DESTINATION + + * `CHANGED_DESTINATION` - CHANGED_DESTINATION + + * `CHANGED_SCOPES` - CHANGED_SCOPES + + * `CHANGED_PERSONAL_INFORMATION` - CHANGED_PERSONAL_INFORMATION + + * `CHANGED_ORGANIZATION_SETTINGS` - CHANGED_ORGANIZATION_SETTINGS + + * `ENABLED_INTEGRATION` - ENABLED_INTEGRATION + + * `DISABLED_INTEGRATION` - DISABLED_INTEGRATION + + * `ENABLED_CATEGORY` - ENABLED_CATEGORY + + * `DISABLED_CATEGORY` - DISABLED_CATEGORY + + * `CHANGED_PASSWORD` - CHANGED_PASSWORD + + * `RESET_PASSWORD` - RESET_PASSWORD + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION + + * `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT` - + DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT + + * `CREATED_INTEGRATION_WIDE_FIELD_MAPPING` - + CREATED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_FIELD_MAPPING` - + CREATED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING` - + CHANGED_INTEGRATION_WIDE_FIELD_MAPPING + + * `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING` - + CHANGED_LINKED_ACCOUNT_FIELD_MAPPING + + * `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - + DELETED_INTEGRATION_WIDE_FIELD_MAPPING + + * `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - + DELETED_LINKED_ACCOUNT_FIELD_MAPPING + + * `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + + * `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC + + * `MUTED_ISSUE` - MUTED_ISSUE + + * `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK + + * `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK + + * `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK + + * `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + + * `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED + source: + openapi: openapi/openapi.yml + ExternalTargetFieldApi: + properties: + name: + type: optional + access: read-only + description: + type: optional + access: read-only + is_mapped: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + ExternalTargetFieldApiResponse: + properties: + Ticket: optional> + Comment: optional> + Project: optional> + Collection: optional> + User: optional> + Role: optional> + Account: optional> + Team: optional> + Attachment: optional> + Tag: optional> + Contact: optional> + source: + openapi: openapi/openapi.yml + FieldFormatEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + source: + openapi: openapi/openapi.yml + FieldMappingApiInstanceTargetField: + properties: + name: string + description: string + is_organization_wide: boolean + source: + openapi: openapi/openapi.yml + inline: true + FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo: + properties: + method: optional + url_path: optional + field_traversal_path: optional> + source: + openapi: openapi/openapi.yml + inline: true + FieldMappingApiInstanceRemoteField: + properties: + remote_key_name: optional + schema: optional> + remote_endpoint_info: FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo + source: + openapi: openapi/openapi.yml + inline: true + FieldMappingApiInstance: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + is_integration_wide: + type: optional + access: read-only + target_field: + type: optional + access: read-only + remote_field: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + FieldMappingApiInstanceResponse: + properties: + Ticket: optional> + Comment: optional> + Project: optional> + Collection: optional> + User: optional> + Role: optional> + Account: optional> + Team: optional> + Attachment: optional> + Tag: optional> + Contact: optional> + source: + openapi: openapi/openapi.yml + FieldMappingInstanceResponse: + properties: + model: FieldMappingApiInstance + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + FieldPermissionDeserializer: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: openapi/openapi.yml + FieldPermissionDeserializerRequest: + properties: + enabled_fields: optional> + disabled_fields: optional> + source: + openapi: openapi/openapi.yml + FieldTypeEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + source: + openapi: openapi/openapi.yml + IndividualCommonModelScopeDeserializer: + properties: + model_name: string + model_permissions: optional> + field_permissions: optional + source: + openapi: openapi/openapi.yml + IndividualCommonModelScopeDeserializerRequest: + properties: + model_name: + type: string + validation: + minLength: 1 + model_permissions: optional> + field_permissions: optional + source: + openapi: openapi/openapi.yml + IssueStatus: + discriminated: false + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + union: + - IssueStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Issue: + properties: + id: + type: optional + validation: + format: uuid + access: read-only + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + error_description: string + end_user: + type: optional> + access: read-only + first_incident_time: optional + last_incident_time: optional + is_muted: + type: optional + access: read-only + error_details: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + IssueStatusEnum: + enum: + - ONGOING + - RESOLVED + docs: |- + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + source: + openapi: openapi/openapi.yml + ItemFormatEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - uuid + * `number` - url + * `date` - email + * `datetime` - phone + * `bool` - currency + * `list` - decimal + source: + openapi: openapi/openapi.yml + ItemSchema: + properties: + item_type: optional + item_format: optional + item_choices: optional> + source: + openapi: openapi/openapi.yml + ItemTypeEnum: + enum: + - string + - number + - date + - datetime + - bool + - list + docs: |- + * `string` - string + * `number` - number + * `date` - date + * `datetime` - datetime + * `bool` - bool + * `list` - list + source: + openapi: openapi/openapi.yml + LanguageEnum: + enum: + - en + - de + docs: |- + * `en` - en + * `de` - de + source: + openapi: openapi/openapi.yml + LastSyncResultEnum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: openapi/openapi.yml + LinkToken: + properties: + link_token: string + integration_name: optional + magic_link_url: optional + source: + openapi: openapi/openapi.yml + LinkedAccountStatus: + properties: + linked_account_status: string + can_make_request: boolean + source: + openapi: openapi/openapi.yml + MetaResponse: + properties: + request_schema: map + remote_field_classes: optional> + status: optional + has_conditional_params: boolean + has_required_linked_account_params: boolean + source: + openapi: openapi/openapi.yml + MethodEnum: + enum: + - GET + - OPTIONS + - HEAD + - POST + - PUT + - PATCH + - DELETE + docs: |- + * `GET` - GET + * `OPTIONS` - OPTIONS + * `HEAD` - HEAD + * `POST` - POST + * `PUT` - PUT + * `PATCH` - PATCH + * `DELETE` - DELETE + source: + openapi: openapi/openapi.yml + ModelOperation: + docs: >- + # The ModelOperation Object + + ### Description + + The `ModelOperation` object is used to represent the operations that are + currently supported for a given model. + + + ### Usage Example + + View what operations are supported for the `Candidate` endpoint. + properties: + model_name: string + available_operations: list + required_post_parameters: list + supported_fields: list + source: + openapi: openapi/openapi.yml + ModelPermissionDeserializer: + properties: + is_enabled: optional + source: + openapi: openapi/openapi.yml + ModelPermissionDeserializerRequest: + properties: + is_enabled: optional + source: + openapi: openapi/openapi.yml + MultipartFormFieldRequestEncoding: + discriminated: false + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + union: + - EncodingEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + MultipartFormFieldRequest: + docs: >- + # The MultipartFormField Object + + ### Description + + The `MultipartFormField` object is used to represent fields in an HTTP + request using `multipart/form-data`. + + + ### Usage Example + + Create a `MultipartFormField` to define a multipart form entry. + properties: + name: + type: string + docs: The name of the form field + validation: + minLength: 1 + data: + type: string + docs: The data for the form field. + validation: + minLength: 1 + encoding: + type: optional + docs: |- + The encoding of the value of `data`. Defaults to `RAW` if not defined. + + * `RAW` - RAW + * `BASE64` - BASE64 + * `GZIP_BASE64` - GZIP_BASE64 + file_name: + type: optional + docs: The file name of the form field, if the field is for a file. + validation: + minLength: 1 + content_type: + type: optional + docs: The MIME type of the file, if the field is for a file. + validation: + minLength: 1 + source: + openapi: openapi/openapi.yml + PaginatedAccountDetailsAndActionsList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedAccountList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedAttachmentList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedAuditLogEventList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedCollectionList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedCommentList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedContactList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedIssueList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedProjectList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedRemoteFieldClassList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedRoleList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedSyncStatusList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedTagList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedTeamList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedTicketList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedUserList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PaginatedViewerList: + properties: + next: optional + previous: optional + results: optional> + source: + openapi: openapi/openapi.yml + PatchedTicketRequestStatus: + discriminated: false + docs: |- + The current status of the ticket. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `IN_PROGRESS` - IN_PROGRESS + * `ON_HOLD` - ON_HOLD + union: + - TicketStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PatchedTicketRequestAccessLevel: + discriminated: false + docs: >- + The description of who is able to access a given ticket, or where access + is inherited from. + + + * `COMPANY` - COMPANY + + * `PUBLIC` - PUBLIC + + * `PRIVATE` - PRIVATE + + * `COLLECTION` - COLLECTION + union: + - TicketAccessLevelEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PatchedTicketRequestPriority: + discriminated: false + docs: |- + The priority or urgency of the Ticket. + + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + union: + - PriorityEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + PatchedTicketRequest: + docs: |- + # The Ticket Object + ### Description + The `Ticket` object is used to represent a ticket, issue, task or case. + ### Usage Example + TODO + properties: + name: + type: optional + docs: The ticket's name. + assignees: + type: optional>> + docs: >- + The individual `Users` who are assigned to this ticket. This does not + include `Users` who just have view access to this ticket. To fetch all + `Users` and `Teams` that can access the ticket, use the `GET + /tickets/{ticket_id}/viewers` + [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list). + assigned_teams: + type: optional>> + docs: >- + The `Teams` that are assigned to this ticket. This does not include + `Teams` who just have view access to this ticket. To fetch all `Users` + and `Teams` that can access this ticket, use the `GET + /tickets/{ticket_id}/viewers` + [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list). + creator: + type: optional + docs: The user who created this ticket. + validation: + format: uuid + due_date: + type: optional + docs: The ticket's due date. + status: + type: optional + docs: |- + The current status of the ticket. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `IN_PROGRESS` - IN_PROGRESS + * `ON_HOLD` - ON_HOLD + description: + type: optional + docs: >- + The ticket’s description. HTML version of description is mapped if + supported by the third-party platform. + collections: + type: optional>> + docs: The `Collections` that this `Ticket` is included in. + ticket_type: + type: optional + docs: >- + The sub category of the ticket within the 3rd party system. Examples + include incident, task, subtask or to-do. + account: + type: optional + docs: The account associated with the ticket. + validation: + format: uuid + contact: + type: optional + docs: The contact associated with the ticket. + validation: + format: uuid + parent_ticket: + type: optional + docs: The ticket's parent ticket. + validation: + format: uuid + access_level: + type: optional + docs: >- + The description of who is able to access a given ticket, or where + access is inherited from. + + + * `COMPANY` - COMPANY + + * `PUBLIC` - PUBLIC + + * `PRIVATE` - PRIVATE + + * `COLLECTION` - COLLECTION + tags: optional>> + roles: optional>> + completed_at: + type: optional + docs: When the ticket was completed. + ticket_url: + type: optional + docs: The 3rd party url of the Ticket. + validation: + format: uri + maxLength: 2000 + priority: + type: optional + docs: |- + The priority or urgency of the Ticket. + + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + PriorityEnum: + enum: + - URGENT + - HIGH + - NORMAL + - LOW + docs: |- + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + source: + openapi: openapi/openapi.yml + Project: + docs: >- + # The Project Object + + ### Description + + Please use the `Collection` model. This model will be fully deprecated on + 3/30/2024. + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: 'The project''s name. ' + description: + type: optional + docs: The project's description. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + RemoteData: + docs: >- + # The RemoteData Object + + ### Description + + The `RemoteData` object is used to represent the full data pulled from the + third-party API for an object. + + + ### Usage Example + + TODO + properties: + path: + type: string + docs: The third-party API path that is being called. + data: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + RemoteEndpointInfo: + properties: + method: string + url_path: string + field_traversal_path: list + source: + openapi: openapi/openapi.yml + RemoteFieldRemoteFieldClass: + discriminated: false + union: + - string + - RemoteFieldClass + source: + openapi: openapi/openapi.yml + inline: true + RemoteField: + properties: + remote_field_class: RemoteFieldRemoteFieldClass + value: optional + source: + openapi: openapi/openapi.yml + RemoteFieldApiCoverage: + discriminated: false + union: + - integer + - double + source: + openapi: openapi/openapi.yml + inline: true + RemoteFieldApi: + properties: + schema: map + remote_key_name: string + remote_endpoint_info: RemoteEndpointInfo + example_values: optional> + advanced_metadata: optional + coverage: + type: optional + access: read-only + source: + openapi: openapi/openapi.yml + RemoteFieldApiResponse: + properties: + Ticket: optional> + Comment: optional> + Project: optional> + Collection: optional> + User: optional> + Role: optional> + Account: optional> + Team: optional> + Attachment: optional> + Tag: optional> + Contact: optional> + source: + openapi: openapi/openapi.yml + RemoteFieldClassFieldType: + discriminated: false + union: + - string + - FieldTypeEnum + source: + openapi: openapi/openapi.yml + inline: true + RemoteFieldClassFieldFormat: + discriminated: false + union: + - string + - FieldFormatEnum + source: + openapi: openapi/openapi.yml + inline: true + RemoteFieldClassFieldChoicesItem: + properties: + value: optional + display_name: optional + source: + openapi: openapi/openapi.yml + inline: true + RemoteFieldClass: + properties: + id: optional + display_name: optional + remote_key_name: optional + description: optional + is_custom: optional + is_required: optional + field_type: optional + field_format: optional + field_choices: + type: optional> + access: read-only + item_schema: optional + source: + openapi: openapi/openapi.yml + RemoteFieldRequestRemoteFieldClass: + discriminated: false + union: + - type: string + validation: + format: uuid + - RemoteFieldClass + source: + openapi: openapi/openapi.yml + inline: true + RemoteFieldRequest: + properties: + remote_field_class: RemoteFieldRequestRemoteFieldClass + value: optional + source: + openapi: openapi/openapi.yml + RemoteKey: + docs: >- + # The RemoteKey Object + + ### Description + + The `RemoteKey` object is used to represent a request for a new remote + key. + + + ### Usage Example + + Post a `GenerateRemoteKey` to receive a new `RemoteKey`. + properties: + name: string + key: string + source: + openapi: openapi/openapi.yml + RemoteResponse: + docs: >- + # The RemoteResponse Object + + ### Description + + The `RemoteResponse` object is used to represent information returned from + a third-party endpoint. + + + ### Usage Example + + View the `RemoteResponse` returned from your `DataPassthrough`. + properties: + method: string + path: string + status: integer + response: unknown + response_headers: optional> + response_type: optional + headers: optional> + source: + openapi: openapi/openapi.yml + RequestFormatEnum: + enum: + - JSON + - XML + - MULTIPART + docs: |- + * `JSON` - JSON + * `XML` - XML + * `MULTIPART` - MULTIPART + source: + openapi: openapi/openapi.yml + ResponseTypeEnum: + enum: + - JSON + - BASE64_GZIP + docs: |- + * `JSON` - JSON + * `BASE64_GZIP` - BASE64_GZIP + source: + openapi: openapi/openapi.yml + RoleTicketActionsItem: + discriminated: false + union: + - string + - TicketActionsEnum + source: + openapi: openapi/openapi.yml + inline: true + RoleTicketAccess: + discriminated: false + docs: |- + The level of Ticket access that a User with this Role can perform. + + * `ALL` - ALL + * `ASSIGNED_ONLY` - ASSIGNED_ONLY + * `TEAM_ONLY` - TEAM_ONLY + union: + - string + - TicketAccessEnum + source: + openapi: openapi/openapi.yml + inline: true + Role: + docs: >- + # The Role Object + + ### Description + + The `Role` object is used to represent the set of actions & access that a + user with this role is allowed to perform. + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The name of the Role. + ticket_actions: + type: optional>> + docs: >- + The set of actions that a User with this Role can perform. Possible + enum values include: `VIEW`, `CREATE`, `EDIT`, `DELETE`, `CLOSE`, and + `ASSIGN`. + ticket_access: + type: optional + docs: |- + The level of Ticket access that a User with this Role can perform. + + * `ALL` - ALL + * `ASSIGNED_ONLY` - ASSIGNED_ONLY + * `TEAM_ONLY` - TEAM_ONLY + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + RoleEnum: + enum: + - ADMIN + - DEVELOPER + - MEMBER + - API + - SYSTEM + - MERGE_TEAM + docs: |- + * `ADMIN` - ADMIN + * `DEVELOPER` - DEVELOPER + * `MEMBER` - MEMBER + * `API` - API + * `SYSTEM` - SYSTEM + * `MERGE_TEAM` - MERGE_TEAM + source: + openapi: openapi/openapi.yml + SelectiveSyncConfigurationsUsageEnum: + enum: + - IN_NEXT_SYNC + - IN_LAST_SYNC + docs: |- + * `IN_NEXT_SYNC` - IN_NEXT_SYNC + * `IN_LAST_SYNC` - IN_LAST_SYNC + source: + openapi: openapi/openapi.yml + StatusFd5Enum: + enum: + - SYNCING + - DONE + - FAILED + - DISABLED + - PAUSED + - PARTIALLY_SYNCED + docs: |- + * `SYNCING` - SYNCING + * `DONE` - DONE + * `FAILED` - FAILED + * `DISABLED` - DISABLED + * `PAUSED` - PAUSED + * `PARTIALLY_SYNCED` - PARTIALLY_SYNCED + source: + openapi: openapi/openapi.yml + SyncStatusLastSyncResult: + discriminated: false + union: + - LastSyncResultEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + SyncStatus: + docs: >- + # The SyncStatus Object + + ### Description + + The `SyncStatus` object is used to represent the syncing state of an + account + + + ### Usage Example + + View the `SyncStatus` for an account to see how recently its models were + synced. + properties: + model_name: string + model_id: string + last_sync_start: optional + next_sync_start: optional + last_sync_result: optional + last_sync_finished: optional + status: StatusFd5Enum + is_initial_sync: boolean + selective_sync_configurations_usage: optional + source: + openapi: openapi/openapi.yml + Tag: + docs: |- + # The Tag Object + ### Description + The `Tag` object is used to represent a tag or label for a ticket. + + ### Usage Example + TODO + properties: + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + id: + type: optional + validation: + format: uuid + access: read-only + name: + type: optional + docs: The tag's name. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + Team: + docs: >- + # The Team Object + + ### Description + + The `Team` object is used to represent one or more `Users` within the + company receiving the ticket. + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The team's name. + description: + type: optional + docs: The team's description. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + TicketAssigneesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + TicketAssignedTeamsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Team + source: + openapi: openapi/openapi.yml + inline: true + TicketCreator: + discriminated: false + docs: The user who created this ticket. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + TicketStatus: + discriminated: false + docs: |- + The current status of the ticket. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `IN_PROGRESS` - IN_PROGRESS + * `ON_HOLD` - ON_HOLD + union: + - TicketStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + TicketCollectionsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Collection + source: + openapi: openapi/openapi.yml + inline: true + TicketAccount: + discriminated: false + docs: The account associated with the ticket. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + TicketContact: + discriminated: false + docs: The contact associated with the ticket. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + TicketParentTicket: + discriminated: false + docs: The ticket's parent ticket. + union: + - type: string + validation: + format: uuid + - Ticket + source: + openapi: openapi/openapi.yml + inline: true + TicketAttachmentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Attachment + source: + openapi: openapi/openapi.yml + inline: true + TicketAccessLevel: + discriminated: false + docs: >- + The description of who is able to access a given ticket, or where access + is inherited from. + + + * `COMPANY` - COMPANY + + * `PUBLIC` - PUBLIC + + * `PRIVATE` - PRIVATE + + * `COLLECTION` - COLLECTION + union: + - TicketAccessLevelEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + TicketPriority: + discriminated: false + docs: |- + The priority or urgency of the Ticket. + + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + union: + - PriorityEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + Ticket: + docs: |- + # The Ticket Object + ### Description + The `Ticket` object is used to represent a ticket, issue, task or case. + ### Usage Example + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The ticket's name. + assignees: + type: optional>> + docs: >- + The individual `Users` who are assigned to this ticket. This does not + include `Users` who just have view access to this ticket. To fetch all + `Users` and `Teams` that can access the ticket, use the `GET + /tickets/{ticket_id}/viewers` + [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list). + assigned_teams: + type: optional>> + docs: >- + The `Teams` that are assigned to this ticket. This does not include + `Teams` who just have view access to this ticket. To fetch all `Users` + and `Teams` that can access this ticket, use the `GET + /tickets/{ticket_id}/viewers` + [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list). + creator: + type: optional + docs: The user who created this ticket. + due_date: + type: optional + docs: The ticket's due date. + status: + type: optional + docs: |- + The current status of the ticket. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `IN_PROGRESS` - IN_PROGRESS + * `ON_HOLD` - ON_HOLD + description: + type: optional + docs: >- + The ticket’s description. HTML version of description is mapped if + supported by the third-party platform. + collections: + type: optional>> + docs: The `Collections` that this `Ticket` is included in. + ticket_type: + type: optional + docs: >- + The sub category of the ticket within the 3rd party system. Examples + include incident, task, subtask or to-do. + account: + type: optional + docs: The account associated with the ticket. + contact: + type: optional + docs: The contact associated with the ticket. + parent_ticket: + type: optional + docs: The ticket's parent ticket. + attachments: optional>> + access_level: + type: optional + docs: >- + The description of who is able to access a given ticket, or where + access is inherited from. + + + * `COMPANY` - COMPANY + + * `PUBLIC` - PUBLIC + + * `PRIVATE` - PRIVATE + + * `COLLECTION` - COLLECTION + tags: optional>> + roles: optional>> + remote_created_at: + type: optional + docs: When the third party's ticket was created. + remote_updated_at: + type: optional + docs: When the third party's ticket was updated. + completed_at: + type: optional + docs: When the ticket was completed. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + ticket_url: + type: optional + docs: The 3rd party url of the Ticket. + validation: + format: uri + maxLength: 2000 + priority: + type: optional + docs: |- + The priority or urgency of the Ticket. + + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + remote_fields: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + TicketAccessEnum: + enum: + - ALL + - ASSIGNED_ONLY + - TEAM_ONLY + docs: |- + * `ALL` - ALL + * `ASSIGNED_ONLY` - ASSIGNED_ONLY + * `TEAM_ONLY` - TEAM_ONLY + source: + openapi: openapi/openapi.yml + TicketAccessLevelEnum: + enum: + - COMPANY + - PUBLIC + - PRIVATE + - COLLECTION + docs: |- + * `COMPANY` - COMPANY + * `PUBLIC` - PUBLIC + * `PRIVATE` - PRIVATE + * `COLLECTION` - COLLECTION + source: + openapi: openapi/openapi.yml + TicketActionsEnum: + enum: + - VIEW + - CREATE + - EDIT + - DELETE + - CLOSE + - ASSIGN + docs: |- + * `VIEW` - VIEW + * `CREATE` - CREATE + * `EDIT` - EDIT + * `DELETE` - DELETE + * `CLOSE` - CLOSE + * `ASSIGN` - ASSIGN + source: + openapi: openapi/openapi.yml + TicketRequestAssigneesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + TicketRequestAssignedTeamsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Team + source: + openapi: openapi/openapi.yml + inline: true + TicketRequestCreator: + discriminated: false + docs: The user who created this ticket. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + TicketRequestStatus: + discriminated: false + docs: |- + The current status of the ticket. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `IN_PROGRESS` - IN_PROGRESS + * `ON_HOLD` - ON_HOLD + union: + - TicketStatusEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + TicketRequestCollectionsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Collection + source: + openapi: openapi/openapi.yml + inline: true + TicketRequestAccount: + discriminated: false + docs: The account associated with the ticket. + union: + - type: string + validation: + format: uuid + - Account + source: + openapi: openapi/openapi.yml + inline: true + TicketRequestContact: + discriminated: false + docs: The contact associated with the ticket. + union: + - type: string + validation: + format: uuid + - Contact + source: + openapi: openapi/openapi.yml + inline: true + TicketRequestParentTicket: + discriminated: false + docs: The ticket's parent ticket. + union: + - type: string + validation: + format: uuid + - Ticket + source: + openapi: openapi/openapi.yml + inline: true + TicketRequestAttachmentsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Attachment + source: + openapi: openapi/openapi.yml + inline: true + TicketRequestAccessLevel: + discriminated: false + docs: >- + The description of who is able to access a given ticket, or where access + is inherited from. + + + * `COMPANY` - COMPANY + + * `PUBLIC` - PUBLIC + + * `PRIVATE` - PRIVATE + + * `COLLECTION` - COLLECTION + union: + - TicketAccessLevelEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + TicketRequestPriority: + discriminated: false + docs: |- + The priority or urgency of the Ticket. + + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + union: + - PriorityEnum + - string + source: + openapi: openapi/openapi.yml + inline: true + TicketRequest: + docs: |- + # The Ticket Object + ### Description + The `Ticket` object is used to represent a ticket, issue, task or case. + ### Usage Example + TODO + properties: + name: + type: optional + docs: The ticket's name. + assignees: + type: optional>> + docs: >- + The individual `Users` who are assigned to this ticket. This does not + include `Users` who just have view access to this ticket. To fetch all + `Users` and `Teams` that can access the ticket, use the `GET + /tickets/{ticket_id}/viewers` + [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list). + assigned_teams: + type: optional>> + docs: >- + The `Teams` that are assigned to this ticket. This does not include + `Teams` who just have view access to this ticket. To fetch all `Users` + and `Teams` that can access this ticket, use the `GET + /tickets/{ticket_id}/viewers` + [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list). + creator: + type: optional + docs: The user who created this ticket. + due_date: + type: optional + docs: The ticket's due date. + status: + type: optional + docs: |- + The current status of the ticket. + + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `IN_PROGRESS` - IN_PROGRESS + * `ON_HOLD` - ON_HOLD + description: + type: optional + docs: >- + The ticket’s description. HTML version of description is mapped if + supported by the third-party platform. + collections: + type: optional>> + docs: The `Collections` that this `Ticket` is included in. + ticket_type: + type: optional + docs: >- + The sub category of the ticket within the 3rd party system. Examples + include incident, task, subtask or to-do. + account: + type: optional + docs: The account associated with the ticket. + contact: + type: optional + docs: The contact associated with the ticket. + parent_ticket: + type: optional + docs: The ticket's parent ticket. + attachments: optional>> + access_level: + type: optional + docs: >- + The description of who is able to access a given ticket, or where + access is inherited from. + + + * `COMPANY` - COMPANY + + * `PUBLIC` - PUBLIC + + * `PRIVATE` - PRIVATE + + * `COLLECTION` - COLLECTION + tags: optional>> + roles: optional>> + completed_at: + type: optional + docs: When the ticket was completed. + ticket_url: + type: optional + docs: The 3rd party url of the Ticket. + validation: + format: uri + maxLength: 2000 + priority: + type: optional + docs: |- + The priority or urgency of the Ticket. + + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + integration_params: + type: optional> + access: write-only + linked_account_params: + type: optional> + access: write-only + remote_fields: + type: optional> + access: write-only + source: + openapi: openapi/openapi.yml + TicketResponse: + properties: + model: Ticket + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + TicketStatusEnum: + enum: + - OPEN + - CLOSED + - IN_PROGRESS + - ON_HOLD + docs: |- + * `OPEN` - OPEN + * `CLOSED` - CLOSED + * `IN_PROGRESS` - IN_PROGRESS + * `ON_HOLD` - ON_HOLD + source: + openapi: openapi/openapi.yml + TicketingAttachmentResponse: + properties: + model: Attachment + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + TicketingContactResponse: + properties: + model: Contact + warnings: list + errors: list + logs: optional> + source: + openapi: openapi/openapi.yml + UserTeamsItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Team + source: + openapi: openapi/openapi.yml + inline: true + UserRolesItem: + discriminated: false + union: + - type: string + validation: + format: uuid + - Role + source: + openapi: openapi/openapi.yml + inline: true + User: + docs: >- + # The User Object + + ### Description + + The `User` object is used to represent a user with a login to the + ticketing system. + + Users are either assignees who are directly responsible or a viewer on a + `Ticket`/ `Collection`. + + + ### Usage Example + + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + name: + type: optional + docs: The user's name. + email_address: + type: optional + docs: The user's email address. + is_active: + type: optional + docs: Whether or not the user is active. + teams: optional>> + roles: optional>> + avatar: + type: optional + docs: The user's avatar picture. + remote_was_deleted: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium add-on. + Native deletion detection is offered for free with limited coverage. + [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + access: read-only + field_mappings: + type: optional> + access: read-only + remote_data: + type: optional> + access: read-only + source: + openapi: openapi/openapi.yml + ValidationProblemSource: + properties: + pointer: string + source: + openapi: openapi/openapi.yml + ViewerTeam: + discriminated: false + docs: The Team this Viewer belongs to. + union: + - type: string + validation: + format: uuid + - Team + source: + openapi: openapi/openapi.yml + inline: true + ViewerUser: + discriminated: false + docs: The User this Viewer belongs to. + union: + - type: string + validation: + format: uuid + - User + source: + openapi: openapi/openapi.yml + inline: true + Viewer: + docs: |- + # The Viewer Object + ### Description + The `Viewer` object is used to represent a User or Team within a company. + + ### Usage Example + TODO + properties: + id: + type: optional + validation: + format: uuid + access: read-only + remote_id: + type: optional + docs: The third-party API ID of the matching object. + created_at: + type: optional + docs: The datetime that this object was created by Merge. + access: read-only + modified_at: + type: optional + docs: The datetime that this object was modified by Merge. + access: read-only + team: + type: optional + docs: The Team this Viewer belongs to. + user: + type: optional + docs: The User this Viewer belongs to. + source: + openapi: openapi/openapi.yml + WarningValidationProblem: + properties: + source: optional + title: string + detail: string + problem_type: string + source: + openapi: openapi/openapi.yml + WebhookReceiver: + properties: + event: string + is_active: boolean + key: optional + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/accountDetails.yml b/.mock/definition/ticketing/accountDetails.yml new file mode 100644 index 000000000..1cd26dd4b --- /dev/null +++ b/.mock/definition/ticketing/accountDetails.yml @@ -0,0 +1,36 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /ticketing/v1/account-details + method: GET + auth: true + docs: Get details for a linked account. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.AccountDetails + status-code: 200 + examples: + - headers: {} + response: + body: + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + integration: BambooHR + integration_slug: bamboohr + category: hris + end_user_origin_id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + end_user_organization_name: Waystar Royco + end_user_email_address: kendall.roy@waystar-royco.com + status: COMPLETE + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/accountToken.yml b/.mock/definition/ticketing/accountToken.yml new file mode 100644 index 000000000..e3b505e57 --- /dev/null +++ b/.mock/definition/ticketing/accountToken.yml @@ -0,0 +1,44 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /ticketing/v1/account-token/{public_token} + method: GET + auth: true + docs: >- + Returns the account token for the end user with the provided public + token. + source: + openapi: openapi/openapi.yml + path-parameters: + public_token: string + response: + docs: '' + type: root.AccountToken + status-code: 200 + examples: + - path-parameters: + public_token: public_token + response: + body: + account_token: T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + id: 0496d4c2-42e6-4072-80b3-7b69bfdc76fd + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/accounts.yml b/.mock/definition/ticketing/accounts.yml new file mode 100644 index 000000000..9dc3f7a81 --- /dev/null +++ b/.mock/definition/ticketing/accounts.yml @@ -0,0 +1,142 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/accounts + method: GET + auth: true + docs: Returns a list of `Account` objects. + source: + openapi: openapi/openapi.yml + request: + name: AccountsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedAccountList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Waystar Royco + domains: + - waystar-royco.com + - royco.com + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + retrieve: + path: /ticketing/v1/accounts/{id} + method: GET + auth: true + docs: Returns an `Account` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: AccountsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Account + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Waystar Royco + domains: + - waystar-royco.com + - royco.com + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /actions + data: + - Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/asyncPassthrough.yml b/.mock/definition/ticketing/asyncPassthrough.yml new file mode 100644 index 000000000..0a2001fe1 --- /dev/null +++ b/.mock/definition/ticketing/asyncPassthrough.yml @@ -0,0 +1,70 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /ticketing/v1/async-passthrough + method: POST + auth: true + docs: >- + Asynchronously pull data from an endpoint not currently supported by + Merge. + source: + openapi: openapi/openapi.yml + request: + body: root.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: root.AsyncPassthroughReciept + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + async_passthrough_receipt_id: fd29020f-2695-445e-922e-dcd5e81903fd + retrieve: + path: /ticketing/v1/async-passthrough/{async_passthrough_receipt_id} + method: GET + auth: true + docs: Retrieves data from earlier async-passthrough POST request + source: + openapi: openapi/openapi.yml + path-parameters: + async_passthrough_receipt_id: string + response: + docs: '' + type: AsyncPassthroughRetrieveResponse + status-code: 200 + examples: + - path-parameters: + async_passthrough_receipt_id: async_passthrough_receipt_id + headers: {} + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: openapi/openapi.yml +types: + AsyncPassthroughRetrieveResponse: + discriminated: false + union: + - root.RemoteResponse + - string + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/attachments.yml b/.mock/definition/ticketing/attachments.yml new file mode 100644 index 000000000..9a8a8a9c5 --- /dev/null +++ b/.mock/definition/ticketing/attachments.yml @@ -0,0 +1,446 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/attachments + method: GET + auth: true + docs: Returns a list of `Attachment` objects. + source: + openapi: openapi/openapi.yml + request: + name: AttachmentsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_created_after: + type: optional + docs: >- + If provided, will only return attachments created in the third + party platform after this datetime. + remote_id: + type: optional + docs: The API provider's ID for the given object. + ticket_id: + type: optional + docs: If provided, will only return comments for this ticket. + response: + docs: '' + type: root.PaginatedAttachmentList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + file_name: Screenshot.png + ticket: ticket + file_url: http://alturl.com/p749b + content_type: jpeg + uploaded_by: 28b54125-287f-494d-965e-3c5b330c9a68 + remote_created_at: '2022-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + create: + path: /ticketing/v1/attachments + method: POST + auth: true + docs: Creates an `Attachment` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: TicketingAttachmentEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.AttachmentRequest + content-type: application/json + response: + docs: '' + type: root.TicketingAttachmentResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + file_name: Screenshot.png + ticket: ticket + file_url: http://alturl.com/p749b + content_type: jpeg + uploaded_by: 28b54125-287f-494d-965e-3c5b330c9a68 + remote_created_at: '2022-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /ticketing/v1/attachments/{id} + method: GET + auth: true + docs: Returns an `Attachment` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: AttachmentsRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Attachment + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + file_name: Screenshot.png + ticket: ticket + file_url: http://alturl.com/p749b + content_type: jpeg + uploaded_by: 28b54125-287f-494d-965e-3c5b330c9a68 + remote_created_at: '2022-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + downloadRetrieve: + path: /ticketing/v1/attachments/{id}/download + method: GET + auth: true + docs: Returns the `File` content with the given `id` as a stream of bytes. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: AttachmentsDownloadRetrieveRequest + query-parameters: + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + mime_type: + type: optional + docs: >- + If provided, specifies the export format of the file to be + downloaded. For information on supported export formats, please + refer to our export format help center article. + response: + docs: '' + type: file + status-code: 200 + metaPostRetrieve: + path: /ticketing/v1/attachments/meta/post + method: GET + auth: true + docs: Returns metadata for `TicketingAttachment` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/auditTrail.yml b/.mock/definition/ticketing/auditTrail.yml new file mode 100644 index 000000000..82660fae0 --- /dev/null +++ b/.mock/definition/ticketing/auditTrail.yml @@ -0,0 +1,94 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/audit-trail + method: GET + auth: true + docs: Gets a list of audit trail events. + source: + openapi: openapi/openapi.yml + request: + name: AuditTrailListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + before this time + event_type: + type: optional + docs: >- + If included, will only include events with the given event type. + Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, + `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, + `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, + `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, + `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, + `DELETED_LINKED_ACCOUNT`, + `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, + `CREATED_DESTINATION`, `DELETED_DESTINATION`, + `CHANGED_DESTINATION`, `CHANGED_SCOPES`, + `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, + `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, + `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, + `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, + `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, + `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, + `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, + `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, + `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, + `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, + `END_USER_CREDENTIALS_ACCESSED` + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include audit trail events that occurred + after this time + user_email: + type: optional + docs: >- + If provided, this will return events associated with the specified + user email. Please note that the email address reflects the user's + email at the time of the event, and may not be their current + email. + response: + docs: '' + type: root.PaginatedAuditLogEventList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: b5ceea2a-7171-47ce-8090-165cfce5572c + user_name: Gil Feig + user_email: hello@merge.dev + role: ADMIN + ip_address: 192.0.2.123 + event_type: CREATED_REMOTE_PRODUCTION_API_KEY + event_description: >- + Organization-wide Scopes for model hris.Employee updated + from Read to Read+Write + created_at: '2024-01-15T09:30:00Z' + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/availableActions.yml b/.mock/definition/ticketing/availableActions.yml new file mode 100644 index 000000000..745b76c72 --- /dev/null +++ b/.mock/definition/ticketing/availableActions.yml @@ -0,0 +1,50 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + retrieve: + path: /ticketing/v1/available-actions + method: GET + auth: true + docs: Returns a list of models and actions available for an account. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.AvailableActions + status-code: 200 + examples: + - headers: {} + response: + body: + integration: + name: name + abbreviated_name: abbreviated_name + categories: + - hris + image: image + square_image: square_image + color: color + slug: slug + api_endpoints_to_documentation_urls: + key: value + webhook_setup_guide_url: webhook_setup_guide_url + category_beta_status: + key: value + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/collections.yml b/.mock/definition/ticketing/collections.yml new file mode 100644 index 000000000..dbf6f1317 --- /dev/null +++ b/.mock/definition/ticketing/collections.yml @@ -0,0 +1,253 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/collections + method: GET + auth: true + docs: Returns a list of `Collection` objects. + source: + openapi: openapi/openapi.yml + request: + name: CollectionsListRequest + query-parameters: + collection_type: + type: optional + docs: If provided, will only return collections of the given type. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + parent_collection_id: + type: optional + docs: >- + If provided, will only return collections whose parent collection + matches the given id. + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.PaginatedCollectionList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: fb8c55b6-1cb8-4b4c-9fb6-17924231619d + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Q1 Platform + description: For tracking all tasks related to Platform for Q1 + access_level: PRIVATE + collection_type: LIST + parent_collection: parent_collection + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + viewersList: + path: /ticketing/v1/collections/{collection_id}/viewers + method: GET + auth: true + docs: >- + Returns a list of `Viewer` objects that point to a User id or Team id + that is either an assignee or viewer on a `Collection` with the given + id. [Learn + more.](https://help.merge.dev/en/articles/10333658-ticketing-access-control-list-acls) + source: + openapi: openapi/openapi.yml + path-parameters: + collection_id: string + request: + name: CollectionsViewersListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedViewerList + status-code: 200 + examples: + - path-parameters: + collection_id: collection_id + headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + team: team + user: user + retrieve: + path: /ticketing/v1/collections/{id} + method: GET + auth: true + docs: Returns a `Collection` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: CollectionsRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional> + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional> + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.Collection + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: fb8c55b6-1cb8-4b4c-9fb6-17924231619d + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Q1 Platform + description: For tracking all tasks related to Platform for Q1 + access_level: PRIVATE + collection_type: LIST + parent_collection: parent_collection + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + source: + openapi: openapi/openapi.yml +types: + CollectionsViewersListRequestExpand: + enum: + - team + - user + - value: user,team + name: UserTeam + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/comments.yml b/.mock/definition/ticketing/comments.yml new file mode 100644 index 000000000..71a70dc5b --- /dev/null +++ b/.mock/definition/ticketing/comments.yml @@ -0,0 +1,461 @@ +types: + CommentsListRequestExpand: + enum: + - contact + - value: contact,ticket + name: ContactTicket + - ticket + - user + - value: user,contact + name: UserContact + - value: user,contact,ticket + name: UserContactTicket + - value: user,ticket + name: UserTicket + source: + openapi: openapi/openapi.yml + CommentsRetrieveRequestExpand: + enum: + - contact + - value: contact,ticket + name: ContactTicket + - ticket + - user + - value: user,contact + name: UserContact + - value: user,contact,ticket + name: UserContactTicket + - value: user,ticket + name: UserTicket + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/comments + method: GET + auth: true + docs: Returns a list of `Comment` objects. + source: + openapi: openapi/openapi.yml + request: + name: CommentsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_created_after: + type: optional + docs: >- + If provided, will only return Comments created in the third party + platform after this datetime. + remote_id: + type: optional + docs: The API provider's ID for the given object. + ticket_id: + type: optional + docs: If provided, will only return comments for this ticket. + response: + docs: '' + type: root.PaginatedCommentList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + user: user + contact: contact + body: >- + When will these integrations be done? You all should use + Merge. + html_body: >- + When will these integrations be done? You all should use + Merge. + ticket: ticket + is_private: true + remote_created_at: '1990-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + create: + path: /ticketing/v1/comments + method: POST + auth: true + docs: Creates a `Comment` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: CommentEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.CommentRequest + content-type: application/json + response: + docs: '' + type: root.CommentResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + user: user + contact: contact + body: >- + When will these integrations be done? You all should use + Merge. + html_body: >- + When will these integrations be done? You all should use + Merge. + ticket: ticket + is_private: true + remote_created_at: '1990-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /ticketing/v1/comments/{id} + method: GET + auth: true + docs: Returns a `Comment` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: CommentsRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Comment + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + user: user + contact: contact + body: When will these integrations be done? You all should use Merge. + html_body: >- + When will these integrations be done? You all should use + Merge. + ticket: ticket + is_private: true + remote_created_at: '1990-11-10T00:00:00Z' + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + metaPostRetrieve: + path: /ticketing/v1/comments/meta/post + method: GET + auth: true + docs: Returns metadata for `Comment` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/contacts.yml b/.mock/definition/ticketing/contacts.yml new file mode 100644 index 000000000..e4a13d7c4 --- /dev/null +++ b/.mock/definition/ticketing/contacts.yml @@ -0,0 +1,406 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/contacts + method: GET + auth: true + docs: Returns a list of `Contact` objects. + source: + openapi: openapi/openapi.yml + request: + name: ContactsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedContactList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Cousin Greg + email_address: greg@waystar-royco.com + phone_number: '5108890293' + details: Executive Assistant to Tom Wambsgans + account: account + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + create: + path: /ticketing/v1/contacts + method: POST + auth: true + docs: Creates a `Contact` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: TicketingContactEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.ContactRequest + content-type: application/json + response: + docs: '' + type: root.TicketingContactResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Cousin Greg + email_address: greg@waystar-royco.com + phone_number: '5108890293' + details: Executive Assistant to Tom Wambsgans + account: account + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /ticketing/v1/contacts/{id} + method: GET + auth: true + docs: Returns a `Contact` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: ContactsRetrieveRequest + query-parameters: + expand: + type: optional> + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Contact + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Cousin Greg + email_address: greg@waystar-royco.com + phone_number: '5108890293' + details: Executive Assistant to Tom Wambsgans + account: account + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + metaPostRetrieve: + path: /ticketing/v1/contacts/meta/post + method: GET + auth: true + docs: Returns metadata for `TicketingContact` POSTs. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/deleteAccount.yml b/.mock/definition/ticketing/deleteAccount.yml new file mode 100644 index 000000000..b2d1911dd --- /dev/null +++ b/.mock/definition/ticketing/deleteAccount.yml @@ -0,0 +1,15 @@ +service: + auth: false + base-path: '' + endpoints: + delete: + path: /ticketing/v1/delete-account + method: POST + auth: true + docs: Delete a linked account. + source: + openapi: openapi/openapi.yml + examples: + - headers: {} + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/fieldMapping.yml b/.mock/definition/ticketing/fieldMapping.yml new file mode 100644 index 000000000..3051c3fcc --- /dev/null +++ b/.mock/definition/ticketing/fieldMapping.yml @@ -0,0 +1,722 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + field_mappings_retrieve: + path: /ticketing/v1/field-mappings + method: GET + auth: true + docs: >- + Get all Field Mappings for this Linked Account. Field Mappings are + mappings between third-party Remote Fields and user defined Merge + fields. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: openapi/openapi.yml + request: + name: FieldMappingsRetrieveRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + response: + docs: '' + type: root.FieldMappingApiInstanceResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Ticket: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Comment: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Project: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Collection: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + User: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Role: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Account: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Team: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Attachment: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Tag: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + Contact: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + field_mappings_create: + path: /ticketing/v1/field-mappings + method: POST + auth: true + docs: >- + Create new Field Mappings that will be available after the next + scheduled sync. This will cause the next sync for this Linked Account to + sync **ALL** data from start. + source: + openapi: openapi/openapi.yml + request: + name: CreateFieldMappingRequest + query-parameters: + exclude_remote_field_metadata: + type: optional + docs: >- + If `true`, remote fields metadata is excluded from each field + mapping instance (i.e. `remote_fields.remote_key_name` and + `remote_fields.schema` will be null). This will increase the speed + of the request since these fields require some calculations. + body: + properties: + target_field_name: + type: string + docs: >- + The name of the target field you want this remote field to map + to. + validation: + minLength: 1 + target_field_description: + type: string + docs: >- + The description of the target field you want this remote field + to map to. + validation: + minLength: 1 + remote_field_traversal_path: + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + type: list + remote_method: + type: string + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: string + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + common_model_name: + type: string + docs: >- + The name of the Common Model that the remote field corresponds + to in a given category. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.FieldMappingInstanceResponse + status-code: 201 + examples: + - headers: {} + request: + target_field_name: example_target_field_name + target_field_description: this is a example description of the target field + remote_field_traversal_path: + - example_remote_field + remote_method: GET + remote_url_path: /example-url-path + common_model_name: ExampleCommonModel + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_destroy: + path: /ticketing/v1/field-mappings/{field_mapping_id} + method: DELETE + auth: true + docs: >- + Deletes Field Mappings for a Linked Account. All data related to this + Field Mapping will be deleted and these changes will be reflected after + the next scheduled sync. This will cause the next sync for this Linked + Account to sync **ALL** data from start. + source: + openapi: openapi/openapi.yml + path-parameters: + field_mapping_id: string + response: + docs: '' + type: root.FieldMappingInstanceResponse + status-code: 204 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + field_mappings_partial_update: + path: /ticketing/v1/field-mappings/{field_mapping_id} + method: PATCH + auth: true + docs: >- + Create or update existing Field Mappings for a Linked Account. Changes + will be reflected after the next scheduled sync. This will cause the + next sync for this Linked Account to sync **ALL** data from start. + source: + openapi: openapi/openapi.yml + path-parameters: + field_mapping_id: string + request: + name: PatchedEditFieldMappingRequest + body: + properties: + remote_field_traversal_path: + type: optional> + docs: >- + The field traversal path of the remote field listed when you hit + the GET /remote-fields endpoint. + remote_method: + type: optional + docs: >- + The method of the remote endpoint where the remote field is + coming from. + validation: + minLength: 1 + remote_url_path: + type: optional + docs: >- + The path of the remote endpoint where the remote field is coming + from. + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.FieldMappingInstanceResponse + status-code: 200 + examples: + - path-parameters: + field_mapping_id: field_mapping_id + headers: {} + request: {} + response: + body: + model: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + is_integration_wide: true + target_field: + name: example_target_field_name + description: this is a example description of a target field + is_organization_wide: true + remote_field: + remote_key_name: example_remote_field_key + schema: + type: string + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_remote_field_key + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + remote_fields_retrieve: + path: /ticketing/v1/remote-fields + method: GET + auth: true + docs: >- + Get all remote fields for a Linked Account. Remote fields are + third-party fields that are accessible after initial sync if remote_data + is enabled. You can use remote fields to override existing Merge fields + or map a new Merge field. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). + source: + openapi: openapi/openapi.yml + request: + name: RemoteFieldsRetrieveRequest + query-parameters: + common_models: + type: optional + docs: >- + A comma seperated list of Common Model names. If included, will + only return Remote Fields for those Common Models. + include_example_values: + type: optional + docs: >- + If true, will include example values, where available, for remote + fields in the 3rd party platform. These examples come from active + data from your customers. + response: + docs: '' + type: root.RemoteFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Ticket: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Comment: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Project: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Collection: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + User: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Role: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Account: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Team: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Attachment: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Tag: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + Contact: + - schema: + type: string + remote_key_name: example_remote_key_name + remote_endpoint_info: + method: GET + url_path: /example-url-path + field_traversal_path: + - example_key_name + example_values: + - example + advanced_metadata: + id: id + coverage: 1 + target_fields_retrieve: + path: /ticketing/v1/target-fields + method: GET + auth: true + docs: >- + Get all organization-wide Target Fields, this will not include any + Linked Account specific Target Fields. Organization-wide Target Fields + are additional fields appended to the Merge Common Model for all Linked + Accounts in a category. [Learn + more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.ExternalTargetFieldApiResponse + status-code: 200 + examples: + - headers: {} + response: + body: + Ticket: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Comment: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Project: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Collection: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + User: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Role: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Account: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Team: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Attachment: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Tag: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + Contact: + - name: example_target_field_name + description: this is a example description of a target field + is_mapped: is_mapped + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/forceResync.yml b/.mock/definition/ticketing/forceResync.yml new file mode 100644 index 000000000..a9669fa27 --- /dev/null +++ b/.mock/definition/ticketing/forceResync.yml @@ -0,0 +1,37 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + sync_status_resync_create: + path: /ticketing/v1/sync-status/resync + method: POST + auth: true + docs: >- + Force re-sync of all models. This endpoint is available for monthly, + quarterly, and highest sync frequency customers on the Professional or + Enterprise plans. Doing so will consume a sync credit for the relevant + linked account. Force re-syncs can also be triggered manually in the + Merge Dashboard and is available for all customers. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - model_name: Ticket + model_id: ticketing.Ticket + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/generateKey.yml b/.mock/definition/ticketing/generateKey.yml new file mode 100644 index 000000000..54e7585ca --- /dev/null +++ b/.mock/definition/ticketing/generateKey.yml @@ -0,0 +1,36 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /ticketing/v1/generate-key + method: POST + auth: true + docs: Create a remote key. + source: + openapi: openapi/openapi.yml + request: + name: GenerateRemoteKeyRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/issues.yml b/.mock/definition/ticketing/issues.yml new file mode 100644 index 000000000..badd03c17 --- /dev/null +++ b/.mock/definition/ticketing/issues.yml @@ -0,0 +1,129 @@ +types: + IssuesListRequestStatus: + enum: + - ONGOING + - RESOLVED + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/issues + method: GET + auth: true + docs: Gets all issues for Organization. + source: + openapi: openapi/openapi.yml + request: + name: IssuesListRequest + query-parameters: + account_token: optional + cursor: + type: optional + docs: The pagination cursor value. + end_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred before this time + end_user_organization_name: optional + first_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + after this datetime. + first_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose first incident time was + before this datetime. + include_muted: + type: optional + docs: If true, will include muted issues + integration_name: optional + last_incident_time_after: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + after this datetime. + last_incident_time_before: + type: optional + docs: >- + If provided, will only return issues whose last incident time was + before this datetime. + linked_account_id: + type: optional + docs: >- + If provided, will only include issues pertaining to the linked + account passed in. + page_size: + type: optional + docs: Number of results to return per page. + start_date: + type: optional + docs: >- + If included, will only include issues whose most recent action + occurred after this time + status: + type: optional + docs: |- + Status of the issue. Options: ('ONGOING', 'RESOLVED') + + * `ONGOING` - ONGOING + * `RESOLVED` - RESOLVED + response: + docs: '' + type: root.PaginatedIssueList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + retrieve: + path: /ticketing/v1/issues/{id} + method: GET + auth: true + docs: Get a specific issue. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + response: + docs: '' + type: root.Issue + status-code: 200 + examples: + - path-parameters: + id: id + response: + body: + id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 + status: ONGOING + error_description: Missing Permissions + end_user: + key: value + first_incident_time: '2022-12-05T16:19:15Z' + last_incident_time: '2022-12-05T16:19:15Z' + is_muted: true + error_details: + - Missing employee permissions. + - Missing time off permissions. + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/linkToken.yml b/.mock/definition/ticketing/linkToken.yml new file mode 100644 index 000000000..908ed5849 --- /dev/null +++ b/.mock/definition/ticketing/linkToken.yml @@ -0,0 +1,152 @@ +imports: + root: __package__.yml +types: + EndUserDetailsRequestLanguage: + discriminated: false + docs: >- + The following subset of IETF language tags can be used to configure + localization. + + + * `en` - en + + * `de` - de + union: + - root.LanguageEnum + - string + source: + openapi: openapi/openapi.yml + inline: true +service: + auth: false + base-path: '' + endpoints: + create: + path: /ticketing/v1/link-token + method: POST + auth: true + docs: Creates a link token to be used when linking a new end user. + source: + openapi: openapi/openapi.yml + request: + name: EndUserDetailsRequest + body: + properties: + end_user_email_address: + type: string + docs: >- + Your end user's email address. This is purely for identification + purposes - setting this value will not cause any emails to be + sent. + validation: + minLength: 1 + maxLength: 100 + end_user_organization_name: + type: string + docs: Your end user's organization. + validation: + minLength: 1 + maxLength: 100 + end_user_origin_id: + type: string + docs: >- + This unique identifier typically represents the ID for your end + user in your product's database. This value must be distinct + from other Linked Accounts' unique identifiers. + validation: + minLength: 1 + maxLength: 100 + categories: + docs: The integration categories to show in Merge Link. + type: list + integration: + type: optional + docs: >- + The slug of a specific pre-selected integration for this linking + flow token. For examples of slugs, see + https://docs.merge.dev/guides/merge-link/single-integration/. + validation: + minLength: 1 + link_expiry_mins: + type: optional + docs: >- + An integer number of minutes between [30, 720 or 10080 if for a + Magic Link URL] for how long this token is valid. Defaults to + 30. + default: 30 + validation: + min: 30 + max: 10080 + should_create_magic_link_url: + type: optional + docs: >- + Whether to generate a Magic Link URL. Defaults to false. For + more information on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + hide_admin_magic_link: + type: optional + docs: >- + Whether to generate a Magic Link URL on the Admin Needed screen + during the linking flow. Defaults to false. For more information + on Magic Link, see + https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + default: false + common_models: + type: optional> + docs: >- + An array of objects to specify the models and fields that will + be disabled for a given Linked Account. Each object uses + model_id, enabled_actions, and disabled_fields to specify the + model, method, and fields that are scoped for a given Linked + Account. + category_common_model_scopes: + type: >- + optional>>> + docs: >- + When creating a Link Token, you can set permissions for Common + Models that will apply to the account that is going to be + linked. Any model or field not specified in link token payload + will default to existing settings. + language: + type: optional + docs: >- + The following subset of IETF language tags can be used to + configure localization. + + + * `en` - en + + * `de` - de + are_syncs_disabled: + type: optional + docs: >- + The boolean that indicates whether initial, periodic, and force + syncs will be disabled. + default: false + integration_specific_config: + type: optional> + docs: >- + A JSON object containing integration-specific configuration + options. + content-type: application/json + response: + docs: '' + type: root.LinkToken + status-code: 200 + examples: + - request: + end_user_email_address: example@gmail.com + end_user_organization_name: Test Organization + end_user_origin_id: '12345' + categories: + - hris + - ats + response: + body: + link_token: necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0 + integration_name: Lever + magic_link_url: https://link.merge.dev/asdfjkl12345jsndfgi2i83n + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/linkedAccounts.yml b/.mock/definition/ticketing/linkedAccounts.yml new file mode 100644 index 000000000..072cf0e3d --- /dev/null +++ b/.mock/definition/ticketing/linkedAccounts.yml @@ -0,0 +1,150 @@ +types: + LinkedAccountsListRequestCategory: + enum: + - accounting + - ats + - crm + - filestorage + - hris + - mktg + - ticketing + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/linked-accounts + method: GET + auth: true + docs: List linked accounts for your organization. + source: + openapi: openapi/openapi.yml + request: + name: LinkedAccountsListRequest + query-parameters: + category: + type: optional + docs: >- + Options: `accounting`, `ats`, `crm`, `filestorage`, `hris`, + `mktg`, `ticketing` + + + * `hris` - hris + + * `ats` - ats + + * `accounting` - accounting + + * `ticketing` - ticketing + + * `crm` - crm + + * `mktg` - mktg + + * `filestorage` - filestorage + cursor: + type: optional + docs: The pagination cursor value. + end_user_email_address: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given email address. + end_user_organization_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given organization name. + end_user_origin_id: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given origin ID. + end_user_origin_ids: + type: optional + docs: >- + Comma-separated list of EndUser origin IDs, making it possible to + specify multiple EndUsers at once. + id: + type: optional + validation: + format: uuid + ids: + type: optional + docs: >- + Comma-separated list of LinkedAccount IDs, making it possible to + specify multiple LinkedAccounts at once. + include_duplicates: + type: optional + docs: >- + If `true`, will include complete production duplicates of the + account specified by the `id` query parameter in the response. + `id` must be for a complete production linked account. + integration_name: + type: optional + docs: >- + If provided, will only return linked accounts associated with the + given integration name. + is_test_account: + type: optional + docs: >- + If included, will only include test linked accounts. If not + included, will only include non-test linked accounts. + page_size: + type: optional + docs: Number of results to return per page. + status: + type: optional + docs: >- + Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, + `RELINK_NEEDED` + response: + docs: '' + type: root.PaginatedAccountDetailsAndActionsList + status-code: 200 + examples: + - response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: e59b1821-f85c-4e28-a6b3-1804156f3563 + category: hris + status: COMPLETE + status_detail: Invalid login credentials + end_user_origin_id: 3ac95cde-6c7f-4eef-afec-be710b42308d + end_user_organization_name: Foo Bar, LLC + end_user_email_address: hradmin@foobar.dev + subdomain: foobar + webhook_listener_url: >- + https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4 + is_duplicate: true + integration: + name: name + categories: + - hris + color: color + slug: slug + passthrough_available: true + available_model_operations: + - model_name: Candidate + available_operations: + - FETCH + - CREATE + required_post_parameters: + - remote_user_id + supported_fields: + - first_name + - last_name + - company + - title + account_type: PRODUCTION + completed_at: '2024-08-26T20:11:19Z' + integration_specific_fields: + integration_specific_field: Varies by platform + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/passthrough.yml b/.mock/definition/ticketing/passthrough.yml new file mode 100644 index 000000000..44434d155 --- /dev/null +++ b/.mock/definition/ticketing/passthrough.yml @@ -0,0 +1,40 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /ticketing/v1/passthrough + method: POST + auth: true + docs: Pull data from an endpoint not currently supported by Merge. + source: + openapi: openapi/openapi.yml + request: + body: root.DataPassthroughRequest + content-type: application/json + response: + docs: '' + type: root.RemoteResponse + status-code: 200 + examples: + - headers: {} + request: + method: GET + path: /scooters + response: + body: + method: GET + path: /scooters + status: 200 + response: + key: value + response_headers: + X-Page-Token: value + response_type: JSON + headers: + EXTRA-HEADER: value + Authorization: + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/projects.yml b/.mock/definition/ticketing/projects.yml new file mode 100644 index 000000000..dd7493460 --- /dev/null +++ b/.mock/definition/ticketing/projects.yml @@ -0,0 +1,220 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/projects + method: GET + auth: true + docs: Returns a list of `Project` objects. + source: + openapi: openapi/openapi.yml + request: + name: ProjectsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedProjectList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: fb8c55b6-1cb8-4b4c-9fb6-17924231619d + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Q1 Platform + description: For tracking all tasks related to Platform for Q1 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + retrieve: + path: /ticketing/v1/projects/{id} + method: GET + auth: true + docs: Returns a `Project` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: ProjectsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Project + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: fb8c55b6-1cb8-4b4c-9fb6-17924231619d + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Q1 Platform + description: For tracking all tasks related to Platform for Q1 + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + usersList: + path: /ticketing/v1/projects/{parent_id}/users + method: GET + auth: true + docs: Returns a list of `User` objects. + source: + openapi: openapi/openapi.yml + path-parameters: + parent_id: string + request: + name: ProjectsUsersListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedUserList + status-code: 200 + examples: + - path-parameters: + parent_id: parent_id + headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig + email_address: help@merge.dev + is_active: true + teams: + - 28b54125-287f-494d-965e-3c5b330c9a68 + - 17a54124-287f-494d-965e-3c5b330c9a68 + roles: + - 23454124-387f-494d-265e-345b330c9123 + avatar: https://merge.dev/user_profile_pic.png + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + source: + openapi: openapi/openapi.yml +types: + ProjectsUsersListRequestExpand: + enum: + - roles + - teams + - value: teams,roles + name: TeamsRoles + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/regenerateKey.yml b/.mock/definition/ticketing/regenerateKey.yml new file mode 100644 index 000000000..5dab779d7 --- /dev/null +++ b/.mock/definition/ticketing/regenerateKey.yml @@ -0,0 +1,36 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + create: + path: /ticketing/v1/regenerate-key + method: POST + auth: true + docs: Exchange remote keys. + source: + openapi: openapi/openapi.yml + request: + name: RemoteKeyForRegenerationRequest + body: + properties: + name: + type: string + docs: The name of the remote key + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.RemoteKey + status-code: 200 + examples: + - request: + name: Remote Deployment Key 1 + response: + body: + name: Remote Deployment Key 1 + key: hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/roles.yml b/.mock/definition/ticketing/roles.yml new file mode 100644 index 000000000..09eb46802 --- /dev/null +++ b/.mock/definition/ticketing/roles.yml @@ -0,0 +1,144 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/roles + method: GET + auth: true + docs: Returns a list of `Role` objects. + source: + openapi: openapi/openapi.yml + request: + name: RolesListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedRoleList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 23454124-387f-494d-265e-345b330c9123 + remote_id: '123' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Member + ticket_actions: + - VIEW + - EDIT + - CREATE + ticket_access: ticket_access + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + retrieve: + path: /ticketing/v1/roles/{id} + method: GET + auth: true + docs: Returns a `Role` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: RolesRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Role + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 23454124-387f-494d-265e-345b330c9123 + remote_id: '123' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Member + ticket_actions: + - VIEW + - EDIT + - CREATE + ticket_access: ticket_access + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/scopes.yml b/.mock/definition/ticketing/scopes.yml new file mode 100644 index 000000000..118666544 --- /dev/null +++ b/.mock/definition/ticketing/scopes.yml @@ -0,0 +1,160 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + default_scopes_retrieve: + path: /ticketing/v1/default-scopes + method: GET + auth: true + docs: >- + Get the default permissions for Merge Common Models and fields across + all Linked Accounts of a given category. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.CommonModelScopeApi + status-code: 200 + examples: + - response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_retrieve: + path: /ticketing/v1/linked-account-scopes + method: GET + auth: true + docs: >- + Get all available permissions for Merge Common Models and fields for a + single Linked Account. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: root.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + linked_account_scopes_create: + path: /ticketing/v1/linked-account-scopes + method: POST + auth: true + docs: >- + Update permissions for any Common Model or field for a single Linked + Account. Any Scopes not set in this POST request will inherit the + default Scopes. [Learn + more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) + source: + openapi: openapi/openapi.yml + request: + name: LinkedAccountCommonModelScopeDeserializerRequest + body: + properties: + common_models: + docs: The common models you want to update the scopes for + type: list + content-type: application/json + response: + docs: '' + type: root.CommonModelScopeApi + status-code: 200 + examples: + - headers: {} + request: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - home_location + disabled_fields: + - work_location + - model_name: Benefit + model_permissions: + WRITE: + is_enabled: false + response: + body: + common_models: + - model_name: Employee + model_permissions: + READ: + is_enabled: true + WRITE: + is_enabled: false + field_permissions: + enabled_fields: + - avatar + - created_at + - custom_fields + - date_of_birth + - first_name + - gender + - remote_created_at + - remote_data + disabled_fields: + - company + - employments + - groups + - home_location + - manager + - work_location + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/syncStatus.yml b/.mock/definition/ticketing/syncStatus.yml new file mode 100644 index 000000000..5b49f2a35 --- /dev/null +++ b/.mock/definition/ticketing/syncStatus.yml @@ -0,0 +1,55 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/sync-status + method: GET + auth: true + docs: >- + Get sync status for the current sync and the most recently finished + sync. `last_sync_start` represents the most recent time any sync began. + `last_sync_finished` represents the most recent time any sync completed. + These timestamps may correspond to different sync instances which may + result in a sync start time being later than a separate sync completed + time. To ensure you are retrieving the latest available data reference + the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. + Possible values for `status` and `last_sync_result` are `DISABLED`, + `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more + about sync status in our [Help + Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + source: + openapi: openapi/openapi.yml + request: + name: SyncStatusListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedSyncStatusList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - model_name: Ticket + model_id: ticketing.Ticket + last_sync_start: '2021-03-30T19:44:18Z' + next_sync_start: '2021-03-30T20:44:18Z' + last_sync_result: SYNCING + last_sync_finished: '2021-03-30T19:55:18Z' + status: SYNCING + is_initial_sync: true + selective_sync_configurations_usage: IN_NEXT_SYNC + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/tags.yml b/.mock/definition/ticketing/tags.yml new file mode 100644 index 000000000..7ebaf1579 --- /dev/null +++ b/.mock/definition/ticketing/tags.yml @@ -0,0 +1,134 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/tags + method: GET + auth: true + docs: Returns a list of `Tag` objects. + source: + openapi: openapi/openapi.yml + request: + name: TagsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedTagList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + id: 17a54124-287f-494d-965e-3c5b330c9a68 + name: Ticketing API + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + retrieve: + path: /ticketing/v1/tags/{id} + method: GET + auth: true + docs: Returns a `Tag` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: TagsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Tag + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + id: 17a54124-287f-494d-965e-3c5b330c9a68 + name: Ticketing API + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/teams.yml b/.mock/definition/ticketing/teams.yml new file mode 100644 index 000000000..47bcb682c --- /dev/null +++ b/.mock/definition/ticketing/teams.yml @@ -0,0 +1,136 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/teams + method: GET + auth: true + docs: Returns a list of `Team` objects. + source: + openapi: openapi/openapi.yml + request: + name: TeamsListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + response: + docs: '' + type: root.PaginatedTeamList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Platform + description: Platform and Integrations Team + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + retrieve: + path: /ticketing/v1/teams/{id} + method: GET + auth: true + docs: Returns a `Team` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: TeamsRetrieveRequest + query-parameters: + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.Team + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Platform + description: Platform and Integrations Team + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/tickets.yml b/.mock/definition/ticketing/tickets.yml new file mode 100644 index 000000000..8177b0bf7 --- /dev/null +++ b/.mock/definition/ticketing/tickets.yml @@ -0,0 +1,2151 @@ +types: + TicketsListRequestExpand: + enum: + - account + - value: account,contact + name: AccountContact + - value: account,contact,creator + name: AccountContactCreator + - value: account,contact,creator,parent_ticket + name: AccountContactCreatorParentTicket + - value: account,contact,parent_ticket + name: AccountContactParentTicket + - value: account,creator + name: AccountCreator + - value: account,creator,parent_ticket + name: AccountCreatorParentTicket + - value: account,parent_ticket + name: AccountParentTicket + - assigned_teams + - value: assigned_teams,account + name: AssignedTeamsAccount + - value: assigned_teams,account,contact + name: AssignedTeamsAccountContact + - value: assigned_teams,account,contact,creator + name: AssignedTeamsAccountContactCreator + - value: assigned_teams,account,contact,creator,parent_ticket + name: AssignedTeamsAccountContactCreatorParentTicket + - value: assigned_teams,account,contact,parent_ticket + name: AssignedTeamsAccountContactParentTicket + - value: assigned_teams,account,creator + name: AssignedTeamsAccountCreator + - value: assigned_teams,account,creator,parent_ticket + name: AssignedTeamsAccountCreatorParentTicket + - value: assigned_teams,account,parent_ticket + name: AssignedTeamsAccountParentTicket + - value: assigned_teams,contact + name: AssignedTeamsContact + - value: assigned_teams,contact,creator + name: AssignedTeamsContactCreator + - value: assigned_teams,contact,creator,parent_ticket + name: AssignedTeamsContactCreatorParentTicket + - value: assigned_teams,contact,parent_ticket + name: AssignedTeamsContactParentTicket + - value: assigned_teams,creator + name: AssignedTeamsCreator + - value: assigned_teams,creator,parent_ticket + name: AssignedTeamsCreatorParentTicket + - value: assigned_teams,parent_ticket + name: AssignedTeamsParentTicket + - assignees + - value: assignees,account + name: AssigneesAccount + - value: assignees,account,contact + name: AssigneesAccountContact + - value: assignees,account,contact,creator + name: AssigneesAccountContactCreator + - value: assignees,account,contact,creator,parent_ticket + name: AssigneesAccountContactCreatorParentTicket + - value: assignees,account,contact,parent_ticket + name: AssigneesAccountContactParentTicket + - value: assignees,account,creator + name: AssigneesAccountCreator + - value: assignees,account,creator,parent_ticket + name: AssigneesAccountCreatorParentTicket + - value: assignees,account,parent_ticket + name: AssigneesAccountParentTicket + - value: assignees,assigned_teams + name: AssigneesAssignedTeams + - value: assignees,assigned_teams,account + name: AssigneesAssignedTeamsAccount + - value: assignees,assigned_teams,account,contact + name: AssigneesAssignedTeamsAccountContact + - value: assignees,assigned_teams,account,contact,creator + name: AssigneesAssignedTeamsAccountContactCreator + - value: assignees,assigned_teams,account,contact,creator,parent_ticket + name: AssigneesAssignedTeamsAccountContactCreatorParentTicket + - value: assignees,assigned_teams,account,contact,parent_ticket + name: AssigneesAssignedTeamsAccountContactParentTicket + - value: assignees,assigned_teams,account,creator + name: AssigneesAssignedTeamsAccountCreator + - value: assignees,assigned_teams,account,creator,parent_ticket + name: AssigneesAssignedTeamsAccountCreatorParentTicket + - value: assignees,assigned_teams,account,parent_ticket + name: AssigneesAssignedTeamsAccountParentTicket + - value: assignees,assigned_teams,contact + name: AssigneesAssignedTeamsContact + - value: assignees,assigned_teams,contact,creator + name: AssigneesAssignedTeamsContactCreator + - value: assignees,assigned_teams,contact,creator,parent_ticket + name: AssigneesAssignedTeamsContactCreatorParentTicket + - value: assignees,assigned_teams,contact,parent_ticket + name: AssigneesAssignedTeamsContactParentTicket + - value: assignees,assigned_teams,creator + name: AssigneesAssignedTeamsCreator + - value: assignees,assigned_teams,creator,parent_ticket + name: AssigneesAssignedTeamsCreatorParentTicket + - value: assignees,assigned_teams,parent_ticket + name: AssigneesAssignedTeamsParentTicket + - value: assignees,collections + name: AssigneesCollections + - value: assignees,collections,account + name: AssigneesCollectionsAccount + - value: assignees,collections,account,contact + name: AssigneesCollectionsAccountContact + - value: assignees,collections,account,contact,creator + name: AssigneesCollectionsAccountContactCreator + - value: assignees,collections,account,contact,creator,parent_ticket + name: AssigneesCollectionsAccountContactCreatorParentTicket + - value: assignees,collections,account,contact,parent_ticket + name: AssigneesCollectionsAccountContactParentTicket + - value: assignees,collections,account,creator + name: AssigneesCollectionsAccountCreator + - value: assignees,collections,account,creator,parent_ticket + name: AssigneesCollectionsAccountCreatorParentTicket + - value: assignees,collections,account,parent_ticket + name: AssigneesCollectionsAccountParentTicket + - value: assignees,collections,assigned_teams + name: AssigneesCollectionsAssignedTeams + - value: assignees,collections,assigned_teams,account + name: AssigneesCollectionsAssignedTeamsAccount + - value: assignees,collections,assigned_teams,account,contact + name: AssigneesCollectionsAssignedTeamsAccountContact + - value: assignees,collections,assigned_teams,account,contact,creator + name: AssigneesCollectionsAssignedTeamsAccountContactCreator + - value: >- + assignees,collections,assigned_teams,account,contact,creator,parent_ticket + name: AssigneesCollectionsAssignedTeamsAccountContactCreatorParentTicket + - value: assignees,collections,assigned_teams,account,contact,parent_ticket + name: AssigneesCollectionsAssignedTeamsAccountContactParentTicket + - value: assignees,collections,assigned_teams,account,creator + name: AssigneesCollectionsAssignedTeamsAccountCreator + - value: assignees,collections,assigned_teams,account,creator,parent_ticket + name: AssigneesCollectionsAssignedTeamsAccountCreatorParentTicket + - value: assignees,collections,assigned_teams,account,parent_ticket + name: AssigneesCollectionsAssignedTeamsAccountParentTicket + - value: assignees,collections,assigned_teams,contact + name: AssigneesCollectionsAssignedTeamsContact + - value: assignees,collections,assigned_teams,contact,creator + name: AssigneesCollectionsAssignedTeamsContactCreator + - value: assignees,collections,assigned_teams,contact,creator,parent_ticket + name: AssigneesCollectionsAssignedTeamsContactCreatorParentTicket + - value: assignees,collections,assigned_teams,contact,parent_ticket + name: AssigneesCollectionsAssignedTeamsContactParentTicket + - value: assignees,collections,assigned_teams,creator + name: AssigneesCollectionsAssignedTeamsCreator + - value: assignees,collections,assigned_teams,creator,parent_ticket + name: AssigneesCollectionsAssignedTeamsCreatorParentTicket + - value: assignees,collections,assigned_teams,parent_ticket + name: AssigneesCollectionsAssignedTeamsParentTicket + - value: assignees,collections,contact + name: AssigneesCollectionsContact + - value: assignees,collections,contact,creator + name: AssigneesCollectionsContactCreator + - value: assignees,collections,contact,creator,parent_ticket + name: AssigneesCollectionsContactCreatorParentTicket + - value: assignees,collections,contact,parent_ticket + name: AssigneesCollectionsContactParentTicket + - value: assignees,collections,creator + name: AssigneesCollectionsCreator + - value: assignees,collections,creator,parent_ticket + name: AssigneesCollectionsCreatorParentTicket + - value: assignees,collections,parent_ticket + name: AssigneesCollectionsParentTicket + - value: assignees,contact + name: AssigneesContact + - value: assignees,contact,creator + name: AssigneesContactCreator + - value: assignees,contact,creator,parent_ticket + name: AssigneesContactCreatorParentTicket + - value: assignees,contact,parent_ticket + name: AssigneesContactParentTicket + - value: assignees,creator + name: AssigneesCreator + - value: assignees,creator,parent_ticket + name: AssigneesCreatorParentTicket + - value: assignees,parent_ticket + name: AssigneesParentTicket + - attachments + - value: attachments,account + name: AttachmentsAccount + - value: attachments,account,contact + name: AttachmentsAccountContact + - value: attachments,account,contact,creator + name: AttachmentsAccountContactCreator + - value: attachments,account,contact,creator,parent_ticket + name: AttachmentsAccountContactCreatorParentTicket + - value: attachments,account,contact,parent_ticket + name: AttachmentsAccountContactParentTicket + - value: attachments,account,creator + name: AttachmentsAccountCreator + - value: attachments,account,creator,parent_ticket + name: AttachmentsAccountCreatorParentTicket + - value: attachments,account,parent_ticket + name: AttachmentsAccountParentTicket + - value: attachments,assigned_teams + name: AttachmentsAssignedTeams + - value: attachments,assigned_teams,account + name: AttachmentsAssignedTeamsAccount + - value: attachments,assigned_teams,account,contact + name: AttachmentsAssignedTeamsAccountContact + - value: attachments,assigned_teams,account,contact,creator + name: AttachmentsAssignedTeamsAccountContactCreator + - value: attachments,assigned_teams,account,contact,creator,parent_ticket + name: AttachmentsAssignedTeamsAccountContactCreatorParentTicket + - value: attachments,assigned_teams,account,contact,parent_ticket + name: AttachmentsAssignedTeamsAccountContactParentTicket + - value: attachments,assigned_teams,account,creator + name: AttachmentsAssignedTeamsAccountCreator + - value: attachments,assigned_teams,account,creator,parent_ticket + name: AttachmentsAssignedTeamsAccountCreatorParentTicket + - value: attachments,assigned_teams,account,parent_ticket + name: AttachmentsAssignedTeamsAccountParentTicket + - value: attachments,assigned_teams,contact + name: AttachmentsAssignedTeamsContact + - value: attachments,assigned_teams,contact,creator + name: AttachmentsAssignedTeamsContactCreator + - value: attachments,assigned_teams,contact,creator,parent_ticket + name: AttachmentsAssignedTeamsContactCreatorParentTicket + - value: attachments,assigned_teams,contact,parent_ticket + name: AttachmentsAssignedTeamsContactParentTicket + - value: attachments,assigned_teams,creator + name: AttachmentsAssignedTeamsCreator + - value: attachments,assigned_teams,creator,parent_ticket + name: AttachmentsAssignedTeamsCreatorParentTicket + - value: attachments,assigned_teams,parent_ticket + name: AttachmentsAssignedTeamsParentTicket + - value: attachments,assignees + name: AttachmentsAssignees + - value: attachments,assignees,account + name: AttachmentsAssigneesAccount + - value: attachments,assignees,account,contact + name: AttachmentsAssigneesAccountContact + - value: attachments,assignees,account,contact,creator + name: AttachmentsAssigneesAccountContactCreator + - value: attachments,assignees,account,contact,creator,parent_ticket + name: AttachmentsAssigneesAccountContactCreatorParentTicket + - value: attachments,assignees,account,contact,parent_ticket + name: AttachmentsAssigneesAccountContactParentTicket + - value: attachments,assignees,account,creator + name: AttachmentsAssigneesAccountCreator + - value: attachments,assignees,account,creator,parent_ticket + name: AttachmentsAssigneesAccountCreatorParentTicket + - value: attachments,assignees,account,parent_ticket + name: AttachmentsAssigneesAccountParentTicket + - value: attachments,assignees,assigned_teams + name: AttachmentsAssigneesAssignedTeams + - value: attachments,assignees,assigned_teams,account + name: AttachmentsAssigneesAssignedTeamsAccount + - value: attachments,assignees,assigned_teams,account,contact + name: AttachmentsAssigneesAssignedTeamsAccountContact + - value: attachments,assignees,assigned_teams,account,contact,creator + name: AttachmentsAssigneesAssignedTeamsAccountContactCreator + - value: >- + attachments,assignees,assigned_teams,account,contact,creator,parent_ticket + name: AttachmentsAssigneesAssignedTeamsAccountContactCreatorParentTicket + - value: attachments,assignees,assigned_teams,account,contact,parent_ticket + name: AttachmentsAssigneesAssignedTeamsAccountContactParentTicket + - value: attachments,assignees,assigned_teams,account,creator + name: AttachmentsAssigneesAssignedTeamsAccountCreator + - value: attachments,assignees,assigned_teams,account,creator,parent_ticket + name: AttachmentsAssigneesAssignedTeamsAccountCreatorParentTicket + - value: attachments,assignees,assigned_teams,account,parent_ticket + name: AttachmentsAssigneesAssignedTeamsAccountParentTicket + - value: attachments,assignees,assigned_teams,contact + name: AttachmentsAssigneesAssignedTeamsContact + - value: attachments,assignees,assigned_teams,contact,creator + name: AttachmentsAssigneesAssignedTeamsContactCreator + - value: attachments,assignees,assigned_teams,contact,creator,parent_ticket + name: AttachmentsAssigneesAssignedTeamsContactCreatorParentTicket + - value: attachments,assignees,assigned_teams,contact,parent_ticket + name: AttachmentsAssigneesAssignedTeamsContactParentTicket + - value: attachments,assignees,assigned_teams,creator + name: AttachmentsAssigneesAssignedTeamsCreator + - value: attachments,assignees,assigned_teams,creator,parent_ticket + name: AttachmentsAssigneesAssignedTeamsCreatorParentTicket + - value: attachments,assignees,assigned_teams,parent_ticket + name: AttachmentsAssigneesAssignedTeamsParentTicket + - value: attachments,assignees,collections + name: AttachmentsAssigneesCollections + - value: attachments,assignees,collections,account + name: AttachmentsAssigneesCollectionsAccount + - value: attachments,assignees,collections,account,contact + name: AttachmentsAssigneesCollectionsAccountContact + - value: attachments,assignees,collections,account,contact,creator + name: AttachmentsAssigneesCollectionsAccountContactCreator + - value: >- + attachments,assignees,collections,account,contact,creator,parent_ticket + name: AttachmentsAssigneesCollectionsAccountContactCreatorParentTicket + - value: attachments,assignees,collections,account,contact,parent_ticket + name: AttachmentsAssigneesCollectionsAccountContactParentTicket + - value: attachments,assignees,collections,account,creator + name: AttachmentsAssigneesCollectionsAccountCreator + - value: attachments,assignees,collections,account,creator,parent_ticket + name: AttachmentsAssigneesCollectionsAccountCreatorParentTicket + - value: attachments,assignees,collections,account,parent_ticket + name: AttachmentsAssigneesCollectionsAccountParentTicket + - value: attachments,assignees,collections,assigned_teams + name: AttachmentsAssigneesCollectionsAssignedTeams + - value: attachments,assignees,collections,assigned_teams,account + name: AttachmentsAssigneesCollectionsAssignedTeamsAccount + - value: attachments,assignees,collections,assigned_teams,account,contact + name: AttachmentsAssigneesCollectionsAssignedTeamsAccountContact + - value: >- + attachments,assignees,collections,assigned_teams,account,contact,creator + name: AttachmentsAssigneesCollectionsAssignedTeamsAccountContactCreator + - value: >- + attachments,assignees,collections,assigned_teams,account,contact,creator,parent_ticket + name: >- + AttachmentsAssigneesCollectionsAssignedTeamsAccountContactCreatorParentTicket + - value: >- + attachments,assignees,collections,assigned_teams,account,contact,parent_ticket + name: AttachmentsAssigneesCollectionsAssignedTeamsAccountContactParentTicket + - value: attachments,assignees,collections,assigned_teams,account,creator + name: AttachmentsAssigneesCollectionsAssignedTeamsAccountCreator + - value: >- + attachments,assignees,collections,assigned_teams,account,creator,parent_ticket + name: AttachmentsAssigneesCollectionsAssignedTeamsAccountCreatorParentTicket + - value: attachments,assignees,collections,assigned_teams,account,parent_ticket + name: AttachmentsAssigneesCollectionsAssignedTeamsAccountParentTicket + - value: attachments,assignees,collections,assigned_teams,contact + name: AttachmentsAssigneesCollectionsAssignedTeamsContact + - value: attachments,assignees,collections,assigned_teams,contact,creator + name: AttachmentsAssigneesCollectionsAssignedTeamsContactCreator + - value: >- + attachments,assignees,collections,assigned_teams,contact,creator,parent_ticket + name: AttachmentsAssigneesCollectionsAssignedTeamsContactCreatorParentTicket + - value: attachments,assignees,collections,assigned_teams,contact,parent_ticket + name: AttachmentsAssigneesCollectionsAssignedTeamsContactParentTicket + - value: attachments,assignees,collections,assigned_teams,creator + name: AttachmentsAssigneesCollectionsAssignedTeamsCreator + - value: attachments,assignees,collections,assigned_teams,creator,parent_ticket + name: AttachmentsAssigneesCollectionsAssignedTeamsCreatorParentTicket + - value: attachments,assignees,collections,assigned_teams,parent_ticket + name: AttachmentsAssigneesCollectionsAssignedTeamsParentTicket + - value: attachments,assignees,collections,contact + name: AttachmentsAssigneesCollectionsContact + - value: attachments,assignees,collections,contact,creator + name: AttachmentsAssigneesCollectionsContactCreator + - value: attachments,assignees,collections,contact,creator,parent_ticket + name: AttachmentsAssigneesCollectionsContactCreatorParentTicket + - value: attachments,assignees,collections,contact,parent_ticket + name: AttachmentsAssigneesCollectionsContactParentTicket + - value: attachments,assignees,collections,creator + name: AttachmentsAssigneesCollectionsCreator + - value: attachments,assignees,collections,creator,parent_ticket + name: AttachmentsAssigneesCollectionsCreatorParentTicket + - value: attachments,assignees,collections,parent_ticket + name: AttachmentsAssigneesCollectionsParentTicket + - value: attachments,assignees,contact + name: AttachmentsAssigneesContact + - value: attachments,assignees,contact,creator + name: AttachmentsAssigneesContactCreator + - value: attachments,assignees,contact,creator,parent_ticket + name: AttachmentsAssigneesContactCreatorParentTicket + - value: attachments,assignees,contact,parent_ticket + name: AttachmentsAssigneesContactParentTicket + - value: attachments,assignees,creator + name: AttachmentsAssigneesCreator + - value: attachments,assignees,creator,parent_ticket + name: AttachmentsAssigneesCreatorParentTicket + - value: attachments,assignees,parent_ticket + name: AttachmentsAssigneesParentTicket + - value: attachments,collections + name: AttachmentsCollections + - value: attachments,collections,account + name: AttachmentsCollectionsAccount + - value: attachments,collections,account,contact + name: AttachmentsCollectionsAccountContact + - value: attachments,collections,account,contact,creator + name: AttachmentsCollectionsAccountContactCreator + - value: attachments,collections,account,contact,creator,parent_ticket + name: AttachmentsCollectionsAccountContactCreatorParentTicket + - value: attachments,collections,account,contact,parent_ticket + name: AttachmentsCollectionsAccountContactParentTicket + - value: attachments,collections,account,creator + name: AttachmentsCollectionsAccountCreator + - value: attachments,collections,account,creator,parent_ticket + name: AttachmentsCollectionsAccountCreatorParentTicket + - value: attachments,collections,account,parent_ticket + name: AttachmentsCollectionsAccountParentTicket + - value: attachments,collections,assigned_teams + name: AttachmentsCollectionsAssignedTeams + - value: attachments,collections,assigned_teams,account + name: AttachmentsCollectionsAssignedTeamsAccount + - value: attachments,collections,assigned_teams,account,contact + name: AttachmentsCollectionsAssignedTeamsAccountContact + - value: attachments,collections,assigned_teams,account,contact,creator + name: AttachmentsCollectionsAssignedTeamsAccountContactCreator + - value: >- + attachments,collections,assigned_teams,account,contact,creator,parent_ticket + name: AttachmentsCollectionsAssignedTeamsAccountContactCreatorParentTicket + - value: attachments,collections,assigned_teams,account,contact,parent_ticket + name: AttachmentsCollectionsAssignedTeamsAccountContactParentTicket + - value: attachments,collections,assigned_teams,account,creator + name: AttachmentsCollectionsAssignedTeamsAccountCreator + - value: attachments,collections,assigned_teams,account,creator,parent_ticket + name: AttachmentsCollectionsAssignedTeamsAccountCreatorParentTicket + - value: attachments,collections,assigned_teams,account,parent_ticket + name: AttachmentsCollectionsAssignedTeamsAccountParentTicket + - value: attachments,collections,assigned_teams,contact + name: AttachmentsCollectionsAssignedTeamsContact + - value: attachments,collections,assigned_teams,contact,creator + name: AttachmentsCollectionsAssignedTeamsContactCreator + - value: attachments,collections,assigned_teams,contact,creator,parent_ticket + name: AttachmentsCollectionsAssignedTeamsContactCreatorParentTicket + - value: attachments,collections,assigned_teams,contact,parent_ticket + name: AttachmentsCollectionsAssignedTeamsContactParentTicket + - value: attachments,collections,assigned_teams,creator + name: AttachmentsCollectionsAssignedTeamsCreator + - value: attachments,collections,assigned_teams,creator,parent_ticket + name: AttachmentsCollectionsAssignedTeamsCreatorParentTicket + - value: attachments,collections,assigned_teams,parent_ticket + name: AttachmentsCollectionsAssignedTeamsParentTicket + - value: attachments,collections,contact + name: AttachmentsCollectionsContact + - value: attachments,collections,contact,creator + name: AttachmentsCollectionsContactCreator + - value: attachments,collections,contact,creator,parent_ticket + name: AttachmentsCollectionsContactCreatorParentTicket + - value: attachments,collections,contact,parent_ticket + name: AttachmentsCollectionsContactParentTicket + - value: attachments,collections,creator + name: AttachmentsCollectionsCreator + - value: attachments,collections,creator,parent_ticket + name: AttachmentsCollectionsCreatorParentTicket + - value: attachments,collections,parent_ticket + name: AttachmentsCollectionsParentTicket + - value: attachments,contact + name: AttachmentsContact + - value: attachments,contact,creator + name: AttachmentsContactCreator + - value: attachments,contact,creator,parent_ticket + name: AttachmentsContactCreatorParentTicket + - value: attachments,contact,parent_ticket + name: AttachmentsContactParentTicket + - value: attachments,creator + name: AttachmentsCreator + - value: attachments,creator,parent_ticket + name: AttachmentsCreatorParentTicket + - value: attachments,parent_ticket + name: AttachmentsParentTicket + - collections + - value: collections,account + name: CollectionsAccount + - value: collections,account,contact + name: CollectionsAccountContact + - value: collections,account,contact,creator + name: CollectionsAccountContactCreator + - value: collections,account,contact,creator,parent_ticket + name: CollectionsAccountContactCreatorParentTicket + - value: collections,account,contact,parent_ticket + name: CollectionsAccountContactParentTicket + - value: collections,account,creator + name: CollectionsAccountCreator + - value: collections,account,creator,parent_ticket + name: CollectionsAccountCreatorParentTicket + - value: collections,account,parent_ticket + name: CollectionsAccountParentTicket + - value: collections,assigned_teams + name: CollectionsAssignedTeams + - value: collections,assigned_teams,account + name: CollectionsAssignedTeamsAccount + - value: collections,assigned_teams,account,contact + name: CollectionsAssignedTeamsAccountContact + - value: collections,assigned_teams,account,contact,creator + name: CollectionsAssignedTeamsAccountContactCreator + - value: collections,assigned_teams,account,contact,creator,parent_ticket + name: CollectionsAssignedTeamsAccountContactCreatorParentTicket + - value: collections,assigned_teams,account,contact,parent_ticket + name: CollectionsAssignedTeamsAccountContactParentTicket + - value: collections,assigned_teams,account,creator + name: CollectionsAssignedTeamsAccountCreator + - value: collections,assigned_teams,account,creator,parent_ticket + name: CollectionsAssignedTeamsAccountCreatorParentTicket + - value: collections,assigned_teams,account,parent_ticket + name: CollectionsAssignedTeamsAccountParentTicket + - value: collections,assigned_teams,contact + name: CollectionsAssignedTeamsContact + - value: collections,assigned_teams,contact,creator + name: CollectionsAssignedTeamsContactCreator + - value: collections,assigned_teams,contact,creator,parent_ticket + name: CollectionsAssignedTeamsContactCreatorParentTicket + - value: collections,assigned_teams,contact,parent_ticket + name: CollectionsAssignedTeamsContactParentTicket + - value: collections,assigned_teams,creator + name: CollectionsAssignedTeamsCreator + - value: collections,assigned_teams,creator,parent_ticket + name: CollectionsAssignedTeamsCreatorParentTicket + - value: collections,assigned_teams,parent_ticket + name: CollectionsAssignedTeamsParentTicket + - value: collections,contact + name: CollectionsContact + - value: collections,contact,creator + name: CollectionsContactCreator + - value: collections,contact,creator,parent_ticket + name: CollectionsContactCreatorParentTicket + - value: collections,contact,parent_ticket + name: CollectionsContactParentTicket + - value: collections,creator + name: CollectionsCreator + - value: collections,creator,parent_ticket + name: CollectionsCreatorParentTicket + - value: collections,parent_ticket + name: CollectionsParentTicket + - contact + - value: contact,creator + name: ContactCreator + - value: contact,creator,parent_ticket + name: ContactCreatorParentTicket + - value: contact,parent_ticket + name: ContactParentTicket + - creator + - value: creator,parent_ticket + name: CreatorParentTicket + - parent_ticket + source: + openapi: openapi/openapi.yml + TicketsListRequestPriority: + enum: + - HIGH + - LOW + - NORMAL + - URGENT + source: + openapi: openapi/openapi.yml + TicketsListRequestRemoteFields: + enum: + - priority + - value: priority,status + name: PriorityStatus + - value: priority,status,ticket_type + name: PriorityStatusTicketType + - value: priority,ticket_type + name: PriorityTicketType + - status + - value: status,ticket_type + name: StatusTicketType + - ticket_type + source: + openapi: openapi/openapi.yml + TicketsListRequestShowEnumOrigins: + enum: + - priority + - value: priority,status + name: PriorityStatus + - value: priority,status,ticket_type + name: PriorityStatusTicketType + - value: priority,ticket_type + name: PriorityTicketType + - status + - value: status,ticket_type + name: StatusTicketType + - ticket_type + source: + openapi: openapi/openapi.yml + TicketsRetrieveRequestExpand: + enum: + - account + - value: account,contact + name: AccountContact + - value: account,contact,creator + name: AccountContactCreator + - value: account,contact,creator,parent_ticket + name: AccountContactCreatorParentTicket + - value: account,contact,parent_ticket + name: AccountContactParentTicket + - value: account,creator + name: AccountCreator + - value: account,creator,parent_ticket + name: AccountCreatorParentTicket + - value: account,parent_ticket + name: AccountParentTicket + - assigned_teams + - value: assigned_teams,account + name: AssignedTeamsAccount + - value: assigned_teams,account,contact + name: AssignedTeamsAccountContact + - value: assigned_teams,account,contact,creator + name: AssignedTeamsAccountContactCreator + - value: assigned_teams,account,contact,creator,parent_ticket + name: AssignedTeamsAccountContactCreatorParentTicket + - value: assigned_teams,account,contact,parent_ticket + name: AssignedTeamsAccountContactParentTicket + - value: assigned_teams,account,creator + name: AssignedTeamsAccountCreator + - value: assigned_teams,account,creator,parent_ticket + name: AssignedTeamsAccountCreatorParentTicket + - value: assigned_teams,account,parent_ticket + name: AssignedTeamsAccountParentTicket + - value: assigned_teams,contact + name: AssignedTeamsContact + - value: assigned_teams,contact,creator + name: AssignedTeamsContactCreator + - value: assigned_teams,contact,creator,parent_ticket + name: AssignedTeamsContactCreatorParentTicket + - value: assigned_teams,contact,parent_ticket + name: AssignedTeamsContactParentTicket + - value: assigned_teams,creator + name: AssignedTeamsCreator + - value: assigned_teams,creator,parent_ticket + name: AssignedTeamsCreatorParentTicket + - value: assigned_teams,parent_ticket + name: AssignedTeamsParentTicket + - assignees + - value: assignees,account + name: AssigneesAccount + - value: assignees,account,contact + name: AssigneesAccountContact + - value: assignees,account,contact,creator + name: AssigneesAccountContactCreator + - value: assignees,account,contact,creator,parent_ticket + name: AssigneesAccountContactCreatorParentTicket + - value: assignees,account,contact,parent_ticket + name: AssigneesAccountContactParentTicket + - value: assignees,account,creator + name: AssigneesAccountCreator + - value: assignees,account,creator,parent_ticket + name: AssigneesAccountCreatorParentTicket + - value: assignees,account,parent_ticket + name: AssigneesAccountParentTicket + - value: assignees,assigned_teams + name: AssigneesAssignedTeams + - value: assignees,assigned_teams,account + name: AssigneesAssignedTeamsAccount + - value: assignees,assigned_teams,account,contact + name: AssigneesAssignedTeamsAccountContact + - value: assignees,assigned_teams,account,contact,creator + name: AssigneesAssignedTeamsAccountContactCreator + - value: assignees,assigned_teams,account,contact,creator,parent_ticket + name: AssigneesAssignedTeamsAccountContactCreatorParentTicket + - value: assignees,assigned_teams,account,contact,parent_ticket + name: AssigneesAssignedTeamsAccountContactParentTicket + - value: assignees,assigned_teams,account,creator + name: AssigneesAssignedTeamsAccountCreator + - value: assignees,assigned_teams,account,creator,parent_ticket + name: AssigneesAssignedTeamsAccountCreatorParentTicket + - value: assignees,assigned_teams,account,parent_ticket + name: AssigneesAssignedTeamsAccountParentTicket + - value: assignees,assigned_teams,contact + name: AssigneesAssignedTeamsContact + - value: assignees,assigned_teams,contact,creator + name: AssigneesAssignedTeamsContactCreator + - value: assignees,assigned_teams,contact,creator,parent_ticket + name: AssigneesAssignedTeamsContactCreatorParentTicket + - value: assignees,assigned_teams,contact,parent_ticket + name: AssigneesAssignedTeamsContactParentTicket + - value: assignees,assigned_teams,creator + name: AssigneesAssignedTeamsCreator + - value: assignees,assigned_teams,creator,parent_ticket + name: AssigneesAssignedTeamsCreatorParentTicket + - value: assignees,assigned_teams,parent_ticket + name: AssigneesAssignedTeamsParentTicket + - value: assignees,collections + name: AssigneesCollections + - value: assignees,collections,account + name: AssigneesCollectionsAccount + - value: assignees,collections,account,contact + name: AssigneesCollectionsAccountContact + - value: assignees,collections,account,contact,creator + name: AssigneesCollectionsAccountContactCreator + - value: assignees,collections,account,contact,creator,parent_ticket + name: AssigneesCollectionsAccountContactCreatorParentTicket + - value: assignees,collections,account,contact,parent_ticket + name: AssigneesCollectionsAccountContactParentTicket + - value: assignees,collections,account,creator + name: AssigneesCollectionsAccountCreator + - value: assignees,collections,account,creator,parent_ticket + name: AssigneesCollectionsAccountCreatorParentTicket + - value: assignees,collections,account,parent_ticket + name: AssigneesCollectionsAccountParentTicket + - value: assignees,collections,assigned_teams + name: AssigneesCollectionsAssignedTeams + - value: assignees,collections,assigned_teams,account + name: AssigneesCollectionsAssignedTeamsAccount + - value: assignees,collections,assigned_teams,account,contact + name: AssigneesCollectionsAssignedTeamsAccountContact + - value: assignees,collections,assigned_teams,account,contact,creator + name: AssigneesCollectionsAssignedTeamsAccountContactCreator + - value: >- + assignees,collections,assigned_teams,account,contact,creator,parent_ticket + name: AssigneesCollectionsAssignedTeamsAccountContactCreatorParentTicket + - value: assignees,collections,assigned_teams,account,contact,parent_ticket + name: AssigneesCollectionsAssignedTeamsAccountContactParentTicket + - value: assignees,collections,assigned_teams,account,creator + name: AssigneesCollectionsAssignedTeamsAccountCreator + - value: assignees,collections,assigned_teams,account,creator,parent_ticket + name: AssigneesCollectionsAssignedTeamsAccountCreatorParentTicket + - value: assignees,collections,assigned_teams,account,parent_ticket + name: AssigneesCollectionsAssignedTeamsAccountParentTicket + - value: assignees,collections,assigned_teams,contact + name: AssigneesCollectionsAssignedTeamsContact + - value: assignees,collections,assigned_teams,contact,creator + name: AssigneesCollectionsAssignedTeamsContactCreator + - value: assignees,collections,assigned_teams,contact,creator,parent_ticket + name: AssigneesCollectionsAssignedTeamsContactCreatorParentTicket + - value: assignees,collections,assigned_teams,contact,parent_ticket + name: AssigneesCollectionsAssignedTeamsContactParentTicket + - value: assignees,collections,assigned_teams,creator + name: AssigneesCollectionsAssignedTeamsCreator + - value: assignees,collections,assigned_teams,creator,parent_ticket + name: AssigneesCollectionsAssignedTeamsCreatorParentTicket + - value: assignees,collections,assigned_teams,parent_ticket + name: AssigneesCollectionsAssignedTeamsParentTicket + - value: assignees,collections,contact + name: AssigneesCollectionsContact + - value: assignees,collections,contact,creator + name: AssigneesCollectionsContactCreator + - value: assignees,collections,contact,creator,parent_ticket + name: AssigneesCollectionsContactCreatorParentTicket + - value: assignees,collections,contact,parent_ticket + name: AssigneesCollectionsContactParentTicket + - value: assignees,collections,creator + name: AssigneesCollectionsCreator + - value: assignees,collections,creator,parent_ticket + name: AssigneesCollectionsCreatorParentTicket + - value: assignees,collections,parent_ticket + name: AssigneesCollectionsParentTicket + - value: assignees,contact + name: AssigneesContact + - value: assignees,contact,creator + name: AssigneesContactCreator + - value: assignees,contact,creator,parent_ticket + name: AssigneesContactCreatorParentTicket + - value: assignees,contact,parent_ticket + name: AssigneesContactParentTicket + - value: assignees,creator + name: AssigneesCreator + - value: assignees,creator,parent_ticket + name: AssigneesCreatorParentTicket + - value: assignees,parent_ticket + name: AssigneesParentTicket + - attachments + - value: attachments,account + name: AttachmentsAccount + - value: attachments,account,contact + name: AttachmentsAccountContact + - value: attachments,account,contact,creator + name: AttachmentsAccountContactCreator + - value: attachments,account,contact,creator,parent_ticket + name: AttachmentsAccountContactCreatorParentTicket + - value: attachments,account,contact,parent_ticket + name: AttachmentsAccountContactParentTicket + - value: attachments,account,creator + name: AttachmentsAccountCreator + - value: attachments,account,creator,parent_ticket + name: AttachmentsAccountCreatorParentTicket + - value: attachments,account,parent_ticket + name: AttachmentsAccountParentTicket + - value: attachments,assigned_teams + name: AttachmentsAssignedTeams + - value: attachments,assigned_teams,account + name: AttachmentsAssignedTeamsAccount + - value: attachments,assigned_teams,account,contact + name: AttachmentsAssignedTeamsAccountContact + - value: attachments,assigned_teams,account,contact,creator + name: AttachmentsAssignedTeamsAccountContactCreator + - value: attachments,assigned_teams,account,contact,creator,parent_ticket + name: AttachmentsAssignedTeamsAccountContactCreatorParentTicket + - value: attachments,assigned_teams,account,contact,parent_ticket + name: AttachmentsAssignedTeamsAccountContactParentTicket + - value: attachments,assigned_teams,account,creator + name: AttachmentsAssignedTeamsAccountCreator + - value: attachments,assigned_teams,account,creator,parent_ticket + name: AttachmentsAssignedTeamsAccountCreatorParentTicket + - value: attachments,assigned_teams,account,parent_ticket + name: AttachmentsAssignedTeamsAccountParentTicket + - value: attachments,assigned_teams,contact + name: AttachmentsAssignedTeamsContact + - value: attachments,assigned_teams,contact,creator + name: AttachmentsAssignedTeamsContactCreator + - value: attachments,assigned_teams,contact,creator,parent_ticket + name: AttachmentsAssignedTeamsContactCreatorParentTicket + - value: attachments,assigned_teams,contact,parent_ticket + name: AttachmentsAssignedTeamsContactParentTicket + - value: attachments,assigned_teams,creator + name: AttachmentsAssignedTeamsCreator + - value: attachments,assigned_teams,creator,parent_ticket + name: AttachmentsAssignedTeamsCreatorParentTicket + - value: attachments,assigned_teams,parent_ticket + name: AttachmentsAssignedTeamsParentTicket + - value: attachments,assignees + name: AttachmentsAssignees + - value: attachments,assignees,account + name: AttachmentsAssigneesAccount + - value: attachments,assignees,account,contact + name: AttachmentsAssigneesAccountContact + - value: attachments,assignees,account,contact,creator + name: AttachmentsAssigneesAccountContactCreator + - value: attachments,assignees,account,contact,creator,parent_ticket + name: AttachmentsAssigneesAccountContactCreatorParentTicket + - value: attachments,assignees,account,contact,parent_ticket + name: AttachmentsAssigneesAccountContactParentTicket + - value: attachments,assignees,account,creator + name: AttachmentsAssigneesAccountCreator + - value: attachments,assignees,account,creator,parent_ticket + name: AttachmentsAssigneesAccountCreatorParentTicket + - value: attachments,assignees,account,parent_ticket + name: AttachmentsAssigneesAccountParentTicket + - value: attachments,assignees,assigned_teams + name: AttachmentsAssigneesAssignedTeams + - value: attachments,assignees,assigned_teams,account + name: AttachmentsAssigneesAssignedTeamsAccount + - value: attachments,assignees,assigned_teams,account,contact + name: AttachmentsAssigneesAssignedTeamsAccountContact + - value: attachments,assignees,assigned_teams,account,contact,creator + name: AttachmentsAssigneesAssignedTeamsAccountContactCreator + - value: >- + attachments,assignees,assigned_teams,account,contact,creator,parent_ticket + name: AttachmentsAssigneesAssignedTeamsAccountContactCreatorParentTicket + - value: attachments,assignees,assigned_teams,account,contact,parent_ticket + name: AttachmentsAssigneesAssignedTeamsAccountContactParentTicket + - value: attachments,assignees,assigned_teams,account,creator + name: AttachmentsAssigneesAssignedTeamsAccountCreator + - value: attachments,assignees,assigned_teams,account,creator,parent_ticket + name: AttachmentsAssigneesAssignedTeamsAccountCreatorParentTicket + - value: attachments,assignees,assigned_teams,account,parent_ticket + name: AttachmentsAssigneesAssignedTeamsAccountParentTicket + - value: attachments,assignees,assigned_teams,contact + name: AttachmentsAssigneesAssignedTeamsContact + - value: attachments,assignees,assigned_teams,contact,creator + name: AttachmentsAssigneesAssignedTeamsContactCreator + - value: attachments,assignees,assigned_teams,contact,creator,parent_ticket + name: AttachmentsAssigneesAssignedTeamsContactCreatorParentTicket + - value: attachments,assignees,assigned_teams,contact,parent_ticket + name: AttachmentsAssigneesAssignedTeamsContactParentTicket + - value: attachments,assignees,assigned_teams,creator + name: AttachmentsAssigneesAssignedTeamsCreator + - value: attachments,assignees,assigned_teams,creator,parent_ticket + name: AttachmentsAssigneesAssignedTeamsCreatorParentTicket + - value: attachments,assignees,assigned_teams,parent_ticket + name: AttachmentsAssigneesAssignedTeamsParentTicket + - value: attachments,assignees,collections + name: AttachmentsAssigneesCollections + - value: attachments,assignees,collections,account + name: AttachmentsAssigneesCollectionsAccount + - value: attachments,assignees,collections,account,contact + name: AttachmentsAssigneesCollectionsAccountContact + - value: attachments,assignees,collections,account,contact,creator + name: AttachmentsAssigneesCollectionsAccountContactCreator + - value: >- + attachments,assignees,collections,account,contact,creator,parent_ticket + name: AttachmentsAssigneesCollectionsAccountContactCreatorParentTicket + - value: attachments,assignees,collections,account,contact,parent_ticket + name: AttachmentsAssigneesCollectionsAccountContactParentTicket + - value: attachments,assignees,collections,account,creator + name: AttachmentsAssigneesCollectionsAccountCreator + - value: attachments,assignees,collections,account,creator,parent_ticket + name: AttachmentsAssigneesCollectionsAccountCreatorParentTicket + - value: attachments,assignees,collections,account,parent_ticket + name: AttachmentsAssigneesCollectionsAccountParentTicket + - value: attachments,assignees,collections,assigned_teams + name: AttachmentsAssigneesCollectionsAssignedTeams + - value: attachments,assignees,collections,assigned_teams,account + name: AttachmentsAssigneesCollectionsAssignedTeamsAccount + - value: attachments,assignees,collections,assigned_teams,account,contact + name: AttachmentsAssigneesCollectionsAssignedTeamsAccountContact + - value: >- + attachments,assignees,collections,assigned_teams,account,contact,creator + name: AttachmentsAssigneesCollectionsAssignedTeamsAccountContactCreator + - value: >- + attachments,assignees,collections,assigned_teams,account,contact,creator,parent_ticket + name: >- + AttachmentsAssigneesCollectionsAssignedTeamsAccountContactCreatorParentTicket + - value: >- + attachments,assignees,collections,assigned_teams,account,contact,parent_ticket + name: AttachmentsAssigneesCollectionsAssignedTeamsAccountContactParentTicket + - value: attachments,assignees,collections,assigned_teams,account,creator + name: AttachmentsAssigneesCollectionsAssignedTeamsAccountCreator + - value: >- + attachments,assignees,collections,assigned_teams,account,creator,parent_ticket + name: AttachmentsAssigneesCollectionsAssignedTeamsAccountCreatorParentTicket + - value: attachments,assignees,collections,assigned_teams,account,parent_ticket + name: AttachmentsAssigneesCollectionsAssignedTeamsAccountParentTicket + - value: attachments,assignees,collections,assigned_teams,contact + name: AttachmentsAssigneesCollectionsAssignedTeamsContact + - value: attachments,assignees,collections,assigned_teams,contact,creator + name: AttachmentsAssigneesCollectionsAssignedTeamsContactCreator + - value: >- + attachments,assignees,collections,assigned_teams,contact,creator,parent_ticket + name: AttachmentsAssigneesCollectionsAssignedTeamsContactCreatorParentTicket + - value: attachments,assignees,collections,assigned_teams,contact,parent_ticket + name: AttachmentsAssigneesCollectionsAssignedTeamsContactParentTicket + - value: attachments,assignees,collections,assigned_teams,creator + name: AttachmentsAssigneesCollectionsAssignedTeamsCreator + - value: attachments,assignees,collections,assigned_teams,creator,parent_ticket + name: AttachmentsAssigneesCollectionsAssignedTeamsCreatorParentTicket + - value: attachments,assignees,collections,assigned_teams,parent_ticket + name: AttachmentsAssigneesCollectionsAssignedTeamsParentTicket + - value: attachments,assignees,collections,contact + name: AttachmentsAssigneesCollectionsContact + - value: attachments,assignees,collections,contact,creator + name: AttachmentsAssigneesCollectionsContactCreator + - value: attachments,assignees,collections,contact,creator,parent_ticket + name: AttachmentsAssigneesCollectionsContactCreatorParentTicket + - value: attachments,assignees,collections,contact,parent_ticket + name: AttachmentsAssigneesCollectionsContactParentTicket + - value: attachments,assignees,collections,creator + name: AttachmentsAssigneesCollectionsCreator + - value: attachments,assignees,collections,creator,parent_ticket + name: AttachmentsAssigneesCollectionsCreatorParentTicket + - value: attachments,assignees,collections,parent_ticket + name: AttachmentsAssigneesCollectionsParentTicket + - value: attachments,assignees,contact + name: AttachmentsAssigneesContact + - value: attachments,assignees,contact,creator + name: AttachmentsAssigneesContactCreator + - value: attachments,assignees,contact,creator,parent_ticket + name: AttachmentsAssigneesContactCreatorParentTicket + - value: attachments,assignees,contact,parent_ticket + name: AttachmentsAssigneesContactParentTicket + - value: attachments,assignees,creator + name: AttachmentsAssigneesCreator + - value: attachments,assignees,creator,parent_ticket + name: AttachmentsAssigneesCreatorParentTicket + - value: attachments,assignees,parent_ticket + name: AttachmentsAssigneesParentTicket + - value: attachments,collections + name: AttachmentsCollections + - value: attachments,collections,account + name: AttachmentsCollectionsAccount + - value: attachments,collections,account,contact + name: AttachmentsCollectionsAccountContact + - value: attachments,collections,account,contact,creator + name: AttachmentsCollectionsAccountContactCreator + - value: attachments,collections,account,contact,creator,parent_ticket + name: AttachmentsCollectionsAccountContactCreatorParentTicket + - value: attachments,collections,account,contact,parent_ticket + name: AttachmentsCollectionsAccountContactParentTicket + - value: attachments,collections,account,creator + name: AttachmentsCollectionsAccountCreator + - value: attachments,collections,account,creator,parent_ticket + name: AttachmentsCollectionsAccountCreatorParentTicket + - value: attachments,collections,account,parent_ticket + name: AttachmentsCollectionsAccountParentTicket + - value: attachments,collections,assigned_teams + name: AttachmentsCollectionsAssignedTeams + - value: attachments,collections,assigned_teams,account + name: AttachmentsCollectionsAssignedTeamsAccount + - value: attachments,collections,assigned_teams,account,contact + name: AttachmentsCollectionsAssignedTeamsAccountContact + - value: attachments,collections,assigned_teams,account,contact,creator + name: AttachmentsCollectionsAssignedTeamsAccountContactCreator + - value: >- + attachments,collections,assigned_teams,account,contact,creator,parent_ticket + name: AttachmentsCollectionsAssignedTeamsAccountContactCreatorParentTicket + - value: attachments,collections,assigned_teams,account,contact,parent_ticket + name: AttachmentsCollectionsAssignedTeamsAccountContactParentTicket + - value: attachments,collections,assigned_teams,account,creator + name: AttachmentsCollectionsAssignedTeamsAccountCreator + - value: attachments,collections,assigned_teams,account,creator,parent_ticket + name: AttachmentsCollectionsAssignedTeamsAccountCreatorParentTicket + - value: attachments,collections,assigned_teams,account,parent_ticket + name: AttachmentsCollectionsAssignedTeamsAccountParentTicket + - value: attachments,collections,assigned_teams,contact + name: AttachmentsCollectionsAssignedTeamsContact + - value: attachments,collections,assigned_teams,contact,creator + name: AttachmentsCollectionsAssignedTeamsContactCreator + - value: attachments,collections,assigned_teams,contact,creator,parent_ticket + name: AttachmentsCollectionsAssignedTeamsContactCreatorParentTicket + - value: attachments,collections,assigned_teams,contact,parent_ticket + name: AttachmentsCollectionsAssignedTeamsContactParentTicket + - value: attachments,collections,assigned_teams,creator + name: AttachmentsCollectionsAssignedTeamsCreator + - value: attachments,collections,assigned_teams,creator,parent_ticket + name: AttachmentsCollectionsAssignedTeamsCreatorParentTicket + - value: attachments,collections,assigned_teams,parent_ticket + name: AttachmentsCollectionsAssignedTeamsParentTicket + - value: attachments,collections,contact + name: AttachmentsCollectionsContact + - value: attachments,collections,contact,creator + name: AttachmentsCollectionsContactCreator + - value: attachments,collections,contact,creator,parent_ticket + name: AttachmentsCollectionsContactCreatorParentTicket + - value: attachments,collections,contact,parent_ticket + name: AttachmentsCollectionsContactParentTicket + - value: attachments,collections,creator + name: AttachmentsCollectionsCreator + - value: attachments,collections,creator,parent_ticket + name: AttachmentsCollectionsCreatorParentTicket + - value: attachments,collections,parent_ticket + name: AttachmentsCollectionsParentTicket + - value: attachments,contact + name: AttachmentsContact + - value: attachments,contact,creator + name: AttachmentsContactCreator + - value: attachments,contact,creator,parent_ticket + name: AttachmentsContactCreatorParentTicket + - value: attachments,contact,parent_ticket + name: AttachmentsContactParentTicket + - value: attachments,creator + name: AttachmentsCreator + - value: attachments,creator,parent_ticket + name: AttachmentsCreatorParentTicket + - value: attachments,parent_ticket + name: AttachmentsParentTicket + - collections + - value: collections,account + name: CollectionsAccount + - value: collections,account,contact + name: CollectionsAccountContact + - value: collections,account,contact,creator + name: CollectionsAccountContactCreator + - value: collections,account,contact,creator,parent_ticket + name: CollectionsAccountContactCreatorParentTicket + - value: collections,account,contact,parent_ticket + name: CollectionsAccountContactParentTicket + - value: collections,account,creator + name: CollectionsAccountCreator + - value: collections,account,creator,parent_ticket + name: CollectionsAccountCreatorParentTicket + - value: collections,account,parent_ticket + name: CollectionsAccountParentTicket + - value: collections,assigned_teams + name: CollectionsAssignedTeams + - value: collections,assigned_teams,account + name: CollectionsAssignedTeamsAccount + - value: collections,assigned_teams,account,contact + name: CollectionsAssignedTeamsAccountContact + - value: collections,assigned_teams,account,contact,creator + name: CollectionsAssignedTeamsAccountContactCreator + - value: collections,assigned_teams,account,contact,creator,parent_ticket + name: CollectionsAssignedTeamsAccountContactCreatorParentTicket + - value: collections,assigned_teams,account,contact,parent_ticket + name: CollectionsAssignedTeamsAccountContactParentTicket + - value: collections,assigned_teams,account,creator + name: CollectionsAssignedTeamsAccountCreator + - value: collections,assigned_teams,account,creator,parent_ticket + name: CollectionsAssignedTeamsAccountCreatorParentTicket + - value: collections,assigned_teams,account,parent_ticket + name: CollectionsAssignedTeamsAccountParentTicket + - value: collections,assigned_teams,contact + name: CollectionsAssignedTeamsContact + - value: collections,assigned_teams,contact,creator + name: CollectionsAssignedTeamsContactCreator + - value: collections,assigned_teams,contact,creator,parent_ticket + name: CollectionsAssignedTeamsContactCreatorParentTicket + - value: collections,assigned_teams,contact,parent_ticket + name: CollectionsAssignedTeamsContactParentTicket + - value: collections,assigned_teams,creator + name: CollectionsAssignedTeamsCreator + - value: collections,assigned_teams,creator,parent_ticket + name: CollectionsAssignedTeamsCreatorParentTicket + - value: collections,assigned_teams,parent_ticket + name: CollectionsAssignedTeamsParentTicket + - value: collections,contact + name: CollectionsContact + - value: collections,contact,creator + name: CollectionsContactCreator + - value: collections,contact,creator,parent_ticket + name: CollectionsContactCreatorParentTicket + - value: collections,contact,parent_ticket + name: CollectionsContactParentTicket + - value: collections,creator + name: CollectionsCreator + - value: collections,creator,parent_ticket + name: CollectionsCreatorParentTicket + - value: collections,parent_ticket + name: CollectionsParentTicket + - contact + - value: contact,creator + name: ContactCreator + - value: contact,creator,parent_ticket + name: ContactCreatorParentTicket + - value: contact,parent_ticket + name: ContactParentTicket + - creator + - value: creator,parent_ticket + name: CreatorParentTicket + - parent_ticket + source: + openapi: openapi/openapi.yml + TicketsRetrieveRequestRemoteFields: + enum: + - priority + - value: priority,status + name: PriorityStatus + - value: priority,status,ticket_type + name: PriorityStatusTicketType + - value: priority,ticket_type + name: PriorityTicketType + - status + - value: status,ticket_type + name: StatusTicketType + - ticket_type + source: + openapi: openapi/openapi.yml + TicketsRetrieveRequestShowEnumOrigins: + enum: + - priority + - value: priority,status + name: PriorityStatus + - value: priority,status,ticket_type + name: PriorityStatusTicketType + - value: priority,ticket_type + name: PriorityTicketType + - status + - value: status,ticket_type + name: StatusTicketType + - ticket_type + source: + openapi: openapi/openapi.yml + TicketsViewersListRequestExpand: + enum: + - team + - user + - value: user,team + name: UserTeam + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/tickets + method: GET + auth: true + docs: Returns a list of `Ticket` objects. + source: + openapi: openapi/openapi.yml + request: + name: TicketsListRequest + query-parameters: + account_id: + type: optional + docs: If provided, will only return tickets for this account. + assignee_ids: + type: optional + docs: >- + If provided, will only return tickets assigned to the + assignee_ids; multiple assignee_ids can be separated by commas. + collection_ids: + type: optional + docs: >- + If provided, will only return tickets assigned to the + collection_ids; multiple collection_ids can be separated by + commas. + completed_after: + type: optional + docs: >- + If provided, will only return tickets completed after this + datetime. + completed_before: + type: optional + docs: >- + If provided, will only return tickets completed before this + datetime. + contact_id: + type: optional + docs: If provided, will only return tickets for this contact. + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + due_after: + type: optional + docs: If provided, will only return tickets due after this datetime. + due_before: + type: optional + docs: If provided, will only return tickets due before this datetime. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + parent_ticket_id: + type: optional + docs: If provided, will only return sub tickets of the parent_ticket_id. + priority: + type: optional + docs: |- + If provided, will only return tickets of this priority. + + * `URGENT` - URGENT + * `HIGH` - HIGH + * `NORMAL` - NORMAL + * `LOW` - LOW + remote_created_after: + type: optional + docs: >- + If provided, will only return tickets created in the third party + platform after this datetime. + remote_created_before: + type: optional + docs: >- + If provided, will only return tickets created in the third party + platform before this datetime. + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + remote_id: + type: optional + docs: The API provider's ID for the given object. + remote_updated_after: + type: optional + docs: >- + If provided, will only return tickets updated in the third party + platform after this datetime. + remote_updated_before: + type: optional + docs: >- + If provided, will only return tickets updated in the third party + platform before this datetime. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + status: + type: optional + docs: If provided, will only return tickets of this status. + tags: + type: optional + docs: >- + If provided, will only return tickets matching the tags; multiple + tags can be separated by commas. + ticket_type: + type: optional + docs: If provided, will only return tickets of this type. + ticket_url: + type: optional + docs: >- + If provided, will only return tickets where the URL matches or + contains the substring + validation: + format: uri + response: + docs: '' + type: root.PaginatedTicketList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Please add more integrations + assignees: + - 17a54124-287f-494d-965e-3c5b330c9a68 + assigned_teams: + - 4857c306-c1f9-489e-a6b6-90902f736dfe + creator: creator + due_date: '2022-10-11T00:00:00Z' + status: OPEN + description: >- + Can you please add more integrations? It'll make syncing + data much easier! + collections: + - fb8c55b6-1cb8-4b4c-9fb6-17924231619d + ticket_type: incident + account: account + contact: contact + parent_ticket: parent_ticket + attachments: + - 42747df1-95e7-46e2-93cc-66f1191edca5 + - 92f972d0-2526-434b-9409-4c3b468e08f0 + access_level: COMPANY + tags: + - enterprise + - other-tag + roles: + - 21a54124-397f-494d-985e-3c5b330b8a68 + - 17a54124-287f-494d-965e-3c5b330c9a68 + remote_created_at: '2021-11-10T00:00:00Z' + remote_updated_at: '2021-12-09T00:00:00Z' + completed_at: '2021-12-09T00:00:00Z' + remote_was_deleted: true + ticket_url: https://thirdpartysoftware.com/project/3/issue/1 + priority: URGENT + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + remote_fields: + - remote_field_class: remote_field_class + create: + path: /ticketing/v1/tickets + method: POST + auth: true + docs: Creates a `Ticket` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: TicketEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.TicketRequest + content-type: application/json + response: + docs: '' + type: root.TicketResponse + status-code: 201 + examples: + - headers: {} + request: + model: {} + response: + body: + model: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Please add more integrations + assignees: + - 17a54124-287f-494d-965e-3c5b330c9a68 + assigned_teams: + - 4857c306-c1f9-489e-a6b6-90902f736dfe + creator: creator + due_date: '2022-10-11T00:00:00Z' + status: OPEN + description: >- + Can you please add more integrations? It'll make syncing data + much easier! + collections: + - fb8c55b6-1cb8-4b4c-9fb6-17924231619d + ticket_type: incident + account: account + contact: contact + parent_ticket: parent_ticket + attachments: + - 42747df1-95e7-46e2-93cc-66f1191edca5 + - 92f972d0-2526-434b-9409-4c3b468e08f0 + access_level: COMPANY + tags: + - enterprise + - other-tag + roles: + - 21a54124-397f-494d-985e-3c5b330b8a68 + - 17a54124-287f-494d-965e-3c5b330c9a68 + remote_created_at: '2021-11-10T00:00:00Z' + remote_updated_at: '2021-12-09T00:00:00Z' + completed_at: '2021-12-09T00:00:00Z' + remote_was_deleted: true + ticket_url: https://thirdpartysoftware.com/project/3/issue/1 + priority: URGENT + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + retrieve: + path: /ticketing/v1/tickets/{id} + method: GET + auth: true + docs: Returns a `Ticket` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: TicketsRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_remote_fields: + type: optional + docs: >- + Whether to include all remote fields, including fields that Merge + did not map to common models, in a normalized format. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + remote_fields: + type: optional + docs: Deprecated. Use show_enum_origins. + show_enum_origins: + type: optional + docs: >- + A comma separated list of enum field names for which you'd like + the original values to be returned, instead of Merge's normalized + enum values. [Learn + more](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) + response: + docs: '' + type: root.Ticket + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Please add more integrations + assignees: + - 17a54124-287f-494d-965e-3c5b330c9a68 + assigned_teams: + - 4857c306-c1f9-489e-a6b6-90902f736dfe + creator: creator + due_date: '2022-10-11T00:00:00Z' + status: OPEN + description: >- + Can you please add more integrations? It'll make syncing data + much easier! + collections: + - fb8c55b6-1cb8-4b4c-9fb6-17924231619d + ticket_type: incident + account: account + contact: contact + parent_ticket: parent_ticket + attachments: + - 42747df1-95e7-46e2-93cc-66f1191edca5 + - 92f972d0-2526-434b-9409-4c3b468e08f0 + access_level: COMPANY + tags: + - enterprise + - other-tag + roles: + - 21a54124-397f-494d-985e-3c5b330b8a68 + - 17a54124-287f-494d-965e-3c5b330c9a68 + remote_created_at: '2021-11-10T00:00:00Z' + remote_updated_at: '2021-12-09T00:00:00Z' + completed_at: '2021-12-09T00:00:00Z' + remote_was_deleted: true + ticket_url: https://thirdpartysoftware.com/project/3/issue/1 + priority: URGENT + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + remote_fields: + - remote_field_class: remote_field_class + value: + key: value + partialUpdate: + path: /ticketing/v1/tickets/{id} + method: PATCH + auth: true + docs: Updates a `Ticket` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: PatchedTicketEndpointRequest + query-parameters: + is_debug_mode: + type: optional + docs: >- + Whether to include debug fields (such as log file links) in the + response. + run_async: + type: optional + docs: Whether or not third-party updates should be run asynchronously. + body: + properties: + model: root.PatchedTicketRequest + content-type: application/json + response: + docs: '' + type: root.TicketResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + request: + model: {} + response: + body: + model: + id: 0958cbc6-6040-430a-848e-aafacbadf4ae + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Please add more integrations + assignees: + - 17a54124-287f-494d-965e-3c5b330c9a68 + assigned_teams: + - 4857c306-c1f9-489e-a6b6-90902f736dfe + creator: creator + due_date: '2022-10-11T00:00:00Z' + status: OPEN + description: >- + Can you please add more integrations? It'll make syncing data + much easier! + collections: + - fb8c55b6-1cb8-4b4c-9fb6-17924231619d + ticket_type: incident + account: account + contact: contact + parent_ticket: parent_ticket + attachments: + - 42747df1-95e7-46e2-93cc-66f1191edca5 + - 92f972d0-2526-434b-9409-4c3b468e08f0 + access_level: COMPANY + tags: + - enterprise + - other-tag + roles: + - 21a54124-397f-494d-985e-3c5b330b8a68 + - 17a54124-287f-494d-965e-3c5b330c9a68 + remote_created_at: '2021-11-10T00:00:00Z' + remote_updated_at: '2021-12-09T00:00:00Z' + completed_at: '2021-12-09T00:00:00Z' + remote_was_deleted: true + ticket_url: https://thirdpartysoftware.com/project/3/issue/1 + priority: URGENT + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + remote_fields: + - remote_field_class: remote_field_class + warnings: + - source: + pointer: pointer + title: Unrecognized Field + detail: An unrecognized field, age, was passed in with request data. + problem_type: UNRECOGNIZED_FIELD + errors: + - source: + pointer: pointer + title: Missing Required Field + detail: custom_fields is a required field on model. + problem_type: MISSING_REQUIRED_FIELD + logs: + - log_id: 99433219-8017-4acd-bb3c-ceb23d663832 + dashboard_view: >- + https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832 + log_summary: + url: www.exampleintegration.com/api/v1/exampleapi + method: POST + status_code: 200 + viewersList: + path: /ticketing/v1/tickets/{ticket_id}/viewers + method: GET + auth: true + docs: >- + Returns a list of `Viewer` objects that point to a User id or Team id + that is either an assignee or viewer on a `Ticket` with the given id. + [Learn + more.](https://help.merge.dev/en/articles/10333658-ticketing-access-control-list-acls) + source: + openapi: openapi/openapi.yml + path-parameters: + ticket_id: string + request: + name: TicketsViewersListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedViewerList + status-code: 200 + examples: + - path-parameters: + ticket_id: ticket_id + headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '088899' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + team: team + user: user + metaPatchRetrieve: + path: /ticketing/v1/tickets/meta/patch/{id} + method: GET + auth: true + docs: Returns metadata for `Ticket` PATCHs. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + metaPostRetrieve: + path: /ticketing/v1/tickets/meta/post + method: GET + auth: true + docs: Returns metadata for `Ticket` POSTs. + source: + openapi: openapi/openapi.yml + request: + name: TicketsMetaPostRetrieveRequest + query-parameters: + collection_id: + type: optional + docs: If provided, will only return tickets for this collection. + ticket_type: + type: optional + docs: If provided, will only return tickets for this ticket type. + response: + docs: '' + type: root.MetaResponse + status-code: 200 + examples: + - headers: {} + response: + body: + request_schema: + type: object + properties: + model: + type: object + required: + - last_name + - first_name + - merge_categories + - new_york_city_neighborhood + - favorite_tv_shows + - favorite_watch + properties: + email_addresses: + type: array + items: + type: object + properties: + value: + type: string + title: value + email_address_type: + type: string + title: email_address_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: email_addresses + description: Array of email_addresses objects + urls: + type: array + items: + type: object + properties: + value: + type: string + title: value + url_type: + type: string + title: url_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: urls + description: Array of urls objects + first_name: + type: string + title: first_name + description: The first name. + last_name: + type: string + title: last_name + description: The last name. + phone_numbers: + type: array + items: + type: object + properties: + value: + type: string + title: value + phone_number_type: + type: string + title: phone_number_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: phone_numbers + description: Array of phone_numbers objects + tags: + type: array + items: + type: string + format: uuid + title: tags + description: Array of tags names + attachments: + type: array + items: + type: object + properties: + id: + type: string + title: id + file_url: + type: string + title: file_url + file_name: + type: string + title: file_name + attachment_type: + type: string + title: attachment_type + integration_params: + type: object + title: integration_params + properties: {} + linked_account_params: + type: object + title: linked_account_params + properties: {} + title: attachments + description: 'Array of attachments objects ' + merge_categories: + type: array + categories: + type: string + enum: + - HRIS + - ATS + - Accounting + - Ticketing + - File Storage + - CRM + - Marketing Automation + enum_information: + - value: HRIS + description: Merge HRIS Category + - value: ATS + description: Merge ATS Category + - value: Accounting + description: Merge Accounting Category + - value: Ticketing + description: Merge Ticketing Category + - value: File Storage + description: Merge File Storage Category + - value: CRM + description: Merge CRM Category + - value: Marketing Automation + description: Merge Marketing Automation Category + title: Merge Categories + description: Array of Merge's Unified API Categories + new_york_city_neighborhood: + type: string + title: Borough + description: One of the 5 Boroughs of New York City + favorite_tv_shows: + type: array + items: + type: string + format: uuid + title: Favorite TV Shows + description: Array of TV Show objects on merge.tv_shows + favorite_watch: + type: string + title: Favorite Watch + description: Favorite watch of all time + remote_field_classes: + key: value + status: + linked_account_status: linked_account_status + can_make_request: true + has_conditional_params: true + has_required_linked_account_params: true + remoteFieldClassesList: + path: /ticketing/v1/tickets/remote-field-classes + method: GET + auth: true + docs: Returns a list of `RemoteFieldClass` objects. + source: + openapi: openapi/openapi.yml + request: + name: TicketsRemoteFieldClassesListRequest + query-parameters: + cursor: + type: optional + docs: The pagination cursor value. + ids: + type: optional + docs: >- + If provided, will only return remote field classes with the `ids` + in this list + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + is_common_model_field: + type: optional + docs: >- + If provided, will only return remote field classes with this + is_common_model_field value + is_custom: + type: optional + docs: >- + If provided, will only return remote fields classes with this + is_custom value + page_size: + type: optional + docs: Number of results to return per page. + response: + docs: '' + type: root.PaginatedRemoteFieldClassList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: id + display_name: display_name + remote_key_name: remote_key_name + description: description + is_custom: true + is_required: true + field_type: field_type + field_format: field_format + field_choices: + - {} + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/users.yml b/.mock/definition/ticketing/users.yml new file mode 100644 index 000000000..76cfbe5fa --- /dev/null +++ b/.mock/definition/ticketing/users.yml @@ -0,0 +1,185 @@ +types: + UsersListRequestExpand: + enum: + - roles + - teams + - value: teams,roles + name: TeamsRoles + source: + openapi: openapi/openapi.yml + UsersRetrieveRequestExpand: + enum: + - roles + - teams + - value: teams,roles + name: TeamsRoles + source: + openapi: openapi/openapi.yml +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/users + method: GET + auth: true + docs: Returns a list of `User` objects. + source: + openapi: openapi/openapi.yml + request: + name: UsersListRequest + query-parameters: + created_after: + type: optional + docs: If provided, will only return objects created after this datetime. + created_before: + type: optional + docs: >- + If provided, will only return objects created before this + datetime. + cursor: + type: optional + docs: The pagination cursor value. + email_address: + type: optional + docs: >- + If provided, will only return users with emails equal to this + value (case insensitive). + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_deleted_data: + type: optional + docs: >- + Indicates whether or not this object has been deleted in the third + party platform. Full coverage deletion detection is a premium + add-on. Native deletion detection is offered for free with limited + coverage. [Learn + more](https://docs.merge.dev/integrations/hris/supported-features/). + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + modified_after: + type: optional + docs: >- + If provided, only objects synced by Merge after this date time + will be returned. + modified_before: + type: optional + docs: >- + If provided, only objects synced by Merge before this date time + will be returned. + page_size: + type: optional + docs: Number of results to return per page. + remote_id: + type: optional + docs: The API provider's ID for the given object. + team: + type: optional + docs: If provided, will only return users matching in this team. + response: + docs: '' + type: root.PaginatedUserList + status-code: 200 + examples: + - headers: {} + response: + body: + next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw + previous: cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ + results: + - id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig + email_address: help@merge.dev + is_active: true + teams: + - 28b54125-287f-494d-965e-3c5b330c9a68 + - 17a54124-287f-494d-965e-3c5b330c9a68 + roles: + - 23454124-387f-494d-265e-345b330c9123 + avatar: https://merge.dev/user_profile_pic.png + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + retrieve: + path: /ticketing/v1/users/{id} + method: GET + auth: true + docs: Returns a `User` object with the given `id`. + source: + openapi: openapi/openapi.yml + path-parameters: + id: string + request: + name: UsersRetrieveRequest + query-parameters: + expand: + type: optional + docs: >- + Which relations should be returned in expanded form. Multiple + relation names should be comma separated without spaces. + include_remote_data: + type: optional + docs: >- + Whether to include the original data Merge fetched from the + third-party to produce these models. + include_shell_data: + type: optional + docs: >- + Whether to include shell records. Shell records are empty records + (they may contain some metadata but all other fields are null). + response: + docs: '' + type: root.User + status-code: 200 + examples: + - path-parameters: + id: id + headers: {} + response: + body: + id: 17a54124-287f-494d-965e-3c5b330c9a68 + remote_id: '19202938' + created_at: '2021-09-15T00:00:00Z' + modified_at: '2021-10-16T00:00:00Z' + name: Gil Feig + email_address: help@merge.dev + is_active: true + teams: + - 28b54125-287f-494d-965e-3c5b330c9a68 + - 17a54124-287f-494d-965e-3c5b330c9a68 + roles: + - 23454124-387f-494d-265e-345b330c9123 + avatar: https://merge.dev/user_profile_pic.png + remote_was_deleted: true + field_mappings: + organization_defined_targets: + custom_key: custom_value + linked_account_defined_targets: + custom_key: custom_value + remote_data: + - path: /platform-endpoint + data: + key: value + source: + openapi: openapi/openapi.yml diff --git a/.mock/definition/ticketing/webhookReceivers.yml b/.mock/definition/ticketing/webhookReceivers.yml new file mode 100644 index 000000000..54b5126ac --- /dev/null +++ b/.mock/definition/ticketing/webhookReceivers.yml @@ -0,0 +1,61 @@ +imports: + root: __package__.yml +service: + auth: false + base-path: '' + endpoints: + list: + path: /ticketing/v1/webhook-receivers + method: GET + auth: true + docs: Returns a list of `WebhookReceiver` objects. + source: + openapi: openapi/openapi.yml + response: + docs: '' + type: list + status-code: 200 + examples: + - headers: {} + response: + body: + - event: event + is_active: true + key: key + create: + path: /ticketing/v1/webhook-receivers + method: POST + auth: true + docs: Creates a `WebhookReceiver` object with the given values. + source: + openapi: openapi/openapi.yml + request: + name: WebhookReceiverRequest + body: + properties: + event: + type: string + validation: + minLength: 1 + is_active: boolean + key: + type: optional + validation: + minLength: 1 + content-type: application/json + response: + docs: '' + type: root.WebhookReceiver + status-code: 201 + examples: + - headers: {} + request: + event: event + is_active: true + response: + body: + event: event + is_active: true + key: key + source: + openapi: openapi/openapi.yml diff --git a/.mock/fern.config.json b/.mock/fern.config.json new file mode 100644 index 000000000..c4faf103e --- /dev/null +++ b/.mock/fern.config.json @@ -0,0 +1,4 @@ +{ + "organization" : "merge", + "version" : "0.63.28" +} \ No newline at end of file diff --git a/jest.config.mjs b/jest.config.mjs index c7248211d..5f02970c5 100644 --- a/jest.config.mjs +++ b/jest.config.mjs @@ -5,4 +5,5 @@ export default { moduleNameMapper: { "(.+)\.js$": "$1", }, + setupFilesAfterEnv: ["/tests/mock-server/setup.ts"], }; diff --git a/package.json b/package.json index 2d48f4e22..62bc1c558 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@mergeapi/merge-node-client", - "version": "1.1.9", + "version": "2.0.0", "private": false, "repository": "https://github.com/merge-api/merge-node-client", "main": "./index.js", @@ -9,7 +9,9 @@ "format": "prettier . --write --ignore-unknown", "build": "tsc", "prepack": "cp -rv dist/. .", - "test": "jest" + "test": "jest tests/unit --passWithNoTests", + "test:wire": "jest tests/wire --passWithNoTests", + "wire:test": "yarn test:wire" }, "dependencies": { "url-join": "4.0.1", @@ -28,9 +30,11 @@ "webpack": "^5.97.1", "ts-loader": "^9.5.1", "jest": "^29.7.0", + "@jest/globals": "^29.7.0", "@types/jest": "^29.5.14", - "ts-jest": "^29.1.1", + "ts-jest": "^29.3.4", "jest-environment-jsdom": "^29.7.0", + "msw": "^2.8.4", "@types/node": "^18.19.70", "prettier": "^3.4.2", "typescript": "~5.7.2" diff --git a/reference.md b/reference.md index 9f71ec27e..dea183a1e 100644 --- a/reference.md +++ b/reference.md @@ -4803,9 +4803,9 @@ await client.ats.webhookReceivers.create({ -## Filestorage AccountDetails +## Crm AccountDetails -
client.filestorage.accountDetails.retrieve() -> Merge.AccountDetails +
client.crm.accountDetails.retrieve() -> Merge.AccountDetails
@@ -4833,7 +4833,7 @@ Get details for a linked account.
```typescript -await client.filestorage.accountDetails.retrieve(); +await client.crm.accountDetails.retrieve(); ```
@@ -4860,9 +4860,9 @@ await client.filestorage.accountDetails.retrieve();
-## Filestorage AccountToken +## Crm AccountToken -
client.filestorage.accountToken.retrieve(publicToken) -> Merge.AccountToken +
client.crm.accountToken.retrieve(publicToken) -> Merge.AccountToken
@@ -4890,7 +4890,7 @@ Returns the account token for the end user with the provided public token.
```typescript -await client.filestorage.accountToken.retrieve("public_token"); +await client.crm.accountToken.retrieve("public_token"); ```
@@ -4925,9 +4925,9 @@ await client.filestorage.accountToken.retrieve("public_token");
-## Filestorage AsyncPassthrough +## Crm Accounts -
client.filestorage.asyncPassthrough.create({ ...params }) -> Merge.AsyncPassthroughReciept +
client.crm.accounts.list({ ...params }) -> Merge.PaginatedAccountList
@@ -4939,7 +4939,7 @@ await client.filestorage.accountToken.retrieve("public_token");
-Asynchronously pull data from an endpoint not currently supported by Merge. +Returns a list of `Account` objects.
@@ -4955,10 +4955,7 @@ Asynchronously pull data from an endpoint not currently supported by Merge.
```typescript -await client.filestorage.asyncPassthrough.create({ - method: "GET", - path: "/scooters", -}); +await client.crm.accounts.list(); ```
@@ -4974,7 +4971,7 @@ await client.filestorage.asyncPassthrough.create({
-**request:** `Merge.DataPassthroughRequest` +**request:** `Merge.crm.AccountsListRequest`
@@ -4982,7 +4979,7 @@ await client.filestorage.asyncPassthrough.create({
-**requestOptions:** `AsyncPassthrough.RequestOptions` +**requestOptions:** `Accounts.RequestOptions`
@@ -4993,7 +4990,7 @@ await client.filestorage.asyncPassthrough.create({
-
client.filestorage.asyncPassthrough.retrieve(asyncPassthroughReceiptId) -> Merge.AsyncPassthroughRetrieveResponse +
client.crm.accounts.create({ ...params }) -> Merge.CrmAccountResponse
@@ -5005,7 +5002,7 @@ await client.filestorage.asyncPassthrough.create({
-Retrieves data from earlier async-passthrough POST request +Creates an `Account` object with the given values.
@@ -5021,7 +5018,9 @@ Retrieves data from earlier async-passthrough POST request
```typescript -await client.filestorage.asyncPassthrough.retrieve("async_passthrough_receipt_id"); +await client.crm.accounts.create({ + model: {}, +}); ```
@@ -5037,7 +5036,7 @@ await client.filestorage.asyncPassthrough.retrieve("async_passthrough_receipt_id
-**asyncPassthroughReceiptId:** `string` +**request:** `Merge.crm.CrmAccountEndpointRequest`
@@ -5045,7 +5044,7 @@ await client.filestorage.asyncPassthrough.retrieve("async_passthrough_receipt_id
-**requestOptions:** `AsyncPassthrough.RequestOptions` +**requestOptions:** `Accounts.RequestOptions`
@@ -5056,9 +5055,7 @@ await client.filestorage.asyncPassthrough.retrieve("async_passthrough_receipt_id
-## Filestorage AuditTrail - -
client.filestorage.auditTrail.list({ ...params }) -> Merge.PaginatedAuditLogEventList +
client.crm.accounts.retrieve(id, { ...params }) -> Merge.Account
@@ -5070,7 +5067,7 @@ await client.filestorage.asyncPassthrough.retrieve("async_passthrough_receipt_id
-Gets a list of audit trail events. +Returns an `Account` object with the given `id`.
@@ -5086,7 +5083,7 @@ Gets a list of audit trail events.
```typescript -await client.filestorage.auditTrail.list(); +await client.crm.accounts.retrieve("id"); ```
@@ -5102,7 +5099,7 @@ await client.filestorage.auditTrail.list();
-**request:** `Merge.filestorage.AuditTrailListRequest` +**id:** `string`
@@ -5110,7 +5107,15 @@ await client.filestorage.auditTrail.list();
-**requestOptions:** `AuditTrail.RequestOptions` +**request:** `Merge.crm.AccountsRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Accounts.RequestOptions`
@@ -5121,9 +5126,7 @@ await client.filestorage.auditTrail.list();
-## Filestorage AvailableActions - -
client.filestorage.availableActions.retrieve() -> Merge.AvailableActions +
client.crm.accounts.partialUpdate(id, { ...params }) -> Merge.CrmAccountResponse
@@ -5135,7 +5138,7 @@ await client.filestorage.auditTrail.list();
-Returns a list of models and actions available for an account. +Updates an `Account` object with the given `id`.
@@ -5151,7 +5154,9 @@ Returns a list of models and actions available for an account.
```typescript -await client.filestorage.availableActions.retrieve(); +await client.crm.accounts.partialUpdate("id", { + model: {}, +}); ```
@@ -5167,7 +5172,23 @@ await client.filestorage.availableActions.retrieve();
-**requestOptions:** `AvailableActions.RequestOptions` +**id:** `string` + +
+
+ +
+
+ +**request:** `Merge.crm.PatchedCrmAccountEndpointRequest` + +
+
+ +
+
+ +**requestOptions:** `Accounts.RequestOptions`
@@ -5178,9 +5199,7 @@ await client.filestorage.availableActions.retrieve();
-## Filestorage Scopes - -
client.filestorage.scopes.defaultScopesRetrieve() -> Merge.CommonModelScopeApi +
client.crm.accounts.metaPatchRetrieve(id) -> Merge.MetaResponse
@@ -5192,7 +5211,7 @@ await client.filestorage.availableActions.retrieve();
-Get the default permissions for Merge Common Models and fields across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). +Returns metadata for `CRMAccount` PATCHs.
@@ -5208,7 +5227,7 @@ Get the default permissions for Merge Common Models and fields across all Linked
```typescript -await client.filestorage.scopes.defaultScopesRetrieve(); +await client.crm.accounts.metaPatchRetrieve("id"); ```
@@ -5224,7 +5243,15 @@ await client.filestorage.scopes.defaultScopesRetrieve();
-**requestOptions:** `Scopes.RequestOptions` +**id:** `string` + +
+
+ +
+
+ +**requestOptions:** `Accounts.RequestOptions`
@@ -5235,7 +5262,7 @@ await client.filestorage.scopes.defaultScopesRetrieve();
-
client.filestorage.scopes.linkedAccountScopesRetrieve() -> Merge.CommonModelScopeApi +
client.crm.accounts.metaPostRetrieve() -> Merge.MetaResponse
@@ -5247,7 +5274,7 @@ await client.filestorage.scopes.defaultScopesRetrieve();
-Get all available permissions for Merge Common Models and fields for a single Linked Account. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). +Returns metadata for `CRMAccount` POSTs.
@@ -5263,7 +5290,7 @@ Get all available permissions for Merge Common Models and fields for a single Li
```typescript -await client.filestorage.scopes.linkedAccountScopesRetrieve(); +await client.crm.accounts.metaPostRetrieve(); ```
@@ -5279,7 +5306,7 @@ await client.filestorage.scopes.linkedAccountScopesRetrieve();
-**requestOptions:** `Scopes.RequestOptions` +**requestOptions:** `Accounts.RequestOptions`
@@ -5290,7 +5317,7 @@ await client.filestorage.scopes.linkedAccountScopesRetrieve();
-
client.filestorage.scopes.linkedAccountScopesCreate({ ...params }) -> Merge.CommonModelScopeApi +
client.crm.accounts.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList
@@ -5302,7 +5329,7 @@ await client.filestorage.scopes.linkedAccountScopesRetrieve();
-Update permissions for any Common Model or field for a single Linked Account. Any Scopes not set in this POST request will inherit the default Scopes. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) +Returns a list of `RemoteFieldClass` objects.
@@ -5318,33 +5345,7 @@ Update permissions for any Common Model or field for a single Linked Account. An
```typescript -await client.filestorage.scopes.linkedAccountScopesCreate({ - commonModels: [ - { - modelName: "Employee", - modelPermissions: { - READ: { - isEnabled: true, - }, - WRITE: { - isEnabled: false, - }, - }, - fieldPermissions: { - enabledFields: ["avatar", "home_location"], - disabledFields: ["work_location"], - }, - }, - { - modelName: "Benefit", - modelPermissions: { - WRITE: { - isEnabled: false, - }, - }, - }, - ], -}); +await client.crm.accounts.remoteFieldClassesList(); ```
@@ -5360,7 +5361,7 @@ await client.filestorage.scopes.linkedAccountScopesCreate({
-**request:** `Merge.filestorage.LinkedAccountCommonModelScopeDeserializerRequest` +**request:** `Merge.crm.AccountsRemoteFieldClassesListRequest`
@@ -5368,7 +5369,7 @@ await client.filestorage.scopes.linkedAccountScopesCreate({
-**requestOptions:** `Scopes.RequestOptions` +**requestOptions:** `Accounts.RequestOptions`
@@ -5379,9 +5380,9 @@ await client.filestorage.scopes.linkedAccountScopesCreate({
-## Filestorage DeleteAccount +## Crm AsyncPassthrough -
client.filestorage.deleteAccount.delete() -> void +
client.crm.asyncPassthrough.create({ ...params }) -> Merge.AsyncPassthroughReciept
@@ -5393,7 +5394,7 @@ await client.filestorage.scopes.linkedAccountScopesCreate({
-Delete a linked account. +Asynchronously pull data from an endpoint not currently supported by Merge.
@@ -5409,7 +5410,10 @@ Delete a linked account.
```typescript -await client.filestorage.deleteAccount.delete(); +await client.crm.asyncPassthrough.create({ + method: "GET", + path: "/scooters", +}); ```
@@ -5425,7 +5429,15 @@ await client.filestorage.deleteAccount.delete();
-**requestOptions:** `DeleteAccount.RequestOptions` +**request:** `Merge.DataPassthroughRequest` + +
+
+ +
+
+ +**requestOptions:** `AsyncPassthrough.RequestOptions`
@@ -5436,9 +5448,7 @@ await client.filestorage.deleteAccount.delete();
-## Filestorage Drives - -
client.filestorage.drives.list({ ...params }) -> Merge.PaginatedDriveList +
client.crm.asyncPassthrough.retrieve(asyncPassthroughReceiptId) -> Merge.AsyncPassthroughRetrieveResponse
@@ -5450,7 +5460,7 @@ await client.filestorage.deleteAccount.delete();
-Returns a list of `Drive` objects. +Retrieves data from earlier async-passthrough POST request
@@ -5466,7 +5476,7 @@ Returns a list of `Drive` objects.
```typescript -await client.filestorage.drives.list(); +await client.crm.asyncPassthrough.retrieve("async_passthrough_receipt_id"); ```
@@ -5482,7 +5492,7 @@ await client.filestorage.drives.list();
-**request:** `Merge.filestorage.DrivesListRequest` +**asyncPassthroughReceiptId:** `string`
@@ -5490,7 +5500,7 @@ await client.filestorage.drives.list();
-**requestOptions:** `Drives.RequestOptions` +**requestOptions:** `AsyncPassthrough.RequestOptions`
@@ -5501,7 +5511,9 @@ await client.filestorage.drives.list();
-
client.filestorage.drives.retrieve(id, { ...params }) -> Merge.Drive +## Crm AuditTrail + +
client.crm.auditTrail.list({ ...params }) -> Merge.PaginatedAuditLogEventList
@@ -5513,7 +5525,7 @@ await client.filestorage.drives.list();
-Returns a `Drive` object with the given `id`. +Gets a list of audit trail events.
@@ -5529,7 +5541,7 @@ Returns a `Drive` object with the given `id`.
```typescript -await client.filestorage.drives.retrieve("id"); +await client.crm.auditTrail.list(); ```
@@ -5545,15 +5557,7 @@ await client.filestorage.drives.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.filestorage.DrivesRetrieveRequest` +**request:** `Merge.crm.AuditTrailListRequest`
@@ -5561,7 +5565,7 @@ await client.filestorage.drives.retrieve("id");
-**requestOptions:** `Drives.RequestOptions` +**requestOptions:** `AuditTrail.RequestOptions`
@@ -5572,9 +5576,9 @@ await client.filestorage.drives.retrieve("id");
-## Filestorage FieldMapping +## Crm AvailableActions -
client.filestorage.fieldMapping.fieldMappingsRetrieve({ ...params }) -> Merge.FieldMappingApiInstanceResponse +
client.crm.availableActions.retrieve() -> Merge.AvailableActions
@@ -5586,7 +5590,7 @@ await client.filestorage.drives.retrieve("id");
-Get all Field Mappings for this Linked Account. Field Mappings are mappings between third-party Remote Fields and user defined Merge fields. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). +Returns a list of models and actions available for an account.
@@ -5602,7 +5606,7 @@ Get all Field Mappings for this Linked Account. Field Mappings are mappings betw
```typescript -await client.filestorage.fieldMapping.fieldMappingsRetrieve(); +await client.crm.availableActions.retrieve(); ```
@@ -5618,15 +5622,7 @@ await client.filestorage.fieldMapping.fieldMappingsRetrieve();
-**request:** `Merge.filestorage.FieldMappingsRetrieveRequest` - -
-
- -
-
- -**requestOptions:** `FieldMapping.RequestOptions` +**requestOptions:** `AvailableActions.RequestOptions`
@@ -5637,7 +5633,9 @@ await client.filestorage.fieldMapping.fieldMappingsRetrieve();
-
client.filestorage.fieldMapping.fieldMappingsCreate({ ...params }) -> Merge.FieldMappingInstanceResponse +## Crm Contacts + +
client.crm.contacts.list({ ...params }) -> Merge.PaginatedContactList
@@ -5649,7 +5647,7 @@ await client.filestorage.fieldMapping.fieldMappingsRetrieve();
-Create new Field Mappings that will be available after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start. +Returns a list of `Contact` objects.
@@ -5665,14 +5663,7 @@ Create new Field Mappings that will be available after the next scheduled sync.
```typescript -await client.filestorage.fieldMapping.fieldMappingsCreate({ - targetFieldName: "example_target_field_name", - targetFieldDescription: "this is a example description of the target field", - remoteFieldTraversalPath: ["example_remote_field"], - remoteMethod: "GET", - remoteUrlPath: "/example-url-path", - commonModelName: "ExampleCommonModel", -}); +await client.crm.contacts.list(); ```
@@ -5688,7 +5679,7 @@ await client.filestorage.fieldMapping.fieldMappingsCreate({
-**request:** `Merge.filestorage.CreateFieldMappingRequest` +**request:** `Merge.crm.ContactsListRequest`
@@ -5696,7 +5687,7 @@ await client.filestorage.fieldMapping.fieldMappingsCreate({
-**requestOptions:** `FieldMapping.RequestOptions` +**requestOptions:** `Contacts.RequestOptions`
@@ -5707,7 +5698,7 @@ await client.filestorage.fieldMapping.fieldMappingsCreate({
-
client.filestorage.fieldMapping.fieldMappingsDestroy(fieldMappingId) -> Merge.FieldMappingInstanceResponse +
client.crm.contacts.create({ ...params }) -> Merge.CrmContactResponse
@@ -5719,7 +5710,7 @@ await client.filestorage.fieldMapping.fieldMappingsCreate({
-Deletes Field Mappings for a Linked Account. All data related to this Field Mapping will be deleted and these changes will be reflected after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start. +Creates a `Contact` object with the given values.
@@ -5735,7 +5726,9 @@ Deletes Field Mappings for a Linked Account. All data related to this Field Mapp
```typescript -await client.filestorage.fieldMapping.fieldMappingsDestroy("field_mapping_id"); +await client.crm.contacts.create({ + model: {}, +}); ```
@@ -5751,7 +5744,7 @@ await client.filestorage.fieldMapping.fieldMappingsDestroy("field_mapping_id");
-**fieldMappingId:** `string` +**request:** `Merge.crm.CrmContactEndpointRequest`
@@ -5759,7 +5752,7 @@ await client.filestorage.fieldMapping.fieldMappingsDestroy("field_mapping_id");
-**requestOptions:** `FieldMapping.RequestOptions` +**requestOptions:** `Contacts.RequestOptions`
@@ -5770,7 +5763,7 @@ await client.filestorage.fieldMapping.fieldMappingsDestroy("field_mapping_id");
-
client.filestorage.fieldMapping.fieldMappingsPartialUpdate(fieldMappingId, { ...params }) -> Merge.FieldMappingInstanceResponse +
client.crm.contacts.retrieve(id, { ...params }) -> Merge.Contact
@@ -5782,7 +5775,7 @@ await client.filestorage.fieldMapping.fieldMappingsDestroy("field_mapping_id");
-Create or update existing Field Mappings for a Linked Account. Changes will be reflected after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start. +Returns a `Contact` object with the given `id`.
@@ -5798,7 +5791,7 @@ Create or update existing Field Mappings for a Linked Account. Changes will be r
```typescript -await client.filestorage.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id"); +await client.crm.contacts.retrieve("id"); ```
@@ -5814,7 +5807,7 @@ await client.filestorage.fieldMapping.fieldMappingsPartialUpdate("field_mapping_
-**fieldMappingId:** `string` +**id:** `string`
@@ -5822,7 +5815,7 @@ await client.filestorage.fieldMapping.fieldMappingsPartialUpdate("field_mapping_
-**request:** `Merge.filestorage.PatchedEditFieldMappingRequest` +**request:** `Merge.crm.ContactsRetrieveRequest`
@@ -5830,7 +5823,7 @@ await client.filestorage.fieldMapping.fieldMappingsPartialUpdate("field_mapping_
-**requestOptions:** `FieldMapping.RequestOptions` +**requestOptions:** `Contacts.RequestOptions`
@@ -5841,7 +5834,7 @@ await client.filestorage.fieldMapping.fieldMappingsPartialUpdate("field_mapping_
-
client.filestorage.fieldMapping.remoteFieldsRetrieve({ ...params }) -> Merge.RemoteFieldApiResponse +
client.crm.contacts.partialUpdate(id, { ...params }) -> Merge.CrmContactResponse
@@ -5853,7 +5846,7 @@ await client.filestorage.fieldMapping.fieldMappingsPartialUpdate("field_mapping_
-Get all remote fields for a Linked Account. Remote fields are third-party fields that are accessible after initial sync if remote_data is enabled. You can use remote fields to override existing Merge fields or map a new Merge field. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). +Updates a `Contact` object with the given `id`.
@@ -5869,7 +5862,9 @@ Get all remote fields for a Linked Account. Remote fields are third-party fields
```typescript -await client.filestorage.fieldMapping.remoteFieldsRetrieve(); +await client.crm.contacts.partialUpdate("id", { + model: {}, +}); ```
@@ -5885,7 +5880,7 @@ await client.filestorage.fieldMapping.remoteFieldsRetrieve();
-**request:** `Merge.filestorage.RemoteFieldsRetrieveRequest` +**id:** `string`
@@ -5893,7 +5888,15 @@ await client.filestorage.fieldMapping.remoteFieldsRetrieve();
-**requestOptions:** `FieldMapping.RequestOptions` +**request:** `Merge.crm.PatchedCrmContactEndpointRequest` + +
+
+ +
+
+ +**requestOptions:** `Contacts.RequestOptions`
@@ -5904,7 +5907,7 @@ await client.filestorage.fieldMapping.remoteFieldsRetrieve();
-
client.filestorage.fieldMapping.targetFieldsRetrieve() -> Merge.ExternalTargetFieldApiResponse +
client.crm.contacts.ignoreCreate(modelId, { ...params }) -> void
@@ -5916,7 +5919,7 @@ await client.filestorage.fieldMapping.remoteFieldsRetrieve();
-Get all organization-wide Target Fields, this will not include any Linked Account specific Target Fields. Organization-wide Target Fields are additional fields appended to the Merge Common Model for all Linked Accounts in a category. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). +Ignores a specific row based on the `model_id` in the url. These records will have their properties set to null, and will not be updated in future syncs. The "reason" and "message" fields in the request body will be stored for audit purposes.
@@ -5932,7 +5935,9 @@ Get all organization-wide Target Fields, this will not include any Linked Accoun
```typescript -await client.filestorage.fieldMapping.targetFieldsRetrieve(); +await client.crm.contacts.ignoreCreate("model_id", { + reason: "GENERAL_CUSTOMER_REQUEST", +}); ```
@@ -5948,7 +5953,23 @@ await client.filestorage.fieldMapping.targetFieldsRetrieve();
-**requestOptions:** `FieldMapping.RequestOptions` +**modelId:** `string` + +
+
+ +
+
+ +**request:** `Merge.IgnoreCommonModelRequest` + +
+
+ +
+
+ +**requestOptions:** `Contacts.RequestOptions`
@@ -5959,9 +5980,7 @@ await client.filestorage.fieldMapping.targetFieldsRetrieve();
-## Filestorage Files - -
client.filestorage.files.list({ ...params }) -> Merge.PaginatedFileList +
client.crm.contacts.metaPatchRetrieve(id) -> Merge.MetaResponse
@@ -5973,7 +5992,7 @@ await client.filestorage.fieldMapping.targetFieldsRetrieve();
-Returns a list of `File` objects. +Returns metadata for `CRMContact` PATCHs.
@@ -5989,7 +6008,7 @@ Returns a list of `File` objects.
```typescript -await client.filestorage.files.list(); +await client.crm.contacts.metaPatchRetrieve("id"); ```
@@ -6005,7 +6024,7 @@ await client.filestorage.files.list();
-**request:** `Merge.filestorage.FilesListRequest` +**id:** `string`
@@ -6013,7 +6032,7 @@ await client.filestorage.files.list();
-**requestOptions:** `Files.RequestOptions` +**requestOptions:** `Contacts.RequestOptions`
@@ -6024,7 +6043,7 @@ await client.filestorage.files.list();
-
client.filestorage.files.create({ ...params }) -> Merge.FileStorageFileResponse +
client.crm.contacts.metaPostRetrieve() -> Merge.MetaResponse
@@ -6036,7 +6055,7 @@ await client.filestorage.files.list();
-Creates a `File` object with the given values. +Returns metadata for `CRMContact` POSTs.
@@ -6052,9 +6071,7 @@ Creates a `File` object with the given values.
```typescript -await client.filestorage.files.create({ - model: {}, -}); +await client.crm.contacts.metaPostRetrieve(); ```
@@ -6070,15 +6087,7 @@ await client.filestorage.files.create({
-**request:** `Merge.filestorage.FileStorageFileEndpointRequest` - -
-
- -
-
- -**requestOptions:** `Files.RequestOptions` +**requestOptions:** `Contacts.RequestOptions`
@@ -6089,7 +6098,7 @@ await client.filestorage.files.create({
-
client.filestorage.files.retrieve(id, { ...params }) -> Merge.File_ +
client.crm.contacts.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList
@@ -6101,7 +6110,7 @@ await client.filestorage.files.create({
-Returns a `File` object with the given `id`. +Returns a list of `RemoteFieldClass` objects.
@@ -6117,7 +6126,7 @@ Returns a `File` object with the given `id`.
```typescript -await client.filestorage.files.retrieve("id"); +await client.crm.contacts.remoteFieldClassesList(); ```
@@ -6133,15 +6142,7 @@ await client.filestorage.files.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.filestorage.FilesRetrieveRequest` +**request:** `Merge.crm.ContactsRemoteFieldClassesListRequest`
@@ -6149,7 +6150,7 @@ await client.filestorage.files.retrieve("id");
-**requestOptions:** `Files.RequestOptions` +**requestOptions:** `Contacts.RequestOptions`
@@ -6160,7 +6161,9 @@ await client.filestorage.files.retrieve("id");
-
client.filestorage.files.downloadRequestMetaRetrieve(id, { ...params }) -> Merge.DownloadRequestMeta +## Crm CustomObjectClasses + +
client.crm.customObjectClasses.list({ ...params }) -> Merge.PaginatedCustomObjectClassList
@@ -6172,7 +6175,7 @@ await client.filestorage.files.retrieve("id");
-Returns metadata to construct an authenticated file download request for a singular file, allowing you to download file directly from the third-party. +Returns a list of `CustomObjectClass` objects.
@@ -6188,7 +6191,7 @@ Returns metadata to construct an authenticated file download request for a singu
```typescript -await client.filestorage.files.downloadRequestMetaRetrieve("id"); +await client.crm.customObjectClasses.list(); ```
@@ -6204,15 +6207,7 @@ await client.filestorage.files.downloadRequestMetaRetrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.filestorage.FilesDownloadRequestMetaRetrieveRequest` +**request:** `Merge.crm.CustomObjectClassesListRequest`
@@ -6220,7 +6215,7 @@ await client.filestorage.files.downloadRequestMetaRetrieve("id");
-**requestOptions:** `Files.RequestOptions` +**requestOptions:** `CustomObjectClasses.RequestOptions`
@@ -6231,7 +6226,7 @@ await client.filestorage.files.downloadRequestMetaRetrieve("id");
-
client.filestorage.files.downloadRequestMetaList({ ...params }) -> Merge.PaginatedDownloadRequestMetaList +
client.crm.customObjectClasses.retrieve(id, { ...params }) -> Merge.CustomObjectClass
@@ -6243,7 +6238,7 @@ await client.filestorage.files.downloadRequestMetaRetrieve("id");
-Returns metadata to construct authenticated file download requests, allowing you to download files directly from the third-party. +Returns a `CustomObjectClass` object with the given `id`.
@@ -6259,7 +6254,7 @@ Returns metadata to construct authenticated file download requests, allowing you
```typescript -await client.filestorage.files.downloadRequestMetaList(); +await client.crm.customObjectClasses.retrieve("id"); ```
@@ -6275,7 +6270,7 @@ await client.filestorage.files.downloadRequestMetaList();
-**request:** `Merge.filestorage.FilesDownloadRequestMetaListRequest` +**id:** `string`
@@ -6283,7 +6278,15 @@ await client.filestorage.files.downloadRequestMetaList();
-**requestOptions:** `Files.RequestOptions` +**request:** `Merge.crm.CustomObjectClassesRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `CustomObjectClasses.RequestOptions`
@@ -6294,7 +6297,9 @@ await client.filestorage.files.downloadRequestMetaList();
-
client.filestorage.files.metaPostRetrieve() -> Merge.MetaResponse +## Crm AssociationTypes + +
client.crm.associationTypes.customObjectClassesAssociationTypesList(customObjectClassId, { ...params }) -> Merge.PaginatedAssociationTypeList
@@ -6306,7 +6311,7 @@ await client.filestorage.files.downloadRequestMetaList();
-Returns metadata for `FileStorageFile` POSTs. +Returns a list of `AssociationType` objects.
@@ -6322,7 +6327,7 @@ Returns metadata for `FileStorageFile` POSTs.
```typescript -await client.filestorage.files.metaPostRetrieve(); +await client.crm.associationTypes.customObjectClassesAssociationTypesList("custom_object_class_id"); ```
@@ -6338,7 +6343,23 @@ await client.filestorage.files.metaPostRetrieve();
-**requestOptions:** `Files.RequestOptions` +**customObjectClassId:** `string` + +
+
+ +
+
+ +**request:** `Merge.crm.CustomObjectClassesAssociationTypesListRequest` + +
+
+ +
+
+ +**requestOptions:** `AssociationTypes.RequestOptions`
@@ -6349,9 +6370,7 @@ await client.filestorage.files.metaPostRetrieve();
-## Filestorage Folders - -
client.filestorage.folders.list({ ...params }) -> Merge.PaginatedFolderList +
client.crm.associationTypes.customObjectClassesAssociationTypesCreate(customObjectClassId, { ...params }) -> Merge.CrmAssociationTypeResponse
@@ -6363,7 +6382,7 @@ await client.filestorage.files.metaPostRetrieve();
-Returns a list of `Folder` objects. +Creates an `AssociationType` object with the given values.
@@ -6379,7 +6398,21 @@ Returns a list of `Folder` objects.
```typescript -await client.filestorage.folders.list(); +await client.crm.associationTypes.customObjectClassesAssociationTypesCreate("custom_object_class_id", { + model: { + sourceObjectClass: { + id: "id", + originType: "CUSTOM_OBJECT", + }, + targetObjectClasses: [ + { + id: "id", + originType: "CUSTOM_OBJECT", + }, + ], + remoteKeyName: "remote_key_name", + }, +}); ```
@@ -6395,7 +6428,7 @@ await client.filestorage.folders.list();
-**request:** `Merge.filestorage.FoldersListRequest` +**customObjectClassId:** `string`
@@ -6403,7 +6436,15 @@ await client.filestorage.folders.list();
-**requestOptions:** `Folders.RequestOptions` +**request:** `Merge.crm.CrmAssociationTypeEndpointRequest` + +
+
+ +
+
+ +**requestOptions:** `AssociationTypes.RequestOptions`
@@ -6414,7 +6455,7 @@ await client.filestorage.folders.list();
-
client.filestorage.folders.create({ ...params }) -> Merge.FileStorageFolderResponse +
client.crm.associationTypes.customObjectClassesAssociationTypesRetrieve(customObjectClassId, id, { ...params }) -> Merge.AssociationType
@@ -6426,7 +6467,7 @@ await client.filestorage.folders.list();
-Creates a `Folder` object with the given values. +Returns an `AssociationType` object with the given `id`.
@@ -6442,9 +6483,7 @@ Creates a `Folder` object with the given values.
```typescript -await client.filestorage.folders.create({ - model: {}, -}); +await client.crm.associationTypes.customObjectClassesAssociationTypesRetrieve("custom_object_class_id", "id"); ```
@@ -6460,7 +6499,7 @@ await client.filestorage.folders.create({
-**request:** `Merge.filestorage.FileStorageFolderEndpointRequest` +**customObjectClassId:** `string`
@@ -6468,7 +6507,23 @@ await client.filestorage.folders.create({
-**requestOptions:** `Folders.RequestOptions` +**id:** `string` + +
+
+ +
+
+ +**request:** `Merge.crm.CustomObjectClassesAssociationTypesRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `AssociationTypes.RequestOptions`
@@ -6479,7 +6534,7 @@ await client.filestorage.folders.create({
-
client.filestorage.folders.retrieve(id, { ...params }) -> Merge.Folder +
client.crm.associationTypes.customObjectClassesAssociationTypesMetaPostRetrieve(customObjectClassId) -> Merge.MetaResponse
@@ -6491,7 +6546,7 @@ await client.filestorage.folders.create({
-Returns a `Folder` object with the given `id`. +Returns metadata for `CRMAssociationType` POSTs.
@@ -6507,7 +6562,7 @@ Returns a `Folder` object with the given `id`.
```typescript -await client.filestorage.folders.retrieve("id"); +await client.crm.associationTypes.customObjectClassesAssociationTypesMetaPostRetrieve("custom_object_class_id"); ```
@@ -6523,15 +6578,7 @@ await client.filestorage.folders.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.filestorage.FoldersRetrieveRequest` +**customObjectClassId:** `string`
@@ -6539,7 +6586,7 @@ await client.filestorage.folders.retrieve("id");
-**requestOptions:** `Folders.RequestOptions` +**requestOptions:** `AssociationTypes.RequestOptions`
@@ -6550,7 +6597,9 @@ await client.filestorage.folders.retrieve("id");
-
client.filestorage.folders.metaPostRetrieve() -> Merge.MetaResponse +## Crm CustomObjects + +
client.crm.customObjects.customObjectClassesCustomObjectsList(customObjectClassId, { ...params }) -> Merge.PaginatedCustomObjectList
@@ -6562,7 +6611,7 @@ await client.filestorage.folders.retrieve("id");
-Returns metadata for `FileStorageFolder` POSTs. +Returns a list of `CustomObject` objects.
@@ -6578,7 +6627,7 @@ Returns metadata for `FileStorageFolder` POSTs.
```typescript -await client.filestorage.folders.metaPostRetrieve(); +await client.crm.customObjects.customObjectClassesCustomObjectsList("custom_object_class_id"); ```
@@ -6594,66 +6643,15 @@ await client.filestorage.folders.metaPostRetrieve();
-**requestOptions:** `Folders.RequestOptions` +**customObjectClassId:** `string`
- -
- - - -
- -## Filestorage GenerateKey - -
client.filestorage.generateKey.create({ ...params }) -> Merge.RemoteKey -
-
- -#### 📝 Description - -
-
- -
-
- -Create a remote key. - -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.filestorage.generateKey.create({ - name: "Remote Deployment Key 1", -}); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
-**request:** `Merge.filestorage.GenerateRemoteKeyRequest` +**request:** `Merge.crm.CustomObjectClassesCustomObjectsListRequest`
@@ -6661,7 +6659,7 @@ await client.filestorage.generateKey.create({
-**requestOptions:** `GenerateKey.RequestOptions` +**requestOptions:** `CustomObjects.RequestOptions`
@@ -6672,9 +6670,7 @@ await client.filestorage.generateKey.create({
-## Filestorage Groups - -
client.filestorage.groups.list({ ...params }) -> Merge.PaginatedGroupList +
client.crm.customObjects.customObjectClassesCustomObjectsCreate(customObjectClassId, { ...params }) -> Merge.CrmCustomObjectResponse
@@ -6686,7 +6682,7 @@ await client.filestorage.generateKey.create({
-Returns a list of `Group` objects. +Creates a `CustomObject` object with the given values.
@@ -6702,7 +6698,13 @@ Returns a list of `Group` objects.
```typescript -await client.filestorage.groups.list(); +await client.crm.customObjects.customObjectClassesCustomObjectsCreate("custom_object_class_id", { + model: { + fields: { + test_field: "hello", + }, + }, +}); ```
@@ -6718,7 +6720,7 @@ await client.filestorage.groups.list();
-**request:** `Merge.filestorage.GroupsListRequest` +**customObjectClassId:** `string`
@@ -6726,7 +6728,15 @@ await client.filestorage.groups.list();
-**requestOptions:** `Groups.RequestOptions` +**request:** `Merge.crm.CrmCustomObjectEndpointRequest` + +
+
+ +
+
+ +**requestOptions:** `CustomObjects.RequestOptions`
@@ -6737,7 +6747,7 @@ await client.filestorage.groups.list();
-
client.filestorage.groups.retrieve(id, { ...params }) -> Merge.Group +
client.crm.customObjects.customObjectClassesCustomObjectsRetrieve(customObjectClassId, id, { ...params }) -> Merge.CustomObject
@@ -6749,7 +6759,7 @@ await client.filestorage.groups.list();
-Returns a `Group` object with the given `id`. +Returns a `CustomObject` object with the given `id`.
@@ -6765,7 +6775,7 @@ Returns a `Group` object with the given `id`.
```typescript -await client.filestorage.groups.retrieve("id"); +await client.crm.customObjects.customObjectClassesCustomObjectsRetrieve("custom_object_class_id", "id"); ```
@@ -6781,6 +6791,14 @@ await client.filestorage.groups.retrieve("id");
+**customObjectClassId:** `string` + +
+
+ +
+
+ **id:** `string`
@@ -6789,7 +6807,7 @@ await client.filestorage.groups.retrieve("id");
-**request:** `Merge.filestorage.GroupsRetrieveRequest` +**request:** `Merge.crm.CustomObjectClassesCustomObjectsRetrieveRequest`
@@ -6797,7 +6815,7 @@ await client.filestorage.groups.retrieve("id");
-**requestOptions:** `Groups.RequestOptions` +**requestOptions:** `CustomObjects.RequestOptions`
@@ -6808,9 +6826,7 @@ await client.filestorage.groups.retrieve("id");
-## Filestorage Issues - -
client.filestorage.issues.list({ ...params }) -> Merge.PaginatedIssueList +
client.crm.customObjects.customObjectClassesCustomObjectsMetaPostRetrieve(customObjectClassId) -> Merge.MetaResponse
@@ -6822,7 +6838,7 @@ await client.filestorage.groups.retrieve("id");
-Gets all issues for Organization. +Returns metadata for `CRMCustomObject` POSTs.
@@ -6838,7 +6854,7 @@ Gets all issues for Organization.
```typescript -await client.filestorage.issues.list(); +await client.crm.customObjects.customObjectClassesCustomObjectsMetaPostRetrieve("custom_object_class_id"); ```
@@ -6854,7 +6870,7 @@ await client.filestorage.issues.list();
-**request:** `Merge.filestorage.IssuesListRequest` +**customObjectClassId:** `string`
@@ -6862,7 +6878,7 @@ await client.filestorage.issues.list();
-**requestOptions:** `Issues.RequestOptions` +**requestOptions:** `CustomObjects.RequestOptions`
@@ -6873,7 +6889,7 @@ await client.filestorage.issues.list();
-
client.filestorage.issues.retrieve(id) -> Merge.Issue +
client.crm.customObjects.customObjectClassesCustomObjectsRemoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList
@@ -6885,7 +6901,7 @@ await client.filestorage.issues.list();
-Get a specific issue. +Returns a list of `RemoteFieldClass` objects.
@@ -6901,7 +6917,7 @@ Get a specific issue.
```typescript -await client.filestorage.issues.retrieve("id"); +await client.crm.customObjects.customObjectClassesCustomObjectsRemoteFieldClassesList(); ```
@@ -6917,7 +6933,7 @@ await client.filestorage.issues.retrieve("id");
-**id:** `string` +**request:** `Merge.crm.CustomObjectClassesCustomObjectsRemoteFieldClassesListRequest`
@@ -6925,7 +6941,7 @@ await client.filestorage.issues.retrieve("id");
-**requestOptions:** `Issues.RequestOptions` +**requestOptions:** `CustomObjects.RequestOptions`
@@ -6936,9 +6952,9 @@ await client.filestorage.issues.retrieve("id");
-## Filestorage LinkToken +## Crm Associations -
client.filestorage.linkToken.create({ ...params }) -> Merge.LinkToken +
client.crm.associations.customObjectClassesCustomObjectsAssociationsList(customObjectClassId, objectId, { ...params }) -> Merge.PaginatedAssociationList
@@ -6950,7 +6966,7 @@ await client.filestorage.issues.retrieve("id");
-Creates a link token to be used when linking a new end user. +Returns a list of `Association` objects.
@@ -6966,12 +6982,7 @@ Creates a link token to be used when linking a new end user.
```typescript -await client.filestorage.linkToken.create({ - endUserEmailAddress: "example@gmail.com", - endUserOrganizationName: "Test Organization", - endUserOriginId: "12345", - categories: ["hris", "ats"], -}); +await client.crm.associations.customObjectClassesCustomObjectsAssociationsList("custom_object_class_id", "object_id"); ```
@@ -6987,7 +6998,7 @@ await client.filestorage.linkToken.create({
-**request:** `Merge.filestorage.EndUserDetailsRequest` +**customObjectClassId:** `string`
@@ -6995,7 +7006,23 @@ await client.filestorage.linkToken.create({
-**requestOptions:** `LinkToken.RequestOptions` +**objectId:** `string` + +
+
+ +
+
+ +**request:** `Merge.crm.CustomObjectClassesCustomObjectsAssociationsListRequest` + +
+
+ +
+
+ +**requestOptions:** `Associations.RequestOptions`
@@ -7006,9 +7033,7 @@ await client.filestorage.linkToken.create({
-## Filestorage LinkedAccounts - -
client.filestorage.linkedAccounts.list({ ...params }) -> Merge.PaginatedAccountDetailsAndActionsList +
client.crm.associations.customObjectClassesCustomObjectsAssociationsUpdate(associationTypeId, sourceClassId, sourceObjectId, targetClassId, targetObjectId, { ...params }) -> Merge.Association
@@ -7020,7 +7045,7 @@ await client.filestorage.linkToken.create({
-List linked accounts for your organization. +Creates an Association between `source_object_id` and `target_object_id` of type `association_type_id`.
@@ -7036,7 +7061,13 @@ List linked accounts for your organization.
```typescript -await client.filestorage.linkedAccounts.list(); +await client.crm.associations.customObjectClassesCustomObjectsAssociationsUpdate( + "association_type_id", + "source_class_id", + "source_object_id", + "target_class_id", + "target_object_id", +); ```
@@ -7052,7 +7083,7 @@ await client.filestorage.linkedAccounts.list();
-**request:** `Merge.filestorage.LinkedAccountsListRequest` +**associationTypeId:** `string`
@@ -7060,67 +7091,39 @@ await client.filestorage.linkedAccounts.list();
-**requestOptions:** `LinkedAccounts.RequestOptions` - -
-
- -
+**sourceClassId:** `string` -
- -## Filestorage Passthrough -
client.filestorage.passthrough.create({ ...params }) -> Merge.RemoteResponse
-#### 📝 Description +**sourceObjectId:** `string` -
-
+
+
-Pull data from an endpoint not currently supported by Merge. +**targetClassId:** `string`
-
-
- -#### 🔌 Usage
-
-
- -```typescript -await client.filestorage.passthrough.create({ - method: "GET", - path: "/scooters", -}); -``` +**targetObjectId:** `string`
-
-
- -#### ⚙️ Parameters - -
-
-**request:** `Merge.DataPassthroughRequest` +**request:** `Merge.crm.CustomObjectClassesCustomObjectsAssociationsUpdateRequest`
@@ -7128,7 +7131,7 @@ await client.filestorage.passthrough.create({
-**requestOptions:** `Passthrough.RequestOptions` +**requestOptions:** `Associations.RequestOptions`
@@ -7139,9 +7142,9 @@ await client.filestorage.passthrough.create({
-## Filestorage RegenerateKey +## Crm Scopes -
client.filestorage.regenerateKey.create({ ...params }) -> Merge.RemoteKey +
client.crm.scopes.defaultScopesRetrieve() -> Merge.CommonModelScopeApi
@@ -7153,7 +7156,7 @@ await client.filestorage.passthrough.create({
-Exchange remote keys. +Get the default permissions for Merge Common Models and fields across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes).
@@ -7169,9 +7172,7 @@ Exchange remote keys.
```typescript -await client.filestorage.regenerateKey.create({ - name: "Remote Deployment Key 1", -}); +await client.crm.scopes.defaultScopesRetrieve(); ```
@@ -7187,15 +7188,7 @@ await client.filestorage.regenerateKey.create({
-**request:** `Merge.filestorage.RemoteKeyForRegenerationRequest` - -
-
- -
-
- -**requestOptions:** `RegenerateKey.RequestOptions` +**requestOptions:** `Scopes.RequestOptions`
@@ -7206,9 +7199,7 @@ await client.filestorage.regenerateKey.create({
-## Filestorage SyncStatus - -
client.filestorage.syncStatus.list({ ...params }) -> Merge.PaginatedSyncStatusList +
client.crm.scopes.linkedAccountScopesRetrieve() -> Merge.CommonModelScopeApi
@@ -7220,7 +7211,7 @@ await client.filestorage.regenerateKey.create({
-Get syncing status. Possible values: `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). +Get all available permissions for Merge Common Models and fields for a single Linked Account. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes).
@@ -7236,7 +7227,7 @@ Get syncing status. Possible values: `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SY
```typescript -await client.filestorage.syncStatus.list(); +await client.crm.scopes.linkedAccountScopesRetrieve(); ```
@@ -7252,15 +7243,7 @@ await client.filestorage.syncStatus.list();
-**request:** `Merge.filestorage.SyncStatusListRequest` - -
-
- -
-
- -**requestOptions:** `SyncStatus.RequestOptions` +**requestOptions:** `Scopes.RequestOptions`
@@ -7271,9 +7254,7 @@ await client.filestorage.syncStatus.list();
-## Filestorage ForceResync - -
client.filestorage.forceResync.syncStatusResyncCreate() -> Merge.SyncStatus[] +
client.crm.scopes.linkedAccountScopesCreate({ ...params }) -> Merge.CommonModelScopeApi
@@ -7285,7 +7266,7 @@ await client.filestorage.syncStatus.list();
-Force re-sync of all models. This endpoint is available for monthly, quarterly, and highest sync frequency customers on the Professional or Enterprise plans. Doing so will consume a sync credit for the relevant linked account. Force re-syncs can also be triggered manually in the Merge Dashboard and is available for all customers. +Update permissions for any Common Model or field for a single Linked Account. Any Scopes not set in this POST request will inherit the default Scopes. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes)
@@ -7301,7 +7282,33 @@ Force re-sync of all models. This endpoint is available for monthly, quarterly,
```typescript -await client.filestorage.forceResync.syncStatusResyncCreate(); +await client.crm.scopes.linkedAccountScopesCreate({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: ["avatar", "home_location"], + disabledFields: ["work_location"], + }, + }, + { + modelName: "Benefit", + modelPermissions: { + WRITE: { + isEnabled: false, + }, + }, + }, + ], +}); ```
@@ -7317,7 +7324,15 @@ await client.filestorage.forceResync.syncStatusResyncCreate();
-**requestOptions:** `ForceResync.RequestOptions` +**request:** `Merge.crm.LinkedAccountCommonModelScopeDeserializerRequest` + +
+
+ +
+
+ +**requestOptions:** `Scopes.RequestOptions`
@@ -7328,9 +7343,9 @@ await client.filestorage.forceResync.syncStatusResyncCreate();
-## Filestorage Users +## Crm DeleteAccount -
client.filestorage.users.list({ ...params }) -> Merge.PaginatedUserList +
client.crm.deleteAccount.delete() -> void
@@ -7342,7 +7357,7 @@ await client.filestorage.forceResync.syncStatusResyncCreate();
-Returns a list of `User` objects. +Delete a linked account.
@@ -7358,7 +7373,7 @@ Returns a list of `User` objects.
```typescript -await client.filestorage.users.list(); +await client.crm.deleteAccount.delete(); ```
@@ -7374,15 +7389,7 @@ await client.filestorage.users.list();
-**request:** `Merge.filestorage.UsersListRequest` - -
-
- -
-
- -**requestOptions:** `Users.RequestOptions` +**requestOptions:** `DeleteAccount.RequestOptions`
@@ -7393,7 +7400,9 @@ await client.filestorage.users.list();
-
client.filestorage.users.retrieve(id, { ...params }) -> Merge.User +## Crm EngagementTypes + +
client.crm.engagementTypes.list({ ...params }) -> Merge.PaginatedEngagementTypeList
@@ -7405,7 +7414,7 @@ await client.filestorage.users.list();
-Returns a `User` object with the given `id`. +Returns a list of `EngagementType` objects.
@@ -7421,7 +7430,7 @@ Returns a `User` object with the given `id`.
```typescript -await client.filestorage.users.retrieve("id"); +await client.crm.engagementTypes.list(); ```
@@ -7437,15 +7446,7 @@ await client.filestorage.users.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.filestorage.UsersRetrieveRequest` +**request:** `Merge.crm.EngagementTypesListRequest`
@@ -7453,7 +7454,7 @@ await client.filestorage.users.retrieve("id");
-**requestOptions:** `Users.RequestOptions` +**requestOptions:** `EngagementTypes.RequestOptions`
@@ -7464,9 +7465,7 @@ await client.filestorage.users.retrieve("id");
-## Filestorage WebhookReceivers - -
client.filestorage.webhookReceivers.list() -> Merge.WebhookReceiver[] +
client.crm.engagementTypes.retrieve(id, { ...params }) -> Merge.EngagementType
@@ -7478,7 +7477,7 @@ await client.filestorage.users.retrieve("id");
-Returns a list of `WebhookReceiver` objects. +Returns an `EngagementType` object with the given `id`.
@@ -7494,7 +7493,7 @@ Returns a list of `WebhookReceiver` objects.
```typescript -await client.filestorage.webhookReceivers.list(); +await client.crm.engagementTypes.retrieve("id"); ```
@@ -7510,7 +7509,23 @@ await client.filestorage.webhookReceivers.list();
-**requestOptions:** `WebhookReceivers.RequestOptions` +**id:** `string` + +
+
+ +
+
+ +**request:** `Merge.crm.EngagementTypesRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `EngagementTypes.RequestOptions`
@@ -7521,7 +7536,7 @@ await client.filestorage.webhookReceivers.list();
-
client.filestorage.webhookReceivers.create({ ...params }) -> Merge.WebhookReceiver +
client.crm.engagementTypes.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList
@@ -7533,7 +7548,7 @@ await client.filestorage.webhookReceivers.list();
-Creates a `WebhookReceiver` object with the given values. +Returns a list of `RemoteFieldClass` objects.
@@ -7549,10 +7564,7 @@ Creates a `WebhookReceiver` object with the given values.
```typescript -await client.filestorage.webhookReceivers.create({ - event: "event", - isActive: true, -}); +await client.crm.engagementTypes.remoteFieldClassesList(); ```
@@ -7568,7 +7580,7 @@ await client.filestorage.webhookReceivers.create({
-**request:** `Merge.filestorage.WebhookReceiverRequest` +**request:** `Merge.crm.EngagementTypesRemoteFieldClassesListRequest`
@@ -7576,7 +7588,7 @@ await client.filestorage.webhookReceivers.create({
-**requestOptions:** `WebhookReceivers.RequestOptions` +**requestOptions:** `EngagementTypes.RequestOptions`
@@ -7587,9 +7599,9 @@ await client.filestorage.webhookReceivers.create({
-## Hris AccountDetails +## Crm Engagements -
client.hris.accountDetails.retrieve() -> Merge.AccountDetails +
client.crm.engagements.list({ ...params }) -> Merge.PaginatedEngagementList
@@ -7601,7 +7613,7 @@ await client.filestorage.webhookReceivers.create({
-Get details for a linked account. +Returns a list of `Engagement` objects.
@@ -7617,7 +7629,7 @@ Get details for a linked account.
```typescript -await client.hris.accountDetails.retrieve(); +await client.crm.engagements.list(); ```
@@ -7633,7 +7645,15 @@ await client.hris.accountDetails.retrieve();
-**requestOptions:** `AccountDetails.RequestOptions` +**request:** `Merge.crm.EngagementsListRequest` + +
+
+ +
+
+ +**requestOptions:** `Engagements.RequestOptions`
@@ -7644,9 +7664,7 @@ await client.hris.accountDetails.retrieve();
-## Hris AccountToken - -
client.hris.accountToken.retrieve(publicToken) -> Merge.AccountToken +
client.crm.engagements.create({ ...params }) -> Merge.EngagementResponse
@@ -7658,7 +7676,7 @@ await client.hris.accountDetails.retrieve();
-Returns the account token for the end user with the provided public token. +Creates an `Engagement` object with the given values.
@@ -7674,7 +7692,9 @@ Returns the account token for the end user with the provided public token.
```typescript -await client.hris.accountToken.retrieve("public_token"); +await client.crm.engagements.create({ + model: {}, +}); ```
@@ -7690,7 +7710,7 @@ await client.hris.accountToken.retrieve("public_token");
-**publicToken:** `string` +**request:** `Merge.crm.EngagementEndpointRequest`
@@ -7698,7 +7718,7 @@ await client.hris.accountToken.retrieve("public_token");
-**requestOptions:** `AccountToken.RequestOptions` +**requestOptions:** `Engagements.RequestOptions`
@@ -7709,9 +7729,7 @@ await client.hris.accountToken.retrieve("public_token");
-## Hris AsyncPassthrough - -
client.hris.asyncPassthrough.create({ ...params }) -> Merge.AsyncPassthroughReciept +
client.crm.engagements.retrieve(id, { ...params }) -> Merge.Engagement
@@ -7723,7 +7741,7 @@ await client.hris.accountToken.retrieve("public_token");
-Asynchronously pull data from an endpoint not currently supported by Merge. +Returns an `Engagement` object with the given `id`.
@@ -7739,10 +7757,7 @@ Asynchronously pull data from an endpoint not currently supported by Merge.
```typescript -await client.hris.asyncPassthrough.create({ - method: "GET", - path: "/scooters", -}); +await client.crm.engagements.retrieve("id"); ```
@@ -7758,7 +7773,7 @@ await client.hris.asyncPassthrough.create({
-**request:** `Merge.DataPassthroughRequest` +**id:** `string`
@@ -7766,7 +7781,15 @@ await client.hris.asyncPassthrough.create({
-**requestOptions:** `AsyncPassthrough.RequestOptions` +**request:** `Merge.crm.EngagementsRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Engagements.RequestOptions`
@@ -7777,7 +7800,7 @@ await client.hris.asyncPassthrough.create({
-
client.hris.asyncPassthrough.retrieve(asyncPassthroughReceiptId) -> Merge.AsyncPassthroughRetrieveResponse +
client.crm.engagements.partialUpdate(id, { ...params }) -> Merge.EngagementResponse
@@ -7789,7 +7812,7 @@ await client.hris.asyncPassthrough.create({
-Retrieves data from earlier async-passthrough POST request +Updates an `Engagement` object with the given `id`.
@@ -7805,7 +7828,9 @@ Retrieves data from earlier async-passthrough POST request
```typescript -await client.hris.asyncPassthrough.retrieve("async_passthrough_receipt_id"); +await client.crm.engagements.partialUpdate("id", { + model: {}, +}); ```
@@ -7821,7 +7846,7 @@ await client.hris.asyncPassthrough.retrieve("async_passthrough_receipt_id");
-**asyncPassthroughReceiptId:** `string` +**id:** `string`
@@ -7829,7 +7854,15 @@ await client.hris.asyncPassthrough.retrieve("async_passthrough_receipt_id");
-**requestOptions:** `AsyncPassthrough.RequestOptions` +**request:** `Merge.crm.PatchedEngagementEndpointRequest` + +
+
+ +
+
+ +**requestOptions:** `Engagements.RequestOptions`
@@ -7840,9 +7873,7 @@ await client.hris.asyncPassthrough.retrieve("async_passthrough_receipt_id");
-## Hris AuditTrail - -
client.hris.auditTrail.list({ ...params }) -> Merge.PaginatedAuditLogEventList +
client.crm.engagements.metaPatchRetrieve(id) -> Merge.MetaResponse
@@ -7854,7 +7885,7 @@ await client.hris.asyncPassthrough.retrieve("async_passthrough_receipt_id");
-Gets a list of audit trail events. +Returns metadata for `Engagement` PATCHs.
@@ -7870,7 +7901,7 @@ Gets a list of audit trail events.
```typescript -await client.hris.auditTrail.list(); +await client.crm.engagements.metaPatchRetrieve("id"); ```
@@ -7886,7 +7917,7 @@ await client.hris.auditTrail.list();
-**request:** `Merge.hris.AuditTrailListRequest` +**id:** `string`
@@ -7894,7 +7925,7 @@ await client.hris.auditTrail.list();
-**requestOptions:** `AuditTrail.RequestOptions` +**requestOptions:** `Engagements.RequestOptions`
@@ -7905,9 +7936,7 @@ await client.hris.auditTrail.list();
-## Hris AvailableActions - -
client.hris.availableActions.retrieve() -> Merge.AvailableActions +
client.crm.engagements.metaPostRetrieve() -> Merge.MetaResponse
@@ -7919,7 +7948,7 @@ await client.hris.auditTrail.list();
-Returns a list of models and actions available for an account. +Returns metadata for `Engagement` POSTs.
@@ -7935,7 +7964,7 @@ Returns a list of models and actions available for an account.
```typescript -await client.hris.availableActions.retrieve(); +await client.crm.engagements.metaPostRetrieve(); ```
@@ -7951,7 +7980,7 @@ await client.hris.availableActions.retrieve();
-**requestOptions:** `AvailableActions.RequestOptions` +**requestOptions:** `Engagements.RequestOptions`
@@ -7962,9 +7991,7 @@ await client.hris.availableActions.retrieve();
-## Hris BankInfo - -
client.hris.bankInfo.list({ ...params }) -> Merge.PaginatedBankInfoList +
client.crm.engagements.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList
@@ -7976,7 +8003,7 @@ await client.hris.availableActions.retrieve();
-Returns a list of `BankInfo` objects. +Returns a list of `RemoteFieldClass` objects.
@@ -7992,7 +8019,7 @@ Returns a list of `BankInfo` objects.
```typescript -await client.hris.bankInfo.list(); +await client.crm.engagements.remoteFieldClassesList(); ```
@@ -8008,7 +8035,7 @@ await client.hris.bankInfo.list();
-**request:** `Merge.hris.BankInfoListRequest` +**request:** `Merge.crm.EngagementsRemoteFieldClassesListRequest`
@@ -8016,7 +8043,7 @@ await client.hris.bankInfo.list();
-**requestOptions:** `BankInfo.RequestOptions` +**requestOptions:** `Engagements.RequestOptions`
@@ -8027,7 +8054,9 @@ await client.hris.bankInfo.list();
-
client.hris.bankInfo.retrieve(id, { ...params }) -> Merge.BankInfo +## Crm FieldMapping + +
client.crm.fieldMapping.fieldMappingsRetrieve({ ...params }) -> Merge.FieldMappingApiInstanceResponse
@@ -8039,7 +8068,7 @@ await client.hris.bankInfo.list();
-Returns a `BankInfo` object with the given `id`. +Get all Field Mappings for this Linked Account. Field Mappings are mappings between third-party Remote Fields and user defined Merge fields. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/).
@@ -8055,7 +8084,7 @@ Returns a `BankInfo` object with the given `id`.
```typescript -await client.hris.bankInfo.retrieve("id"); +await client.crm.fieldMapping.fieldMappingsRetrieve(); ```
@@ -8071,15 +8100,7 @@ await client.hris.bankInfo.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.hris.BankInfoRetrieveRequest` +**request:** `Merge.crm.FieldMappingsRetrieveRequest`
@@ -8087,7 +8108,7 @@ await client.hris.bankInfo.retrieve("id");
-**requestOptions:** `BankInfo.RequestOptions` +**requestOptions:** `FieldMapping.RequestOptions`
@@ -8098,9 +8119,7 @@ await client.hris.bankInfo.retrieve("id");
-## Hris Benefits - -
client.hris.benefits.list({ ...params }) -> Merge.PaginatedBenefitList +
client.crm.fieldMapping.fieldMappingsCreate({ ...params }) -> Merge.FieldMappingInstanceResponse
@@ -8112,7 +8131,7 @@ await client.hris.bankInfo.retrieve("id");
-Returns a list of `Benefit` objects. +Create new Field Mappings that will be available after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start.
@@ -8128,12 +8147,19 @@ Returns a list of `Benefit` objects.
```typescript -await client.hris.benefits.list(); -``` - -
-
- +await client.crm.fieldMapping.fieldMappingsCreate({ + targetFieldName: "example_target_field_name", + targetFieldDescription: "this is a example description of the target field", + remoteFieldTraversalPath: ["example_remote_field"], + remoteMethod: "GET", + remoteUrlPath: "/example-url-path", + commonModelName: "ExampleCommonModel", +}); +``` + + + + #### ⚙️ Parameters @@ -8144,7 +8170,7 @@ await client.hris.benefits.list();
-**request:** `Merge.hris.BenefitsListRequest` +**request:** `Merge.crm.CreateFieldMappingRequest`
@@ -8152,7 +8178,7 @@ await client.hris.benefits.list();
-**requestOptions:** `Benefits.RequestOptions` +**requestOptions:** `FieldMapping.RequestOptions`
@@ -8163,7 +8189,7 @@ await client.hris.benefits.list();
-
client.hris.benefits.retrieve(id, { ...params }) -> Merge.Benefit +
client.crm.fieldMapping.fieldMappingsDestroy(fieldMappingId) -> Merge.FieldMappingInstanceResponse
@@ -8175,7 +8201,7 @@ await client.hris.benefits.list();
-Returns a `Benefit` object with the given `id`. +Deletes Field Mappings for a Linked Account. All data related to this Field Mapping will be deleted and these changes will be reflected after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start.
@@ -8191,7 +8217,7 @@ Returns a `Benefit` object with the given `id`.
```typescript -await client.hris.benefits.retrieve("id"); +await client.crm.fieldMapping.fieldMappingsDestroy("field_mapping_id"); ```
@@ -8207,15 +8233,7 @@ await client.hris.benefits.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.hris.BenefitsRetrieveRequest` +**fieldMappingId:** `string`
@@ -8223,7 +8241,7 @@ await client.hris.benefits.retrieve("id");
-**requestOptions:** `Benefits.RequestOptions` +**requestOptions:** `FieldMapping.RequestOptions`
@@ -8234,9 +8252,7 @@ await client.hris.benefits.retrieve("id");
-## Hris Companies - -
client.hris.companies.list({ ...params }) -> Merge.PaginatedCompanyList +
client.crm.fieldMapping.fieldMappingsPartialUpdate(fieldMappingId, { ...params }) -> Merge.FieldMappingInstanceResponse
@@ -8248,7 +8264,7 @@ await client.hris.benefits.retrieve("id");
-Returns a list of `Company` objects. +Create or update existing Field Mappings for a Linked Account. Changes will be reflected after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start.
@@ -8264,7 +8280,7 @@ Returns a list of `Company` objects.
```typescript -await client.hris.companies.list(); +await client.crm.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id"); ```
@@ -8280,7 +8296,7 @@ await client.hris.companies.list();
-**request:** `Merge.hris.CompaniesListRequest` +**fieldMappingId:** `string`
@@ -8288,7 +8304,15 @@ await client.hris.companies.list();
-**requestOptions:** `Companies.RequestOptions` +**request:** `Merge.crm.PatchedEditFieldMappingRequest` + +
+
+ +
+
+ +**requestOptions:** `FieldMapping.RequestOptions`
@@ -8299,7 +8323,7 @@ await client.hris.companies.list();
-
client.hris.companies.retrieve(id, { ...params }) -> Merge.Company +
client.crm.fieldMapping.remoteFieldsRetrieve({ ...params }) -> Merge.RemoteFieldApiResponse
@@ -8311,7 +8335,7 @@ await client.hris.companies.list();
-Returns a `Company` object with the given `id`. +Get all remote fields for a Linked Account. Remote fields are third-party fields that are accessible after initial sync if remote_data is enabled. You can use remote fields to override existing Merge fields or map a new Merge field. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/).
@@ -8327,7 +8351,7 @@ Returns a `Company` object with the given `id`.
```typescript -await client.hris.companies.retrieve("id"); +await client.crm.fieldMapping.remoteFieldsRetrieve(); ```
@@ -8343,15 +8367,7 @@ await client.hris.companies.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.hris.CompaniesRetrieveRequest` +**request:** `Merge.crm.RemoteFieldsRetrieveRequest`
@@ -8359,7 +8375,7 @@ await client.hris.companies.retrieve("id");
-**requestOptions:** `Companies.RequestOptions` +**requestOptions:** `FieldMapping.RequestOptions`
@@ -8370,9 +8386,7 @@ await client.hris.companies.retrieve("id");
-## Hris Scopes - -
client.hris.scopes.defaultScopesRetrieve() -> Merge.CommonModelScopeApi +
client.crm.fieldMapping.targetFieldsRetrieve() -> Merge.ExternalTargetFieldApiResponse
@@ -8384,7 +8398,7 @@ await client.hris.companies.retrieve("id");
-Get the default permissions for Merge Common Models and fields across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). +Get all organization-wide Target Fields, this will not include any Linked Account specific Target Fields. Organization-wide Target Fields are additional fields appended to the Merge Common Model for all Linked Accounts in a category. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/).
@@ -8400,7 +8414,7 @@ Get the default permissions for Merge Common Models and fields across all Linked
```typescript -await client.hris.scopes.defaultScopesRetrieve(); +await client.crm.fieldMapping.targetFieldsRetrieve(); ```
@@ -8416,7 +8430,7 @@ await client.hris.scopes.defaultScopesRetrieve();
-**requestOptions:** `Scopes.RequestOptions` +**requestOptions:** `FieldMapping.RequestOptions`
@@ -8427,7 +8441,9 @@ await client.hris.scopes.defaultScopesRetrieve();
-
client.hris.scopes.linkedAccountScopesRetrieve() -> Merge.CommonModelScopeApi +## Crm GenerateKey + +
client.crm.generateKey.create({ ...params }) -> Merge.RemoteKey
@@ -8439,7 +8455,7 @@ await client.hris.scopes.defaultScopesRetrieve();
-Get all available permissions for Merge Common Models and fields for a single Linked Account. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). +Create a remote key.
@@ -8455,7 +8471,9 @@ Get all available permissions for Merge Common Models and fields for a single Li
```typescript -await client.hris.scopes.linkedAccountScopesRetrieve(); +await client.crm.generateKey.create({ + name: "Remote Deployment Key 1", +}); ```
@@ -8471,7 +8489,15 @@ await client.hris.scopes.linkedAccountScopesRetrieve();
-**requestOptions:** `Scopes.RequestOptions` +**request:** `Merge.crm.GenerateRemoteKeyRequest` + +
+
+ +
+
+ +**requestOptions:** `GenerateKey.RequestOptions`
@@ -8482,7 +8508,9 @@ await client.hris.scopes.linkedAccountScopesRetrieve();
-
client.hris.scopes.linkedAccountScopesCreate({ ...params }) -> Merge.CommonModelScopeApi +## Crm Issues + +
client.crm.issues.list({ ...params }) -> Merge.PaginatedIssueList
@@ -8494,7 +8522,7 @@ await client.hris.scopes.linkedAccountScopesRetrieve();
-Update permissions for any Common Model or field for a single Linked Account. Any Scopes not set in this POST request will inherit the default Scopes. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) +Gets all issues for Organization.
@@ -8510,33 +8538,7 @@ Update permissions for any Common Model or field for a single Linked Account. An
```typescript -await client.hris.scopes.linkedAccountScopesCreate({ - commonModels: [ - { - modelName: "Employee", - modelPermissions: { - READ: { - isEnabled: true, - }, - WRITE: { - isEnabled: false, - }, - }, - fieldPermissions: { - enabledFields: ["avatar", "home_location"], - disabledFields: ["work_location"], - }, - }, - { - modelName: "Benefit", - modelPermissions: { - WRITE: { - isEnabled: false, - }, - }, - }, - ], -}); +await client.crm.issues.list(); ```
@@ -8552,7 +8554,7 @@ await client.hris.scopes.linkedAccountScopesCreate({
-**request:** `Merge.hris.LinkedAccountCommonModelScopeDeserializerRequest` +**request:** `Merge.crm.IssuesListRequest`
@@ -8560,7 +8562,7 @@ await client.hris.scopes.linkedAccountScopesCreate({
-**requestOptions:** `Scopes.RequestOptions` +**requestOptions:** `Issues.RequestOptions`
@@ -8571,9 +8573,7 @@ await client.hris.scopes.linkedAccountScopesCreate({
-## Hris DeleteAccount - -
client.hris.deleteAccount.delete() -> void +
client.crm.issues.retrieve(id) -> Merge.Issue
@@ -8585,7 +8585,7 @@ await client.hris.scopes.linkedAccountScopesCreate({
-Delete a linked account. +Get a specific issue.
@@ -8601,7 +8601,7 @@ Delete a linked account.
```typescript -await client.hris.deleteAccount.delete(); +await client.crm.issues.retrieve("id"); ```
@@ -8617,7 +8617,15 @@ await client.hris.deleteAccount.delete();
-**requestOptions:** `DeleteAccount.RequestOptions` +**id:** `string` + +
+
+ +
+
+ +**requestOptions:** `Issues.RequestOptions`
@@ -8628,9 +8636,9 @@ await client.hris.deleteAccount.delete();
-## Hris Dependents +## Crm Leads -
client.hris.dependents.list({ ...params }) -> Merge.PaginatedDependentList +
client.crm.leads.list({ ...params }) -> Merge.PaginatedLeadList
@@ -8642,7 +8650,7 @@ await client.hris.deleteAccount.delete();
-Returns a list of `Dependent` objects. +Returns a list of `Lead` objects.
@@ -8658,7 +8666,7 @@ Returns a list of `Dependent` objects.
```typescript -await client.hris.dependents.list(); +await client.crm.leads.list(); ```
@@ -8674,7 +8682,7 @@ await client.hris.dependents.list();
-**request:** `Merge.hris.DependentsListRequest` +**request:** `Merge.crm.LeadsListRequest`
@@ -8682,7 +8690,7 @@ await client.hris.dependents.list();
-**requestOptions:** `Dependents.RequestOptions` +**requestOptions:** `Leads.RequestOptions`
@@ -8693,7 +8701,7 @@ await client.hris.dependents.list();
-
client.hris.dependents.retrieve(id, { ...params }) -> Merge.Dependent +
client.crm.leads.create({ ...params }) -> Merge.LeadResponse
@@ -8705,7 +8713,7 @@ await client.hris.dependents.list();
-Returns a `Dependent` object with the given `id`. +Creates a `Lead` object with the given values.
@@ -8721,7 +8729,9 @@ Returns a `Dependent` object with the given `id`.
```typescript -await client.hris.dependents.retrieve("id"); +await client.crm.leads.create({ + model: {}, +}); ```
@@ -8737,15 +8747,7 @@ await client.hris.dependents.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.hris.DependentsRetrieveRequest` +**request:** `Merge.crm.LeadEndpointRequest`
@@ -8753,7 +8755,7 @@ await client.hris.dependents.retrieve("id");
-**requestOptions:** `Dependents.RequestOptions` +**requestOptions:** `Leads.RequestOptions`
@@ -8764,9 +8766,7 @@ await client.hris.dependents.retrieve("id");
-## Hris EmployeePayrollRuns - -
client.hris.employeePayrollRuns.list({ ...params }) -> Merge.PaginatedEmployeePayrollRunList +
client.crm.leads.retrieve(id, { ...params }) -> Merge.Lead
@@ -8778,7 +8778,7 @@ await client.hris.dependents.retrieve("id");
-Returns a list of `EmployeePayrollRun` objects. +Returns a `Lead` object with the given `id`.
@@ -8794,7 +8794,7 @@ Returns a list of `EmployeePayrollRun` objects.
```typescript -await client.hris.employeePayrollRuns.list(); +await client.crm.leads.retrieve("id"); ```
@@ -8810,7 +8810,7 @@ await client.hris.employeePayrollRuns.list();
-**request:** `Merge.hris.EmployeePayrollRunsListRequest` +**id:** `string`
@@ -8818,7 +8818,15 @@ await client.hris.employeePayrollRuns.list();
-**requestOptions:** `EmployeePayrollRuns.RequestOptions` +**request:** `Merge.crm.LeadsRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Leads.RequestOptions`
@@ -8829,7 +8837,7 @@ await client.hris.employeePayrollRuns.list();
-
client.hris.employeePayrollRuns.retrieve(id, { ...params }) -> Merge.EmployeePayrollRun +
client.crm.leads.metaPostRetrieve() -> Merge.MetaResponse
@@ -8841,7 +8849,7 @@ await client.hris.employeePayrollRuns.list();
-Returns an `EmployeePayrollRun` object with the given `id`. +Returns metadata for `Lead` POSTs.
@@ -8857,7 +8865,7 @@ Returns an `EmployeePayrollRun` object with the given `id`.
```typescript -await client.hris.employeePayrollRuns.retrieve("id"); +await client.crm.leads.metaPostRetrieve(); ```
@@ -8873,23 +8881,7 @@ await client.hris.employeePayrollRuns.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.hris.EmployeePayrollRunsRetrieveRequest` - -
-
- -
-
- -**requestOptions:** `EmployeePayrollRuns.RequestOptions` +**requestOptions:** `Leads.RequestOptions`
@@ -8900,9 +8892,7 @@ await client.hris.employeePayrollRuns.retrieve("id");
-## Hris Employees - -
client.hris.employees.list({ ...params }) -> Merge.PaginatedEmployeeList +
client.crm.leads.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList
@@ -8914,7 +8904,7 @@ await client.hris.employeePayrollRuns.retrieve("id");
-Returns a list of `Employee` objects. +Returns a list of `RemoteFieldClass` objects.
@@ -8930,7 +8920,7 @@ Returns a list of `Employee` objects.
```typescript -await client.hris.employees.list(); +await client.crm.leads.remoteFieldClassesList(); ```
@@ -8946,7 +8936,7 @@ await client.hris.employees.list();
-**request:** `Merge.hris.EmployeesListRequest` +**request:** `Merge.crm.LeadsRemoteFieldClassesListRequest`
@@ -8954,7 +8944,7 @@ await client.hris.employees.list();
-**requestOptions:** `Employees.RequestOptions` +**requestOptions:** `Leads.RequestOptions`
@@ -8965,7 +8955,9 @@ await client.hris.employees.list();
-
client.hris.employees.create({ ...params }) -> Merge.EmployeeResponse +## Crm LinkToken + +
client.crm.linkToken.create({ ...params }) -> Merge.LinkToken
@@ -8977,7 +8969,7 @@ await client.hris.employees.list();
-Creates an `Employee` object with the given values. +Creates a link token to be used when linking a new end user.
@@ -8993,9 +8985,12 @@ Creates an `Employee` object with the given values.
```typescript -await client.hris.employees.create({ - model: {}, -}); +await client.crm.linkToken.create({ + endUserEmailAddress: "example@gmail.com", + endUserOrganizationName: "Test Organization", + endUserOriginId: "12345", + categories: ["hris", "ats"], +}); ```
@@ -9011,7 +9006,7 @@ await client.hris.employees.create({
-**request:** `Merge.hris.EmployeeEndpointRequest` +**request:** `Merge.crm.EndUserDetailsRequest`
@@ -9019,7 +9014,7 @@ await client.hris.employees.create({
-**requestOptions:** `Employees.RequestOptions` +**requestOptions:** `LinkToken.RequestOptions`
@@ -9030,7 +9025,9 @@ await client.hris.employees.create({
-
client.hris.employees.retrieve(id, { ...params }) -> Merge.Employee +## Crm LinkedAccounts + +
client.crm.linkedAccounts.list({ ...params }) -> Merge.PaginatedAccountDetailsAndActionsList
@@ -9042,7 +9039,7 @@ await client.hris.employees.create({
-Returns an `Employee` object with the given `id`. +List linked accounts for your organization.
@@ -9058,7 +9055,7 @@ Returns an `Employee` object with the given `id`.
```typescript -await client.hris.employees.retrieve("id"); +await client.crm.linkedAccounts.list(); ```
@@ -9074,15 +9071,7 @@ await client.hris.employees.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.hris.EmployeesRetrieveRequest` +**request:** `Merge.crm.LinkedAccountsListRequest`
@@ -9090,7 +9079,7 @@ await client.hris.employees.retrieve("id");
-**requestOptions:** `Employees.RequestOptions` +**requestOptions:** `LinkedAccounts.RequestOptions`
@@ -9101,7 +9090,9 @@ await client.hris.employees.retrieve("id");
-
client.hris.employees.ignoreCreate(modelId, { ...params }) -> void +## Crm Notes + +
client.crm.notes.list({ ...params }) -> Merge.PaginatedNoteList
@@ -9113,7 +9104,7 @@ await client.hris.employees.retrieve("id");
-Ignores a specific row based on the `model_id` in the url. These records will have their properties set to null, and will not be updated in future syncs. The "reason" and "message" fields in the request body will be stored for audit purposes. +Returns a list of `Note` objects.
@@ -9129,9 +9120,7 @@ Ignores a specific row based on the `model_id` in the url. These records will ha
```typescript -await client.hris.employees.ignoreCreate("model_id", { - reason: "GENERAL_CUSTOMER_REQUEST", -}); +await client.crm.notes.list(); ```
@@ -9147,78 +9136,15 @@ await client.hris.employees.ignoreCreate("model_id", {
-**modelId:** `string` - -
-
- -
-
- -**request:** `Merge.hris.IgnoreCommonModelRequest` - -
-
- -
-
- -**requestOptions:** `Employees.RequestOptions` - -
-
- -
- - - -
- -
client.hris.employees.metaPostRetrieve() -> Merge.MetaResponse -
-
- -#### 📝 Description - -
-
- -
-
- -Returns metadata for `Employee` POSTs. - -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.hris.employees.metaPostRetrieve(); -``` +**request:** `Merge.crm.NotesListRequest`
-
-
- -#### ⚙️ Parameters - -
-
-**requestOptions:** `Employees.RequestOptions` +**requestOptions:** `Notes.RequestOptions`
@@ -9229,9 +9155,7 @@ await client.hris.employees.metaPostRetrieve();
-## Hris EmployerBenefits - -
client.hris.employerBenefits.list({ ...params }) -> Merge.PaginatedEmployerBenefitList +
client.crm.notes.create({ ...params }) -> Merge.NoteResponse
@@ -9243,7 +9167,7 @@ await client.hris.employees.metaPostRetrieve();
-Returns a list of `EmployerBenefit` objects. +Creates a `Note` object with the given values.
@@ -9259,7 +9183,9 @@ Returns a list of `EmployerBenefit` objects.
```typescript -await client.hris.employerBenefits.list(); +await client.crm.notes.create({ + model: {}, +}); ```
@@ -9275,7 +9201,7 @@ await client.hris.employerBenefits.list();
-**request:** `Merge.hris.EmployerBenefitsListRequest` +**request:** `Merge.crm.NoteEndpointRequest`
@@ -9283,7 +9209,7 @@ await client.hris.employerBenefits.list();
-**requestOptions:** `EmployerBenefits.RequestOptions` +**requestOptions:** `Notes.RequestOptions`
@@ -9294,7 +9220,7 @@ await client.hris.employerBenefits.list();
-
client.hris.employerBenefits.retrieve(id, { ...params }) -> Merge.EmployerBenefit +
client.crm.notes.retrieve(id, { ...params }) -> Merge.Note
@@ -9306,7 +9232,7 @@ await client.hris.employerBenefits.list();
-Returns an `EmployerBenefit` object with the given `id`. +Returns a `Note` object with the given `id`.
@@ -9322,7 +9248,7 @@ Returns an `EmployerBenefit` object with the given `id`.
```typescript -await client.hris.employerBenefits.retrieve("id"); +await client.crm.notes.retrieve("id"); ```
@@ -9346,7 +9272,7 @@ await client.hris.employerBenefits.retrieve("id");
-**request:** `Merge.hris.EmployerBenefitsRetrieveRequest` +**request:** `Merge.crm.NotesRetrieveRequest`
@@ -9354,7 +9280,7 @@ await client.hris.employerBenefits.retrieve("id");
-**requestOptions:** `EmployerBenefits.RequestOptions` +**requestOptions:** `Notes.RequestOptions`
@@ -9365,9 +9291,7 @@ await client.hris.employerBenefits.retrieve("id");
-## Hris Employments - -
client.hris.employments.list({ ...params }) -> Merge.PaginatedEmploymentList +
client.crm.notes.metaPostRetrieve() -> Merge.MetaResponse
@@ -9379,7 +9303,7 @@ await client.hris.employerBenefits.retrieve("id");
-Returns a list of `Employment` objects. +Returns metadata for `Note` POSTs.
@@ -9395,7 +9319,7 @@ Returns a list of `Employment` objects.
```typescript -await client.hris.employments.list(); +await client.crm.notes.metaPostRetrieve(); ```
@@ -9411,15 +9335,7 @@ await client.hris.employments.list();
-**request:** `Merge.hris.EmploymentsListRequest` - -
-
- -
-
- -**requestOptions:** `Employments.RequestOptions` +**requestOptions:** `Notes.RequestOptions`
@@ -9430,7 +9346,7 @@ await client.hris.employments.list();
-
client.hris.employments.retrieve(id, { ...params }) -> Merge.Employment +
client.crm.notes.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList
@@ -9442,7 +9358,7 @@ await client.hris.employments.list();
-Returns an `Employment` object with the given `id`. +Returns a list of `RemoteFieldClass` objects.
@@ -9458,7 +9374,7 @@ Returns an `Employment` object with the given `id`.
```typescript -await client.hris.employments.retrieve("id"); +await client.crm.notes.remoteFieldClassesList(); ```
@@ -9474,15 +9390,7 @@ await client.hris.employments.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.hris.EmploymentsRetrieveRequest` +**request:** `Merge.crm.NotesRemoteFieldClassesListRequest`
@@ -9490,7 +9398,7 @@ await client.hris.employments.retrieve("id");
-**requestOptions:** `Employments.RequestOptions` +**requestOptions:** `Notes.RequestOptions`
@@ -9501,9 +9409,9 @@ await client.hris.employments.retrieve("id");
-## Hris FieldMapping +## Crm Opportunities -
client.hris.fieldMapping.fieldMappingsRetrieve({ ...params }) -> Merge.FieldMappingApiInstanceResponse +
client.crm.opportunities.list({ ...params }) -> Merge.PaginatedOpportunityList
@@ -9515,7 +9423,7 @@ await client.hris.employments.retrieve("id");
-Get all Field Mappings for this Linked Account. Field Mappings are mappings between third-party Remote Fields and user defined Merge fields. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). +Returns a list of `Opportunity` objects.
@@ -9531,7 +9439,7 @@ Get all Field Mappings for this Linked Account. Field Mappings are mappings betw
```typescript -await client.hris.fieldMapping.fieldMappingsRetrieve(); +await client.crm.opportunities.list(); ```
@@ -9547,7 +9455,7 @@ await client.hris.fieldMapping.fieldMappingsRetrieve();
-**request:** `Merge.hris.FieldMappingsRetrieveRequest` +**request:** `Merge.crm.OpportunitiesListRequest`
@@ -9555,7 +9463,7 @@ await client.hris.fieldMapping.fieldMappingsRetrieve();
-**requestOptions:** `FieldMapping.RequestOptions` +**requestOptions:** `Opportunities.RequestOptions`
@@ -9566,7 +9474,7 @@ await client.hris.fieldMapping.fieldMappingsRetrieve();
-
client.hris.fieldMapping.fieldMappingsCreate({ ...params }) -> Merge.FieldMappingInstanceResponse +
client.crm.opportunities.create({ ...params }) -> Merge.OpportunityResponse
@@ -9578,7 +9486,7 @@ await client.hris.fieldMapping.fieldMappingsRetrieve();
-Create new Field Mappings that will be available after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start. +Creates an `Opportunity` object with the given values.
@@ -9594,13 +9502,8 @@ Create new Field Mappings that will be available after the next scheduled sync.
```typescript -await client.hris.fieldMapping.fieldMappingsCreate({ - targetFieldName: "example_target_field_name", - targetFieldDescription: "this is a example description of the target field", - remoteFieldTraversalPath: ["example_remote_field"], - remoteMethod: "GET", - remoteUrlPath: "/example-url-path", - commonModelName: "ExampleCommonModel", +await client.crm.opportunities.create({ + model: {}, }); ``` @@ -9617,7 +9520,7 @@ await client.hris.fieldMapping.fieldMappingsCreate({
-**request:** `Merge.hris.CreateFieldMappingRequest` +**request:** `Merge.crm.OpportunityEndpointRequest`
@@ -9625,7 +9528,7 @@ await client.hris.fieldMapping.fieldMappingsCreate({
-**requestOptions:** `FieldMapping.RequestOptions` +**requestOptions:** `Opportunities.RequestOptions`
@@ -9636,7 +9539,7 @@ await client.hris.fieldMapping.fieldMappingsCreate({
-
client.hris.fieldMapping.fieldMappingsDestroy(fieldMappingId) -> Merge.FieldMappingInstanceResponse +
client.crm.opportunities.retrieve(id, { ...params }) -> Merge.Opportunity
@@ -9648,7 +9551,7 @@ await client.hris.fieldMapping.fieldMappingsCreate({
-Deletes Field Mappings for a Linked Account. All data related to this Field Mapping will be deleted and these changes will be reflected after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start. +Returns an `Opportunity` object with the given `id`.
@@ -9664,7 +9567,7 @@ Deletes Field Mappings for a Linked Account. All data related to this Field Mapp
```typescript -await client.hris.fieldMapping.fieldMappingsDestroy("field_mapping_id"); +await client.crm.opportunities.retrieve("id"); ```
@@ -9680,7 +9583,7 @@ await client.hris.fieldMapping.fieldMappingsDestroy("field_mapping_id");
-**fieldMappingId:** `string` +**id:** `string`
@@ -9688,7 +9591,15 @@ await client.hris.fieldMapping.fieldMappingsDestroy("field_mapping_id");
-**requestOptions:** `FieldMapping.RequestOptions` +**request:** `Merge.crm.OpportunitiesRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Opportunities.RequestOptions`
@@ -9699,7 +9610,7 @@ await client.hris.fieldMapping.fieldMappingsDestroy("field_mapping_id");
-
client.hris.fieldMapping.fieldMappingsPartialUpdate(fieldMappingId, { ...params }) -> Merge.FieldMappingInstanceResponse +
client.crm.opportunities.partialUpdate(id, { ...params }) -> Merge.OpportunityResponse
@@ -9711,7 +9622,7 @@ await client.hris.fieldMapping.fieldMappingsDestroy("field_mapping_id");
-Create or update existing Field Mappings for a Linked Account. Changes will be reflected after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start. +Updates an `Opportunity` object with the given `id`.
@@ -9727,7 +9638,9 @@ Create or update existing Field Mappings for a Linked Account. Changes will be r
```typescript -await client.hris.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id"); +await client.crm.opportunities.partialUpdate("id", { + model: {}, +}); ```
@@ -9743,7 +9656,7 @@ await client.hris.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id");
-**fieldMappingId:** `string` +**id:** `string`
@@ -9751,7 +9664,7 @@ await client.hris.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id");
-**request:** `Merge.hris.PatchedEditFieldMappingRequest` +**request:** `Merge.crm.PatchedOpportunityEndpointRequest`
@@ -9759,7 +9672,7 @@ await client.hris.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id");
-**requestOptions:** `FieldMapping.RequestOptions` +**requestOptions:** `Opportunities.RequestOptions`
@@ -9770,7 +9683,7 @@ await client.hris.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id");
-
client.hris.fieldMapping.remoteFieldsRetrieve({ ...params }) -> Merge.RemoteFieldApiResponse +
client.crm.opportunities.metaPatchRetrieve(id) -> Merge.MetaResponse
@@ -9782,7 +9695,7 @@ await client.hris.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id");
-Get all remote fields for a Linked Account. Remote fields are third-party fields that are accessible after initial sync if remote_data is enabled. You can use remote fields to override existing Merge fields or map a new Merge field. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). +Returns metadata for `Opportunity` PATCHs.
@@ -9798,7 +9711,7 @@ Get all remote fields for a Linked Account. Remote fields are third-party fields
```typescript -await client.hris.fieldMapping.remoteFieldsRetrieve(); +await client.crm.opportunities.metaPatchRetrieve("id"); ```
@@ -9814,7 +9727,7 @@ await client.hris.fieldMapping.remoteFieldsRetrieve();
-**request:** `Merge.hris.RemoteFieldsRetrieveRequest` +**id:** `string`
@@ -9822,7 +9735,7 @@ await client.hris.fieldMapping.remoteFieldsRetrieve();
-**requestOptions:** `FieldMapping.RequestOptions` +**requestOptions:** `Opportunities.RequestOptions`
@@ -9833,7 +9746,7 @@ await client.hris.fieldMapping.remoteFieldsRetrieve();
-
client.hris.fieldMapping.targetFieldsRetrieve() -> Merge.ExternalTargetFieldApiResponse +
client.crm.opportunities.metaPostRetrieve() -> Merge.MetaResponse
@@ -9845,7 +9758,7 @@ await client.hris.fieldMapping.remoteFieldsRetrieve();
-Get all organization-wide Target Fields, this will not include any Linked Account specific Target Fields. Organization-wide Target Fields are additional fields appended to the Merge Common Model for all Linked Accounts in a category. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). +Returns metadata for `Opportunity` POSTs.
@@ -9861,7 +9774,7 @@ Get all organization-wide Target Fields, this will not include any Linked Accoun
```typescript -await client.hris.fieldMapping.targetFieldsRetrieve(); +await client.crm.opportunities.metaPostRetrieve(); ```
@@ -9877,7 +9790,7 @@ await client.hris.fieldMapping.targetFieldsRetrieve();
-**requestOptions:** `FieldMapping.RequestOptions` +**requestOptions:** `Opportunities.RequestOptions`
@@ -9888,9 +9801,7 @@ await client.hris.fieldMapping.targetFieldsRetrieve();
-## Hris GenerateKey - -
client.hris.generateKey.create({ ...params }) -> Merge.RemoteKey +
client.crm.opportunities.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList
@@ -9902,7 +9813,7 @@ await client.hris.fieldMapping.targetFieldsRetrieve();
-Create a remote key. +Returns a list of `RemoteFieldClass` objects.
@@ -9918,9 +9829,7 @@ Create a remote key.
```typescript -await client.hris.generateKey.create({ - name: "Remote Deployment Key 1", -}); +await client.crm.opportunities.remoteFieldClassesList(); ```
@@ -9936,7 +9845,7 @@ await client.hris.generateKey.create({
-**request:** `Merge.hris.GenerateRemoteKeyRequest` +**request:** `Merge.crm.OpportunitiesRemoteFieldClassesListRequest`
@@ -9944,7 +9853,7 @@ await client.hris.generateKey.create({
-**requestOptions:** `GenerateKey.RequestOptions` +**requestOptions:** `Opportunities.RequestOptions`
@@ -9955,9 +9864,9 @@ await client.hris.generateKey.create({
-## Hris Groups +## Crm Passthrough -
client.hris.groups.list({ ...params }) -> Merge.PaginatedGroupList +
client.crm.passthrough.create({ ...params }) -> Merge.RemoteResponse
@@ -9969,7 +9878,7 @@ await client.hris.generateKey.create({
-Returns a list of `Group` objects. +Pull data from an endpoint not currently supported by Merge.
@@ -9985,7 +9894,10 @@ Returns a list of `Group` objects.
```typescript -await client.hris.groups.list(); +await client.crm.passthrough.create({ + method: "GET", + path: "/scooters", +}); ```
@@ -10001,7 +9913,7 @@ await client.hris.groups.list();
-**request:** `Merge.hris.GroupsListRequest` +**request:** `Merge.DataPassthroughRequest`
@@ -10009,7 +9921,7 @@ await client.hris.groups.list();
-**requestOptions:** `Groups.RequestOptions` +**requestOptions:** `Passthrough.RequestOptions`
@@ -10020,7 +9932,9 @@ await client.hris.groups.list();
-
client.hris.groups.retrieve(id, { ...params }) -> Merge.Group +## Crm RegenerateKey + +
client.crm.regenerateKey.create({ ...params }) -> Merge.RemoteKey
@@ -10032,7 +9946,7 @@ await client.hris.groups.list();
-Returns a `Group` object with the given `id`. +Exchange remote keys.
@@ -10048,7 +9962,9 @@ Returns a `Group` object with the given `id`.
```typescript -await client.hris.groups.retrieve("id"); +await client.crm.regenerateKey.create({ + name: "Remote Deployment Key 1", +}); ```
@@ -10064,15 +9980,7 @@ await client.hris.groups.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.hris.GroupsRetrieveRequest` +**request:** `Merge.crm.RemoteKeyForRegenerationRequest`
@@ -10080,7 +9988,7 @@ await client.hris.groups.retrieve("id");
-**requestOptions:** `Groups.RequestOptions` +**requestOptions:** `RegenerateKey.RequestOptions`
@@ -10091,9 +9999,9 @@ await client.hris.groups.retrieve("id");
-## Hris Issues +## Crm Stages -
client.hris.issues.list({ ...params }) -> Merge.PaginatedIssueList +
client.crm.stages.list({ ...params }) -> Merge.PaginatedStageList
@@ -10105,7 +10013,7 @@ await client.hris.groups.retrieve("id");
-Gets all issues for Organization. +Returns a list of `Stage` objects.
@@ -10121,7 +10029,7 @@ Gets all issues for Organization.
```typescript -await client.hris.issues.list(); +await client.crm.stages.list(); ```
@@ -10137,7 +10045,7 @@ await client.hris.issues.list();
-**request:** `Merge.hris.IssuesListRequest` +**request:** `Merge.crm.StagesListRequest`
@@ -10145,7 +10053,7 @@ await client.hris.issues.list();
-**requestOptions:** `Issues.RequestOptions` +**requestOptions:** `Stages.RequestOptions`
@@ -10156,7 +10064,7 @@ await client.hris.issues.list();
-
client.hris.issues.retrieve(id) -> Merge.Issue +
client.crm.stages.retrieve(id, { ...params }) -> Merge.Stage
@@ -10168,7 +10076,7 @@ await client.hris.issues.list();
-Get a specific issue. +Returns a `Stage` object with the given `id`.
@@ -10184,7 +10092,7 @@ Get a specific issue.
```typescript -await client.hris.issues.retrieve("id"); +await client.crm.stages.retrieve("id"); ```
@@ -10208,7 +10116,15 @@ await client.hris.issues.retrieve("id");
-**requestOptions:** `Issues.RequestOptions` +**request:** `Merge.crm.StagesRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Stages.RequestOptions`
@@ -10219,9 +10135,7 @@ await client.hris.issues.retrieve("id");
-## Hris LinkToken - -
client.hris.linkToken.create({ ...params }) -> Merge.LinkToken +
client.crm.stages.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList
@@ -10233,7 +10147,7 @@ await client.hris.issues.retrieve("id");
-Creates a link token to be used when linking a new end user. +Returns a list of `RemoteFieldClass` objects.
@@ -10249,12 +10163,7 @@ Creates a link token to be used when linking a new end user.
```typescript -await client.hris.linkToken.create({ - endUserEmailAddress: "example@gmail.com", - endUserOrganizationName: "Test Organization", - endUserOriginId: "12345", - categories: ["hris", "ats"], -}); +await client.crm.stages.remoteFieldClassesList(); ```
@@ -10270,7 +10179,7 @@ await client.hris.linkToken.create({
-**request:** `Merge.hris.EndUserDetailsRequest` +**request:** `Merge.crm.StagesRemoteFieldClassesListRequest`
@@ -10278,7 +10187,7 @@ await client.hris.linkToken.create({
-**requestOptions:** `LinkToken.RequestOptions` +**requestOptions:** `Stages.RequestOptions`
@@ -10289,9 +10198,9 @@ await client.hris.linkToken.create({
-## Hris LinkedAccounts +## Crm SyncStatus -
client.hris.linkedAccounts.list({ ...params }) -> Merge.PaginatedAccountDetailsAndActionsList +
client.crm.syncStatus.list({ ...params }) -> Merge.PaginatedSyncStatusList
@@ -10303,7 +10212,7 @@ await client.hris.linkToken.create({
-List linked accounts for your organization. +Get sync status for the current sync and the most recently finished sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` represents the most recent time any sync completed. These timestamps may correspond to different sync instances which may result in a sync start time being later than a separate sync completed time. To ensure you are retrieving the latest available data reference the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses).
@@ -10319,7 +10228,7 @@ List linked accounts for your organization.
```typescript -await client.hris.linkedAccounts.list(); +await client.crm.syncStatus.list(); ```
@@ -10335,7 +10244,7 @@ await client.hris.linkedAccounts.list();
-**request:** `Merge.hris.LinkedAccountsListRequest` +**request:** `Merge.crm.SyncStatusListRequest`
@@ -10343,7 +10252,7 @@ await client.hris.linkedAccounts.list();
-**requestOptions:** `LinkedAccounts.RequestOptions` +**requestOptions:** `SyncStatus.RequestOptions`
@@ -10354,9 +10263,9 @@ await client.hris.linkedAccounts.list();
-## Hris Locations +## Crm ForceResync -
client.hris.locations.list({ ...params }) -> Merge.PaginatedLocationList +
client.crm.forceResync.syncStatusResyncCreate() -> Merge.SyncStatus[]
@@ -10368,7 +10277,7 @@ await client.hris.linkedAccounts.list();
-Returns a list of `Location` objects. +Force re-sync of all models. This endpoint is available for monthly, quarterly, and highest sync frequency customers on the Professional or Enterprise plans. Doing so will consume a sync credit for the relevant linked account. Force re-syncs can also be triggered manually in the Merge Dashboard and is available for all customers.
@@ -10384,7 +10293,7 @@ Returns a list of `Location` objects.
```typescript -await client.hris.locations.list(); +await client.crm.forceResync.syncStatusResyncCreate(); ```
@@ -10400,15 +10309,7 @@ await client.hris.locations.list();
-**request:** `Merge.hris.LocationsListRequest` - -
-
- -
-
- -**requestOptions:** `Locations.RequestOptions` +**requestOptions:** `ForceResync.RequestOptions`
@@ -10419,7 +10320,9 @@ await client.hris.locations.list();
-
client.hris.locations.retrieve(id, { ...params }) -> Merge.Location +## Crm Tasks + +
client.crm.tasks.list({ ...params }) -> Merge.PaginatedTaskList
@@ -10431,7 +10334,7 @@ await client.hris.locations.list();
-Returns a `Location` object with the given `id`. +Returns a list of `Task` objects.
@@ -10447,7 +10350,7 @@ Returns a `Location` object with the given `id`.
```typescript -await client.hris.locations.retrieve("id"); +await client.crm.tasks.list(); ```
@@ -10463,15 +10366,7 @@ await client.hris.locations.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.hris.LocationsRetrieveRequest` +**request:** `Merge.crm.TasksListRequest`
@@ -10479,7 +10374,7 @@ await client.hris.locations.retrieve("id");
-**requestOptions:** `Locations.RequestOptions` +**requestOptions:** `Tasks.RequestOptions`
@@ -10490,9 +10385,7 @@ await client.hris.locations.retrieve("id");
-## Hris Passthrough - -
client.hris.passthrough.create({ ...params }) -> Merge.RemoteResponse +
client.crm.tasks.create({ ...params }) -> Merge.TaskResponse
@@ -10504,7 +10397,7 @@ await client.hris.locations.retrieve("id");
-Pull data from an endpoint not currently supported by Merge. +Creates a `Task` object with the given values.
@@ -10520,9 +10413,8 @@ Pull data from an endpoint not currently supported by Merge.
```typescript -await client.hris.passthrough.create({ - method: "GET", - path: "/scooters", +await client.crm.tasks.create({ + model: {}, }); ``` @@ -10539,7 +10431,7 @@ await client.hris.passthrough.create({
-**request:** `Merge.DataPassthroughRequest` +**request:** `Merge.crm.TaskEndpointRequest`
@@ -10547,7 +10439,7 @@ await client.hris.passthrough.create({
-**requestOptions:** `Passthrough.RequestOptions` +**requestOptions:** `Tasks.RequestOptions`
@@ -10558,9 +10450,7 @@ await client.hris.passthrough.create({
-## Hris PayGroups - -
client.hris.payGroups.list({ ...params }) -> Merge.PaginatedPayGroupList +
client.crm.tasks.retrieve(id, { ...params }) -> Merge.Task
@@ -10572,7 +10462,7 @@ await client.hris.passthrough.create({
-Returns a list of `PayGroup` objects. +Returns a `Task` object with the given `id`.
@@ -10588,7 +10478,7 @@ Returns a list of `PayGroup` objects.
```typescript -await client.hris.payGroups.list(); +await client.crm.tasks.retrieve("id"); ```
@@ -10604,7 +10494,7 @@ await client.hris.payGroups.list();
-**request:** `Merge.hris.PayGroupsListRequest` +**id:** `string`
@@ -10612,7 +10502,15 @@ await client.hris.payGroups.list();
-**requestOptions:** `PayGroups.RequestOptions` +**request:** `Merge.crm.TasksRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Tasks.RequestOptions`
@@ -10623,7 +10521,7 @@ await client.hris.payGroups.list();
-
client.hris.payGroups.retrieve(id, { ...params }) -> Merge.PayGroup +
client.crm.tasks.partialUpdate(id, { ...params }) -> Merge.TaskResponse
@@ -10635,7 +10533,7 @@ await client.hris.payGroups.list();
-Returns a `PayGroup` object with the given `id`. +Updates a `Task` object with the given `id`.
@@ -10651,7 +10549,9 @@ Returns a `PayGroup` object with the given `id`.
```typescript -await client.hris.payGroups.retrieve("id"); +await client.crm.tasks.partialUpdate("id", { + model: {}, +}); ```
@@ -10675,7 +10575,7 @@ await client.hris.payGroups.retrieve("id");
-**request:** `Merge.hris.PayGroupsRetrieveRequest` +**request:** `Merge.crm.PatchedTaskEndpointRequest`
@@ -10683,7 +10583,7 @@ await client.hris.payGroups.retrieve("id");
-**requestOptions:** `PayGroups.RequestOptions` +**requestOptions:** `Tasks.RequestOptions`
@@ -10694,9 +10594,7 @@ await client.hris.payGroups.retrieve("id");
-## Hris PayrollRuns - -
client.hris.payrollRuns.list({ ...params }) -> Merge.PaginatedPayrollRunList +
client.crm.tasks.metaPatchRetrieve(id) -> Merge.MetaResponse
@@ -10708,7 +10606,7 @@ await client.hris.payGroups.retrieve("id");
-Returns a list of `PayrollRun` objects. +Returns metadata for `Task` PATCHs.
@@ -10724,7 +10622,7 @@ Returns a list of `PayrollRun` objects.
```typescript -await client.hris.payrollRuns.list(); +await client.crm.tasks.metaPatchRetrieve("id"); ```
@@ -10740,7 +10638,7 @@ await client.hris.payrollRuns.list();
-**request:** `Merge.hris.PayrollRunsListRequest` +**id:** `string`
@@ -10748,7 +10646,7 @@ await client.hris.payrollRuns.list();
-**requestOptions:** `PayrollRuns.RequestOptions` +**requestOptions:** `Tasks.RequestOptions`
@@ -10759,7 +10657,7 @@ await client.hris.payrollRuns.list();
-
client.hris.payrollRuns.retrieve(id, { ...params }) -> Merge.PayrollRun +
client.crm.tasks.metaPostRetrieve() -> Merge.MetaResponse
@@ -10771,7 +10669,7 @@ await client.hris.payrollRuns.list();
-Returns a `PayrollRun` object with the given `id`. +Returns metadata for `Task` POSTs.
@@ -10787,7 +10685,7 @@ Returns a `PayrollRun` object with the given `id`.
```typescript -await client.hris.payrollRuns.retrieve("id"); +await client.crm.tasks.metaPostRetrieve(); ```
@@ -10803,23 +10701,7 @@ await client.hris.payrollRuns.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.hris.PayrollRunsRetrieveRequest` - -
-
- -
-
- -**requestOptions:** `PayrollRuns.RequestOptions` +**requestOptions:** `Tasks.RequestOptions`
@@ -10830,9 +10712,7 @@ await client.hris.payrollRuns.retrieve("id");
-## Hris RegenerateKey - -
client.hris.regenerateKey.create({ ...params }) -> Merge.RemoteKey +
client.crm.tasks.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList
@@ -10844,7 +10724,7 @@ await client.hris.payrollRuns.retrieve("id");
-Exchange remote keys. +Returns a list of `RemoteFieldClass` objects.
@@ -10860,9 +10740,7 @@ Exchange remote keys.
```typescript -await client.hris.regenerateKey.create({ - name: "Remote Deployment Key 1", -}); +await client.crm.tasks.remoteFieldClassesList(); ```
@@ -10878,7 +10756,7 @@ await client.hris.regenerateKey.create({
-**request:** `Merge.hris.RemoteKeyForRegenerationRequest` +**request:** `Merge.crm.TasksRemoteFieldClassesListRequest`
@@ -10886,7 +10764,7 @@ await client.hris.regenerateKey.create({
-**requestOptions:** `RegenerateKey.RequestOptions` +**requestOptions:** `Tasks.RequestOptions`
@@ -10897,9 +10775,9 @@ await client.hris.regenerateKey.create({
-## Hris SyncStatus +## Crm Users -
client.hris.syncStatus.list({ ...params }) -> Merge.PaginatedSyncStatusList +
client.crm.users.list({ ...params }) -> Merge.PaginatedUserList
@@ -10911,7 +10789,7 @@ await client.hris.regenerateKey.create({
-Get sync status for the current sync and the most recently finished sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` represents the most recent time any sync completed. These timestamps may correspond to different sync instances which may result in a sync start time being later than a separate sync completed time. To ensure you are retrieving the latest available data reference the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). +Returns a list of `User` objects.
@@ -10927,7 +10805,7 @@ Get sync status for the current sync and the most recently finished sync. `last_
```typescript -await client.hris.syncStatus.list(); +await client.crm.users.list(); ```
@@ -10943,7 +10821,7 @@ await client.hris.syncStatus.list();
-**request:** `Merge.hris.SyncStatusListRequest` +**request:** `Merge.crm.UsersListRequest`
@@ -10951,7 +10829,7 @@ await client.hris.syncStatus.list();
-**requestOptions:** `SyncStatus.RequestOptions` +**requestOptions:** `Users.RequestOptions`
@@ -10962,9 +10840,7 @@ await client.hris.syncStatus.list();
-## Hris ForceResync - -
client.hris.forceResync.syncStatusResyncCreate() -> Merge.SyncStatus[] +
client.crm.users.retrieve(id, { ...params }) -> Merge.User
@@ -10976,7 +10852,7 @@ await client.hris.syncStatus.list();
-Force re-sync of all models. This endpoint is available for monthly, quarterly, and highest sync frequency customers on the Professional or Enterprise plans. Doing so will consume a sync credit for the relevant linked account. Force re-syncs can also be triggered manually in the Merge Dashboard and is available for all customers. +Returns a `User` object with the given `id`.
@@ -10992,7 +10868,7 @@ Force re-sync of all models. This endpoint is available for monthly, quarterly,
```typescript -await client.hris.forceResync.syncStatusResyncCreate(); +await client.crm.users.retrieve("id"); ```
@@ -11008,64 +10884,15 @@ await client.hris.forceResync.syncStatusResyncCreate();
-**requestOptions:** `ForceResync.RequestOptions` +**id:** `string`
- -
- - - -
- -## Hris Teams - -
client.hris.teams.list({ ...params }) -> Merge.PaginatedTeamList -
-
- -#### 📝 Description - -
-
- -
-
- -Returns a list of `Team` objects. - -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.hris.teams.list(); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
-**request:** `Merge.hris.TeamsListRequest` +**request:** `Merge.crm.UsersRetrieveRequest`
@@ -11073,7 +10900,7 @@ await client.hris.teams.list();
-**requestOptions:** `Teams.RequestOptions` +**requestOptions:** `Users.RequestOptions`
@@ -11084,7 +10911,7 @@ await client.hris.teams.list();
-
client.hris.teams.retrieve(id, { ...params }) -> Merge.Team +
client.crm.users.ignoreCreate(modelId, { ...params }) -> void
@@ -11096,7 +10923,7 @@ await client.hris.teams.list();
-Returns a `Team` object with the given `id`. +Ignores a specific row based on the `model_id` in the url. These records will have their properties set to null, and will not be updated in future syncs. The "reason" and "message" fields in the request body will be stored for audit purposes.
@@ -11112,7 +10939,9 @@ Returns a `Team` object with the given `id`.
```typescript -await client.hris.teams.retrieve("id"); +await client.crm.users.ignoreCreate("model_id", { + reason: "GENERAL_CUSTOMER_REQUEST", +}); ```
@@ -11128,7 +10957,7 @@ await client.hris.teams.retrieve("id");
-**id:** `string` +**modelId:** `string`
@@ -11136,7 +10965,7 @@ await client.hris.teams.retrieve("id");
-**request:** `Merge.hris.TeamsRetrieveRequest` +**request:** `Merge.IgnoreCommonModelRequest`
@@ -11144,7 +10973,7 @@ await client.hris.teams.retrieve("id");
-**requestOptions:** `Teams.RequestOptions` +**requestOptions:** `Users.RequestOptions`
@@ -11155,9 +10984,7 @@ await client.hris.teams.retrieve("id");
-## Hris TimeOff - -
client.hris.timeOff.list({ ...params }) -> Merge.PaginatedTimeOffList +
client.crm.users.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList
@@ -11169,7 +10996,7 @@ await client.hris.teams.retrieve("id");
-Returns a list of `TimeOff` objects. +Returns a list of `RemoteFieldClass` objects.
@@ -11185,7 +11012,7 @@ Returns a list of `TimeOff` objects.
```typescript -await client.hris.timeOff.list(); +await client.crm.users.remoteFieldClassesList(); ```
@@ -11201,7 +11028,7 @@ await client.hris.timeOff.list();
-**request:** `Merge.hris.TimeOffListRequest` +**request:** `Merge.crm.UsersRemoteFieldClassesListRequest`
@@ -11209,7 +11036,7 @@ await client.hris.timeOff.list();
-**requestOptions:** `TimeOff.RequestOptions` +**requestOptions:** `Users.RequestOptions`
@@ -11220,7 +11047,9 @@ await client.hris.timeOff.list();
-
client.hris.timeOff.create({ ...params }) -> Merge.TimeOffResponse +## Crm WebhookReceivers + +
client.crm.webhookReceivers.list() -> Merge.WebhookReceiver[]
@@ -11232,7 +11061,7 @@ await client.hris.timeOff.list();
-Creates a `TimeOff` object with the given values. +Returns a list of `WebhookReceiver` objects.
@@ -11248,9 +11077,7 @@ Creates a `TimeOff` object with the given values.
```typescript -await client.hris.timeOff.create({ - model: {}, -}); +await client.crm.webhookReceivers.list(); ```
@@ -11266,15 +11093,7 @@ await client.hris.timeOff.create({
-**request:** `Merge.hris.TimeOffEndpointRequest` - -
-
- -
-
- -**requestOptions:** `TimeOff.RequestOptions` +**requestOptions:** `WebhookReceivers.RequestOptions`
@@ -11285,7 +11104,7 @@ await client.hris.timeOff.create({
-
client.hris.timeOff.retrieve(id, { ...params }) -> Merge.TimeOff +
client.crm.webhookReceivers.create({ ...params }) -> Merge.WebhookReceiver
@@ -11297,7 +11116,7 @@ await client.hris.timeOff.create({
-Returns a `TimeOff` object with the given `id`. +Creates a `WebhookReceiver` object with the given values.
@@ -11313,7 +11132,10 @@ Returns a `TimeOff` object with the given `id`.
```typescript -await client.hris.timeOff.retrieve("id"); +await client.crm.webhookReceivers.create({ + event: "event", + isActive: true, +}); ```
@@ -11329,15 +11151,7 @@ await client.hris.timeOff.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.hris.TimeOffRetrieveRequest` +**request:** `Merge.crm.WebhookReceiverRequest`
@@ -11345,7 +11159,7 @@ await client.hris.timeOff.retrieve("id");
-**requestOptions:** `TimeOff.RequestOptions` +**requestOptions:** `WebhookReceivers.RequestOptions`
@@ -11356,7 +11170,9 @@ await client.hris.timeOff.retrieve("id");
-
client.hris.timeOff.metaPostRetrieve() -> Merge.MetaResponse +## Filestorage AccountDetails + +
client.filestorage.accountDetails.retrieve() -> Merge.AccountDetails
@@ -11368,7 +11184,7 @@ await client.hris.timeOff.retrieve("id");
-Returns metadata for `TimeOff` POSTs. +Get details for a linked account.
@@ -11384,7 +11200,7 @@ Returns metadata for `TimeOff` POSTs.
```typescript -await client.hris.timeOff.metaPostRetrieve(); +await client.filestorage.accountDetails.retrieve(); ```
@@ -11400,7 +11216,7 @@ await client.hris.timeOff.metaPostRetrieve();
-**requestOptions:** `TimeOff.RequestOptions` +**requestOptions:** `AccountDetails.RequestOptions`
@@ -11411,9 +11227,9 @@ await client.hris.timeOff.metaPostRetrieve();
-## Hris TimeOffBalances +## Filestorage AccountToken -
client.hris.timeOffBalances.list({ ...params }) -> Merge.PaginatedTimeOffBalanceList +
client.filestorage.accountToken.retrieve(publicToken) -> Merge.AccountToken
@@ -11425,7 +11241,7 @@ await client.hris.timeOff.metaPostRetrieve();
-Returns a list of `TimeOffBalance` objects. +Returns the account token for the end user with the provided public token.
@@ -11441,7 +11257,7 @@ Returns a list of `TimeOffBalance` objects.
```typescript -await client.hris.timeOffBalances.list(); +await client.filestorage.accountToken.retrieve("public_token"); ```
@@ -11457,7 +11273,7 @@ await client.hris.timeOffBalances.list();
-**request:** `Merge.hris.TimeOffBalancesListRequest` +**publicToken:** `string`
@@ -11465,7 +11281,7 @@ await client.hris.timeOffBalances.list();
-**requestOptions:** `TimeOffBalances.RequestOptions` +**requestOptions:** `AccountToken.RequestOptions`
@@ -11476,7 +11292,9 @@ await client.hris.timeOffBalances.list();
-
client.hris.timeOffBalances.retrieve(id, { ...params }) -> Merge.TimeOffBalance +## Filestorage AsyncPassthrough + +
client.filestorage.asyncPassthrough.create({ ...params }) -> Merge.AsyncPassthroughReciept
@@ -11488,7 +11306,7 @@ await client.hris.timeOffBalances.list();
-Returns a `TimeOffBalance` object with the given `id`. +Asynchronously pull data from an endpoint not currently supported by Merge.
@@ -11504,7 +11322,10 @@ Returns a `TimeOffBalance` object with the given `id`.
```typescript -await client.hris.timeOffBalances.retrieve("id"); +await client.filestorage.asyncPassthrough.create({ + method: "GET", + path: "/scooters", +}); ```
@@ -11520,15 +11341,7 @@ await client.hris.timeOffBalances.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.hris.TimeOffBalancesRetrieveRequest` +**request:** `Merge.DataPassthroughRequest`
@@ -11536,7 +11349,7 @@ await client.hris.timeOffBalances.retrieve("id");
-**requestOptions:** `TimeOffBalances.RequestOptions` +**requestOptions:** `AsyncPassthrough.RequestOptions`
@@ -11547,9 +11360,7 @@ await client.hris.timeOffBalances.retrieve("id");
-## Hris TimesheetEntries - -
client.hris.timesheetEntries.list({ ...params }) -> Merge.PaginatedTimesheetEntryList +
client.filestorage.asyncPassthrough.retrieve(asyncPassthroughReceiptId) -> Merge.AsyncPassthroughRetrieveResponse
@@ -11561,7 +11372,7 @@ await client.hris.timeOffBalances.retrieve("id");
-Returns a list of `TimesheetEntry` objects. +Retrieves data from earlier async-passthrough POST request
@@ -11577,7 +11388,7 @@ Returns a list of `TimesheetEntry` objects.
```typescript -await client.hris.timesheetEntries.list(); +await client.filestorage.asyncPassthrough.retrieve("async_passthrough_receipt_id"); ```
@@ -11593,7 +11404,7 @@ await client.hris.timesheetEntries.list();
-**request:** `Merge.hris.TimesheetEntriesListRequest` +**asyncPassthroughReceiptId:** `string`
@@ -11601,7 +11412,7 @@ await client.hris.timesheetEntries.list();
-**requestOptions:** `TimesheetEntries.RequestOptions` +**requestOptions:** `AsyncPassthrough.RequestOptions`
@@ -11612,7 +11423,9 @@ await client.hris.timesheetEntries.list();
-
client.hris.timesheetEntries.create({ ...params }) -> Merge.TimesheetEntryResponse +## Filestorage AuditTrail + +
client.filestorage.auditTrail.list({ ...params }) -> Merge.PaginatedAuditLogEventList
@@ -11624,7 +11437,7 @@ await client.hris.timesheetEntries.list();
-Creates a `TimesheetEntry` object with the given values. +Gets a list of audit trail events.
@@ -11640,9 +11453,7 @@ Creates a `TimesheetEntry` object with the given values.
```typescript -await client.hris.timesheetEntries.create({ - model: {}, -}); +await client.filestorage.auditTrail.list(); ```
@@ -11658,7 +11469,7 @@ await client.hris.timesheetEntries.create({
-**request:** `Merge.hris.TimesheetEntryEndpointRequest` +**request:** `Merge.filestorage.AuditTrailListRequest`
@@ -11666,7 +11477,7 @@ await client.hris.timesheetEntries.create({
-**requestOptions:** `TimesheetEntries.RequestOptions` +**requestOptions:** `AuditTrail.RequestOptions`
@@ -11677,7 +11488,9 @@ await client.hris.timesheetEntries.create({
-
client.hris.timesheetEntries.retrieve(id, { ...params }) -> Merge.TimesheetEntry +## Filestorage AvailableActions + +
client.filestorage.availableActions.retrieve() -> Merge.AvailableActions
@@ -11689,7 +11502,7 @@ await client.hris.timesheetEntries.create({
-Returns a `TimesheetEntry` object with the given `id`. +Returns a list of models and actions available for an account.
@@ -11705,7 +11518,7 @@ Returns a `TimesheetEntry` object with the given `id`.
```typescript -await client.hris.timesheetEntries.retrieve("id"); +await client.filestorage.availableActions.retrieve(); ```
@@ -11721,23 +11534,7 @@ await client.hris.timesheetEntries.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.hris.TimesheetEntriesRetrieveRequest` - -
-
- -
-
- -**requestOptions:** `TimesheetEntries.RequestOptions` +**requestOptions:** `AvailableActions.RequestOptions`
@@ -11748,7 +11545,9 @@ await client.hris.timesheetEntries.retrieve("id");
-
client.hris.timesheetEntries.metaPostRetrieve() -> Merge.MetaResponse +## Filestorage Scopes + +
client.filestorage.scopes.defaultScopesRetrieve() -> Merge.CommonModelScopeApi
@@ -11760,7 +11559,7 @@ await client.hris.timesheetEntries.retrieve("id");
-Returns metadata for `TimesheetEntry` POSTs. +Get the default permissions for Merge Common Models and fields across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes).
@@ -11776,7 +11575,7 @@ Returns metadata for `TimesheetEntry` POSTs.
```typescript -await client.hris.timesheetEntries.metaPostRetrieve(); +await client.filestorage.scopes.defaultScopesRetrieve(); ```
@@ -11792,7 +11591,7 @@ await client.hris.timesheetEntries.metaPostRetrieve();
-**requestOptions:** `TimesheetEntries.RequestOptions` +**requestOptions:** `Scopes.RequestOptions`
@@ -11803,9 +11602,7 @@ await client.hris.timesheetEntries.metaPostRetrieve();
-## Hris WebhookReceivers - -
client.hris.webhookReceivers.list() -> Merge.WebhookReceiver[] +
client.filestorage.scopes.linkedAccountScopesRetrieve() -> Merge.CommonModelScopeApi
@@ -11817,7 +11614,7 @@ await client.hris.timesheetEntries.metaPostRetrieve();
-Returns a list of `WebhookReceiver` objects. +Get all available permissions for Merge Common Models and fields for a single Linked Account. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes).
@@ -11833,7 +11630,7 @@ Returns a list of `WebhookReceiver` objects.
```typescript -await client.hris.webhookReceivers.list(); +await client.filestorage.scopes.linkedAccountScopesRetrieve(); ```
@@ -11849,7 +11646,7 @@ await client.hris.webhookReceivers.list();
-**requestOptions:** `WebhookReceivers.RequestOptions` +**requestOptions:** `Scopes.RequestOptions`
@@ -11860,7 +11657,7 @@ await client.hris.webhookReceivers.list();
-
client.hris.webhookReceivers.create({ ...params }) -> Merge.WebhookReceiver +
client.filestorage.scopes.linkedAccountScopesCreate({ ...params }) -> Merge.CommonModelScopeApi
@@ -11872,7 +11669,7 @@ await client.hris.webhookReceivers.list();
-Creates a `WebhookReceiver` object with the given values. +Update permissions for any Common Model or field for a single Linked Account. Any Scopes not set in this POST request will inherit the default Scopes. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes)
@@ -11888,26 +11685,49 @@ Creates a `WebhookReceiver` object with the given values.
```typescript -await client.hris.webhookReceivers.create({ - event: "event", - isActive: true, -}); -``` - -
-
- - - -#### ⚙️ Parameters - -
-
- +await client.filestorage.scopes.linkedAccountScopesCreate({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: ["avatar", "home_location"], + disabledFields: ["work_location"], + }, + }, + { + modelName: "Benefit", + modelPermissions: { + WRITE: { + isEnabled: false, + }, + }, + }, + ], +}); +``` + +
+
+ + + +#### ⚙️ Parameters +
-**request:** `Merge.hris.WebhookReceiverRequest` +
+
+ +**request:** `Merge.filestorage.LinkedAccountCommonModelScopeDeserializerRequest`
@@ -11915,7 +11735,7 @@ await client.hris.webhookReceivers.create({
-**requestOptions:** `WebhookReceivers.RequestOptions` +**requestOptions:** `Scopes.RequestOptions`
@@ -11926,9 +11746,9 @@ await client.hris.webhookReceivers.create({
-## Ticketing AccountDetails +## Filestorage DeleteAccount -
client.ticketing.accountDetails.retrieve() -> Merge.AccountDetails +
client.filestorage.deleteAccount.delete() -> void
@@ -11940,7 +11760,7 @@ await client.hris.webhookReceivers.create({
-Get details for a linked account. +Delete a linked account.
@@ -11956,7 +11776,7 @@ Get details for a linked account.
```typescript -await client.ticketing.accountDetails.retrieve(); +await client.filestorage.deleteAccount.delete(); ```
@@ -11972,7 +11792,7 @@ await client.ticketing.accountDetails.retrieve();
-**requestOptions:** `AccountDetails.RequestOptions` +**requestOptions:** `DeleteAccount.RequestOptions`
@@ -11983,9 +11803,9 @@ await client.ticketing.accountDetails.retrieve();
-## Ticketing AccountToken +## Filestorage Drives -
client.ticketing.accountToken.retrieve(publicToken) -> Merge.AccountToken +
client.filestorage.drives.list({ ...params }) -> Merge.PaginatedDriveList
@@ -11997,7 +11817,7 @@ await client.ticketing.accountDetails.retrieve();
-Returns the account token for the end user with the provided public token. +Returns a list of `Drive` objects.
@@ -12013,7 +11833,7 @@ Returns the account token for the end user with the provided public token.
```typescript -await client.ticketing.accountToken.retrieve("public_token"); +await client.filestorage.drives.list(); ```
@@ -12029,7 +11849,7 @@ await client.ticketing.accountToken.retrieve("public_token");
-**publicToken:** `string` +**request:** `Merge.filestorage.DrivesListRequest`
@@ -12037,7 +11857,7 @@ await client.ticketing.accountToken.retrieve("public_token");
-**requestOptions:** `AccountToken.RequestOptions` +**requestOptions:** `Drives.RequestOptions`
@@ -12048,9 +11868,7 @@ await client.ticketing.accountToken.retrieve("public_token");
-## Ticketing Accounts - -
client.ticketing.accounts.list({ ...params }) -> Merge.PaginatedAccountList +
client.filestorage.drives.retrieve(id, { ...params }) -> Merge.Drive
@@ -12062,7 +11880,7 @@ await client.ticketing.accountToken.retrieve("public_token");
-Returns a list of `Account` objects. +Returns a `Drive` object with the given `id`.
@@ -12078,7 +11896,7 @@ Returns a list of `Account` objects.
```typescript -await client.ticketing.accounts.list(); +await client.filestorage.drives.retrieve("id"); ```
@@ -12094,7 +11912,7 @@ await client.ticketing.accounts.list();
-**request:** `Merge.ticketing.AccountsListRequest` +**id:** `string`
@@ -12102,7 +11920,15 @@ await client.ticketing.accounts.list();
-**requestOptions:** `Accounts.RequestOptions` +**request:** `Merge.filestorage.DrivesRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Drives.RequestOptions`
@@ -12113,7 +11939,9 @@ await client.ticketing.accounts.list();
-
client.ticketing.accounts.retrieve(id, { ...params }) -> Merge.Account +## Filestorage FieldMapping + +
client.filestorage.fieldMapping.fieldMappingsRetrieve({ ...params }) -> Merge.FieldMappingApiInstanceResponse
@@ -12125,7 +11953,7 @@ await client.ticketing.accounts.list();
-Returns an `Account` object with the given `id`. +Get all Field Mappings for this Linked Account. Field Mappings are mappings between third-party Remote Fields and user defined Merge fields. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/).
@@ -12141,7 +11969,7 @@ Returns an `Account` object with the given `id`.
```typescript -await client.ticketing.accounts.retrieve("id"); +await client.filestorage.fieldMapping.fieldMappingsRetrieve(); ```
@@ -12157,15 +11985,7 @@ await client.ticketing.accounts.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.ticketing.AccountsRetrieveRequest` +**request:** `Merge.filestorage.FieldMappingsRetrieveRequest`
@@ -12173,7 +11993,7 @@ await client.ticketing.accounts.retrieve("id");
-**requestOptions:** `Accounts.RequestOptions` +**requestOptions:** `FieldMapping.RequestOptions`
@@ -12184,9 +12004,7 @@ await client.ticketing.accounts.retrieve("id");
-## Ticketing AsyncPassthrough - -
client.ticketing.asyncPassthrough.create({ ...params }) -> Merge.AsyncPassthroughReciept +
client.filestorage.fieldMapping.fieldMappingsCreate({ ...params }) -> Merge.FieldMappingInstanceResponse
@@ -12198,7 +12016,7 @@ await client.ticketing.accounts.retrieve("id");
-Asynchronously pull data from an endpoint not currently supported by Merge. +Create new Field Mappings that will be available after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start.
@@ -12214,9 +12032,13 @@ Asynchronously pull data from an endpoint not currently supported by Merge.
```typescript -await client.ticketing.asyncPassthrough.create({ - method: "GET", - path: "/scooters", +await client.filestorage.fieldMapping.fieldMappingsCreate({ + targetFieldName: "example_target_field_name", + targetFieldDescription: "this is a example description of the target field", + remoteFieldTraversalPath: ["example_remote_field"], + remoteMethod: "GET", + remoteUrlPath: "/example-url-path", + commonModelName: "ExampleCommonModel", }); ``` @@ -12233,7 +12055,7 @@ await client.ticketing.asyncPassthrough.create({
-**request:** `Merge.DataPassthroughRequest` +**request:** `Merge.filestorage.CreateFieldMappingRequest`
@@ -12241,7 +12063,7 @@ await client.ticketing.asyncPassthrough.create({
-**requestOptions:** `AsyncPassthrough.RequestOptions` +**requestOptions:** `FieldMapping.RequestOptions`
@@ -12252,7 +12074,7 @@ await client.ticketing.asyncPassthrough.create({
-
client.ticketing.asyncPassthrough.retrieve(asyncPassthroughReceiptId) -> Merge.AsyncPassthroughRetrieveResponse +
client.filestorage.fieldMapping.fieldMappingsDestroy(fieldMappingId) -> Merge.FieldMappingInstanceResponse
@@ -12264,7 +12086,7 @@ await client.ticketing.asyncPassthrough.create({
-Retrieves data from earlier async-passthrough POST request +Deletes Field Mappings for a Linked Account. All data related to this Field Mapping will be deleted and these changes will be reflected after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start.
@@ -12280,7 +12102,7 @@ Retrieves data from earlier async-passthrough POST request
```typescript -await client.ticketing.asyncPassthrough.retrieve("async_passthrough_receipt_id"); +await client.filestorage.fieldMapping.fieldMappingsDestroy("field_mapping_id"); ```
@@ -12296,7 +12118,7 @@ await client.ticketing.asyncPassthrough.retrieve("async_passthrough_receipt_id")
-**asyncPassthroughReceiptId:** `string` +**fieldMappingId:** `string`
@@ -12304,7 +12126,7 @@ await client.ticketing.asyncPassthrough.retrieve("async_passthrough_receipt_id")
-**requestOptions:** `AsyncPassthrough.RequestOptions` +**requestOptions:** `FieldMapping.RequestOptions`
@@ -12315,9 +12137,7 @@ await client.ticketing.asyncPassthrough.retrieve("async_passthrough_receipt_id")
-## Ticketing Attachments - -
client.ticketing.attachments.list({ ...params }) -> Merge.PaginatedAttachmentList +
client.filestorage.fieldMapping.fieldMappingsPartialUpdate(fieldMappingId, { ...params }) -> Merge.FieldMappingInstanceResponse
@@ -12329,7 +12149,7 @@ await client.ticketing.asyncPassthrough.retrieve("async_passthrough_receipt_id")
-Returns a list of `Attachment` objects. +Create or update existing Field Mappings for a Linked Account. Changes will be reflected after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start.
@@ -12345,7 +12165,7 @@ Returns a list of `Attachment` objects.
```typescript -await client.ticketing.attachments.list(); +await client.filestorage.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id"); ```
@@ -12361,7 +12181,7 @@ await client.ticketing.attachments.list();
-**request:** `Merge.ticketing.AttachmentsListRequest` +**fieldMappingId:** `string`
@@ -12369,7 +12189,15 @@ await client.ticketing.attachments.list();
-**requestOptions:** `Attachments.RequestOptions` +**request:** `Merge.filestorage.PatchedEditFieldMappingRequest` + +
+
+ +
+
+ +**requestOptions:** `FieldMapping.RequestOptions`
@@ -12380,7 +12208,7 @@ await client.ticketing.attachments.list();
-
client.ticketing.attachments.create({ ...params }) -> Merge.TicketingAttachmentResponse +
client.filestorage.fieldMapping.remoteFieldsRetrieve({ ...params }) -> Merge.RemoteFieldApiResponse
@@ -12392,7 +12220,7 @@ await client.ticketing.attachments.list();
-Creates an `Attachment` object with the given values. +Get all remote fields for a Linked Account. Remote fields are third-party fields that are accessible after initial sync if remote_data is enabled. You can use remote fields to override existing Merge fields or map a new Merge field. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/).
@@ -12408,9 +12236,7 @@ Creates an `Attachment` object with the given values.
```typescript -await client.ticketing.attachments.create({ - model: {}, -}); +await client.filestorage.fieldMapping.remoteFieldsRetrieve(); ```
@@ -12426,7 +12252,7 @@ await client.ticketing.attachments.create({
-**request:** `Merge.ticketing.TicketingAttachmentEndpointRequest` +**request:** `Merge.filestorage.RemoteFieldsRetrieveRequest`
@@ -12434,7 +12260,7 @@ await client.ticketing.attachments.create({
-**requestOptions:** `Attachments.RequestOptions` +**requestOptions:** `FieldMapping.RequestOptions`
@@ -12445,7 +12271,7 @@ await client.ticketing.attachments.create({
-
client.ticketing.attachments.retrieve(id, { ...params }) -> Merge.Attachment +
client.filestorage.fieldMapping.targetFieldsRetrieve() -> Merge.ExternalTargetFieldApiResponse
@@ -12457,7 +12283,7 @@ await client.ticketing.attachments.create({
-Returns an `Attachment` object with the given `id`. +Get all organization-wide Target Fields, this will not include any Linked Account specific Target Fields. Organization-wide Target Fields are additional fields appended to the Merge Common Model for all Linked Accounts in a category. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/).
@@ -12473,7 +12299,7 @@ Returns an `Attachment` object with the given `id`.
```typescript -await client.ticketing.attachments.retrieve("id"); +await client.filestorage.fieldMapping.targetFieldsRetrieve(); ```
@@ -12489,23 +12315,7 @@ await client.ticketing.attachments.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.ticketing.AttachmentsRetrieveRequest` - -
-
- -
-
- -**requestOptions:** `Attachments.RequestOptions` +**requestOptions:** `FieldMapping.RequestOptions`
@@ -12516,7 +12326,9 @@ await client.ticketing.attachments.retrieve("id");
-
client.ticketing.attachments.metaPostRetrieve() -> Merge.MetaResponse +## Filestorage Files + +
client.filestorage.files.list({ ...params }) -> Merge.PaginatedFileList
@@ -12528,7 +12340,7 @@ await client.ticketing.attachments.retrieve("id");
-Returns metadata for `TicketingAttachment` POSTs. +Returns a list of `File` objects.
@@ -12544,7 +12356,7 @@ Returns metadata for `TicketingAttachment` POSTs.
```typescript -await client.ticketing.attachments.metaPostRetrieve(); +await client.filestorage.files.list(); ```
@@ -12560,7 +12372,15 @@ await client.ticketing.attachments.metaPostRetrieve();
-**requestOptions:** `Attachments.RequestOptions` +**request:** `Merge.filestorage.FilesListRequest` + +
+
+ +
+
+ +**requestOptions:** `Files.RequestOptions`
@@ -12571,9 +12391,7 @@ await client.ticketing.attachments.metaPostRetrieve();
-## Ticketing AuditTrail - -
client.ticketing.auditTrail.list({ ...params }) -> Merge.PaginatedAuditLogEventList +
client.filestorage.files.create({ ...params }) -> Merge.FileStorageFileResponse
@@ -12585,7 +12403,7 @@ await client.ticketing.attachments.metaPostRetrieve();
-Gets a list of audit trail events. +Creates a `File` object with the given values.
@@ -12601,7 +12419,9 @@ Gets a list of audit trail events.
```typescript -await client.ticketing.auditTrail.list(); +await client.filestorage.files.create({ + model: {}, +}); ```
@@ -12617,7 +12437,7 @@ await client.ticketing.auditTrail.list();
-**request:** `Merge.ticketing.AuditTrailListRequest` +**request:** `Merge.filestorage.FileStorageFileEndpointRequest`
@@ -12625,7 +12445,7 @@ await client.ticketing.auditTrail.list();
-**requestOptions:** `AuditTrail.RequestOptions` +**requestOptions:** `Files.RequestOptions`
@@ -12636,9 +12456,7 @@ await client.ticketing.auditTrail.list();
-## Ticketing AvailableActions - -
client.ticketing.availableActions.retrieve() -> Merge.AvailableActions +
client.filestorage.files.retrieve(id, { ...params }) -> Merge.File_
@@ -12650,7 +12468,7 @@ await client.ticketing.auditTrail.list();
-Returns a list of models and actions available for an account. +Returns a `File` object with the given `id`.
@@ -12666,7 +12484,7 @@ Returns a list of models and actions available for an account.
```typescript -await client.ticketing.availableActions.retrieve(); +await client.filestorage.files.retrieve("id"); ```
@@ -12682,7 +12500,23 @@ await client.ticketing.availableActions.retrieve();
-**requestOptions:** `AvailableActions.RequestOptions` +**id:** `string` + +
+
+ +
+
+ +**request:** `Merge.filestorage.FilesRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Files.RequestOptions`
@@ -12693,9 +12527,7 @@ await client.ticketing.availableActions.retrieve();
-## Ticketing Collections - -
client.ticketing.collections.list({ ...params }) -> Merge.PaginatedCollectionList +
client.filestorage.files.downloadRequestMetaRetrieve(id, { ...params }) -> Merge.DownloadRequestMeta
@@ -12707,7 +12539,7 @@ await client.ticketing.availableActions.retrieve();
-Returns a list of `Collection` objects. +Returns metadata to construct an authenticated file download request for a singular file, allowing you to download file directly from the third-party.
@@ -12723,7 +12555,7 @@ Returns a list of `Collection` objects.
```typescript -await client.ticketing.collections.list(); +await client.filestorage.files.downloadRequestMetaRetrieve("id"); ```
@@ -12739,7 +12571,7 @@ await client.ticketing.collections.list();
-**request:** `Merge.ticketing.CollectionsListRequest` +**id:** `string`
@@ -12747,7 +12579,15 @@ await client.ticketing.collections.list();
-**requestOptions:** `Collections.RequestOptions` +**request:** `Merge.filestorage.FilesDownloadRequestMetaRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Files.RequestOptions`
@@ -12758,7 +12598,7 @@ await client.ticketing.collections.list();
-
client.ticketing.collections.viewersList(collectionId, { ...params }) -> Merge.PaginatedViewerList +
client.filestorage.files.downloadRequestMetaList({ ...params }) -> Merge.PaginatedDownloadRequestMetaList
@@ -12770,7 +12610,7 @@ await client.ticketing.collections.list();
-Returns a list of `Viewer` objects that point to a User id or Team id that is either an assignee or viewer on a `Collection` with the given id. [Learn more.](https://help.merge.dev/en/articles/10333658-ticketing-access-control-list-acls) +Returns metadata to construct authenticated file download requests, allowing you to download files directly from the third-party.
@@ -12786,7 +12626,7 @@ Returns a list of `Viewer` objects that point to a User id or Team id that is ei
```typescript -await client.ticketing.collections.viewersList("collection_id"); +await client.filestorage.files.downloadRequestMetaList(); ```
@@ -12802,15 +12642,7 @@ await client.ticketing.collections.viewersList("collection_id");
-**collectionId:** `string` - -
-
- -
-
- -**request:** `Merge.ticketing.CollectionsViewersListRequest` +**request:** `Merge.filestorage.FilesDownloadRequestMetaListRequest`
@@ -12818,7 +12650,7 @@ await client.ticketing.collections.viewersList("collection_id");
-**requestOptions:** `Collections.RequestOptions` +**requestOptions:** `Files.RequestOptions`
@@ -12829,7 +12661,7 @@ await client.ticketing.collections.viewersList("collection_id");
-
client.ticketing.collections.retrieve(id, { ...params }) -> Merge.Collection +
client.filestorage.files.metaPostRetrieve() -> Merge.MetaResponse
@@ -12841,7 +12673,7 @@ await client.ticketing.collections.viewersList("collection_id");
-Returns a `Collection` object with the given `id`. +Returns metadata for `FileStorageFile` POSTs.
@@ -12857,7 +12689,7 @@ Returns a `Collection` object with the given `id`.
```typescript -await client.ticketing.collections.retrieve("id"); +await client.filestorage.files.metaPostRetrieve(); ```
@@ -12873,23 +12705,7 @@ await client.ticketing.collections.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.ticketing.CollectionsRetrieveRequest` - -
-
- -
-
- -**requestOptions:** `Collections.RequestOptions` +**requestOptions:** `Files.RequestOptions`
@@ -12900,9 +12716,9 @@ await client.ticketing.collections.retrieve("id");
-## Ticketing Comments +## Filestorage Folders -
client.ticketing.comments.list({ ...params }) -> Merge.PaginatedCommentList +
client.filestorage.folders.list({ ...params }) -> Merge.PaginatedFolderList
@@ -12914,7 +12730,7 @@ await client.ticketing.collections.retrieve("id");
-Returns a list of `Comment` objects. +Returns a list of `Folder` objects.
@@ -12930,7 +12746,7 @@ Returns a list of `Comment` objects.
```typescript -await client.ticketing.comments.list(); +await client.filestorage.folders.list(); ```
@@ -12946,7 +12762,7 @@ await client.ticketing.comments.list();
-**request:** `Merge.ticketing.CommentsListRequest` +**request:** `Merge.filestorage.FoldersListRequest`
@@ -12954,7 +12770,7 @@ await client.ticketing.comments.list();
-**requestOptions:** `Comments.RequestOptions` +**requestOptions:** `Folders.RequestOptions`
@@ -12965,7 +12781,7 @@ await client.ticketing.comments.list();
-
client.ticketing.comments.create({ ...params }) -> Merge.CommentResponse +
client.filestorage.folders.create({ ...params }) -> Merge.FileStorageFolderResponse
@@ -12977,7 +12793,7 @@ await client.ticketing.comments.list();
-Creates a `Comment` object with the given values. +Creates a `Folder` object with the given values.
@@ -12993,7 +12809,7 @@ Creates a `Comment` object with the given values.
```typescript -await client.ticketing.comments.create({ +await client.filestorage.folders.create({ model: {}, }); ``` @@ -13011,7 +12827,7 @@ await client.ticketing.comments.create({
-**request:** `Merge.ticketing.CommentEndpointRequest` +**request:** `Merge.filestorage.FileStorageFolderEndpointRequest`
@@ -13019,7 +12835,7 @@ await client.ticketing.comments.create({
-**requestOptions:** `Comments.RequestOptions` +**requestOptions:** `Folders.RequestOptions`
@@ -13030,7 +12846,7 @@ await client.ticketing.comments.create({
-
client.ticketing.comments.retrieve(id, { ...params }) -> Merge.Comment +
client.filestorage.folders.retrieve(id, { ...params }) -> Merge.Folder
@@ -13042,7 +12858,7 @@ await client.ticketing.comments.create({
-Returns a `Comment` object with the given `id`. +Returns a `Folder` object with the given `id`.
@@ -13058,7 +12874,7 @@ Returns a `Comment` object with the given `id`.
```typescript -await client.ticketing.comments.retrieve("id"); +await client.filestorage.folders.retrieve("id"); ```
@@ -13082,7 +12898,7 @@ await client.ticketing.comments.retrieve("id");
-**request:** `Merge.ticketing.CommentsRetrieveRequest` +**request:** `Merge.filestorage.FoldersRetrieveRequest`
@@ -13090,7 +12906,7 @@ await client.ticketing.comments.retrieve("id");
-**requestOptions:** `Comments.RequestOptions` +**requestOptions:** `Folders.RequestOptions`
@@ -13101,7 +12917,7 @@ await client.ticketing.comments.retrieve("id");
-
client.ticketing.comments.metaPostRetrieve() -> Merge.MetaResponse +
client.filestorage.folders.metaPostRetrieve() -> Merge.MetaResponse
@@ -13113,7 +12929,7 @@ await client.ticketing.comments.retrieve("id");
-Returns metadata for `Comment` POSTs. +Returns metadata for `FileStorageFolder` POSTs.
@@ -13129,7 +12945,7 @@ Returns metadata for `Comment` POSTs.
```typescript -await client.ticketing.comments.metaPostRetrieve(); +await client.filestorage.folders.metaPostRetrieve(); ```
@@ -13145,7 +12961,7 @@ await client.ticketing.comments.metaPostRetrieve();
-**requestOptions:** `Comments.RequestOptions` +**requestOptions:** `Folders.RequestOptions`
@@ -13156,9 +12972,9 @@ await client.ticketing.comments.metaPostRetrieve();
-## Ticketing Contacts +## Filestorage GenerateKey -
client.ticketing.contacts.list({ ...params }) -> Merge.PaginatedContactList +
client.filestorage.generateKey.create({ ...params }) -> Merge.RemoteKey
@@ -13170,7 +12986,7 @@ await client.ticketing.comments.metaPostRetrieve();
-Returns a list of `Contact` objects. +Create a remote key.
@@ -13186,7 +13002,9 @@ Returns a list of `Contact` objects.
```typescript -await client.ticketing.contacts.list(); +await client.filestorage.generateKey.create({ + name: "Remote Deployment Key 1", +}); ```
@@ -13202,7 +13020,7 @@ await client.ticketing.contacts.list();
-**request:** `Merge.ticketing.ContactsListRequest` +**request:** `Merge.filestorage.GenerateRemoteKeyRequest`
@@ -13210,7 +13028,7 @@ await client.ticketing.contacts.list();
-**requestOptions:** `Contacts.RequestOptions` +**requestOptions:** `GenerateKey.RequestOptions`
@@ -13221,7 +13039,9 @@ await client.ticketing.contacts.list();
-
client.ticketing.contacts.create({ ...params }) -> Merge.TicketingContactResponse +## Filestorage Groups + +
client.filestorage.groups.list({ ...params }) -> Merge.PaginatedGroupList
@@ -13233,7 +13053,7 @@ await client.ticketing.contacts.list();
-Creates a `Contact` object with the given values. +Returns a list of `Group` objects.
@@ -13249,9 +13069,7 @@ Creates a `Contact` object with the given values.
```typescript -await client.ticketing.contacts.create({ - model: {}, -}); +await client.filestorage.groups.list(); ```
@@ -13267,7 +13085,7 @@ await client.ticketing.contacts.create({
-**request:** `Merge.ticketing.TicketingContactEndpointRequest` +**request:** `Merge.filestorage.GroupsListRequest`
@@ -13275,7 +13093,7 @@ await client.ticketing.contacts.create({
-**requestOptions:** `Contacts.RequestOptions` +**requestOptions:** `Groups.RequestOptions`
@@ -13286,7 +13104,7 @@ await client.ticketing.contacts.create({
-
client.ticketing.contacts.retrieve(id, { ...params }) -> Merge.Contact +
client.filestorage.groups.retrieve(id, { ...params }) -> Merge.Group
@@ -13298,7 +13116,7 @@ await client.ticketing.contacts.create({
-Returns a `Contact` object with the given `id`. +Returns a `Group` object with the given `id`.
@@ -13314,7 +13132,7 @@ Returns a `Contact` object with the given `id`.
```typescript -await client.ticketing.contacts.retrieve("id"); +await client.filestorage.groups.retrieve("id"); ```
@@ -13338,7 +13156,7 @@ await client.ticketing.contacts.retrieve("id");
-**request:** `Merge.ticketing.ContactsRetrieveRequest` +**request:** `Merge.filestorage.GroupsRetrieveRequest`
@@ -13346,7 +13164,7 @@ await client.ticketing.contacts.retrieve("id");
-**requestOptions:** `Contacts.RequestOptions` +**requestOptions:** `Groups.RequestOptions`
@@ -13357,7 +13175,9 @@ await client.ticketing.contacts.retrieve("id");
-
client.ticketing.contacts.metaPostRetrieve() -> Merge.MetaResponse +## Filestorage Issues + +
client.filestorage.issues.list({ ...params }) -> Merge.PaginatedIssueList
@@ -13369,7 +13189,7 @@ await client.ticketing.contacts.retrieve("id");
-Returns metadata for `TicketingContact` POSTs. +Gets all issues for Organization.
@@ -13385,7 +13205,7 @@ Returns metadata for `TicketingContact` POSTs.
```typescript -await client.ticketing.contacts.metaPostRetrieve(); +await client.filestorage.issues.list(); ```
@@ -13401,7 +13221,15 @@ await client.ticketing.contacts.metaPostRetrieve();
-**requestOptions:** `Contacts.RequestOptions` +**request:** `Merge.filestorage.IssuesListRequest` + +
+
+ +
+
+ +**requestOptions:** `Issues.RequestOptions`
@@ -13412,9 +13240,7 @@ await client.ticketing.contacts.metaPostRetrieve();
-## Ticketing Scopes - -
client.ticketing.scopes.defaultScopesRetrieve() -> Merge.CommonModelScopeApi +
client.filestorage.issues.retrieve(id) -> Merge.Issue
@@ -13426,7 +13252,7 @@ await client.ticketing.contacts.metaPostRetrieve();
-Get the default permissions for Merge Common Models and fields across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). +Get a specific issue.
@@ -13442,7 +13268,7 @@ Get the default permissions for Merge Common Models and fields across all Linked
```typescript -await client.ticketing.scopes.defaultScopesRetrieve(); +await client.filestorage.issues.retrieve("id"); ```
@@ -13458,7 +13284,15 @@ await client.ticketing.scopes.defaultScopesRetrieve();
-**requestOptions:** `Scopes.RequestOptions` +**id:** `string` + +
+
+ +
+
+ +**requestOptions:** `Issues.RequestOptions`
@@ -13469,7 +13303,9 @@ await client.ticketing.scopes.defaultScopesRetrieve();
-
client.ticketing.scopes.linkedAccountScopesRetrieve() -> Merge.CommonModelScopeApi +## Filestorage LinkToken + +
client.filestorage.linkToken.create({ ...params }) -> Merge.LinkToken
@@ -13481,7 +13317,7 @@ await client.ticketing.scopes.defaultScopesRetrieve();
-Get all available permissions for Merge Common Models and fields for a single Linked Account. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). +Creates a link token to be used when linking a new end user.
@@ -13497,7 +13333,12 @@ Get all available permissions for Merge Common Models and fields for a single Li
```typescript -await client.ticketing.scopes.linkedAccountScopesRetrieve(); +await client.filestorage.linkToken.create({ + endUserEmailAddress: "example@gmail.com", + endUserOrganizationName: "Test Organization", + endUserOriginId: "12345", + categories: ["hris", "ats"], +}); ```
@@ -13513,7 +13354,15 @@ await client.ticketing.scopes.linkedAccountScopesRetrieve();
-**requestOptions:** `Scopes.RequestOptions` +**request:** `Merge.filestorage.EndUserDetailsRequest` + +
+
+ +
+
+ +**requestOptions:** `LinkToken.RequestOptions`
@@ -13524,7 +13373,9 @@ await client.ticketing.scopes.linkedAccountScopesRetrieve();
-
client.ticketing.scopes.linkedAccountScopesCreate({ ...params }) -> Merge.CommonModelScopeApi +## Filestorage LinkedAccounts + +
client.filestorage.linkedAccounts.list({ ...params }) -> Merge.PaginatedAccountDetailsAndActionsList
@@ -13536,7 +13387,7 @@ await client.ticketing.scopes.linkedAccountScopesRetrieve();
-Update permissions for any Common Model or field for a single Linked Account. Any Scopes not set in this POST request will inherit the default Scopes. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) +List linked accounts for your organization.
@@ -13552,33 +13403,7 @@ Update permissions for any Common Model or field for a single Linked Account. An
```typescript -await client.ticketing.scopes.linkedAccountScopesCreate({ - commonModels: [ - { - modelName: "Employee", - modelPermissions: { - READ: { - isEnabled: true, - }, - WRITE: { - isEnabled: false, - }, - }, - fieldPermissions: { - enabledFields: ["avatar", "home_location"], - disabledFields: ["work_location"], - }, - }, - { - modelName: "Benefit", - modelPermissions: { - WRITE: { - isEnabled: false, - }, - }, - }, - ], -}); +await client.filestorage.linkedAccounts.list(); ```
@@ -13594,7 +13419,7 @@ await client.ticketing.scopes.linkedAccountScopesCreate({
-**request:** `Merge.ticketing.LinkedAccountCommonModelScopeDeserializerRequest` +**request:** `Merge.filestorage.LinkedAccountsListRequest`
@@ -13602,7 +13427,7 @@ await client.ticketing.scopes.linkedAccountScopesCreate({
-**requestOptions:** `Scopes.RequestOptions` +**requestOptions:** `LinkedAccounts.RequestOptions`
@@ -13613,9 +13438,9 @@ await client.ticketing.scopes.linkedAccountScopesCreate({
-## Ticketing DeleteAccount +## Filestorage Passthrough -
client.ticketing.deleteAccount.delete() -> void +
client.filestorage.passthrough.create({ ...params }) -> Merge.RemoteResponse
@@ -13627,7 +13452,7 @@ await client.ticketing.scopes.linkedAccountScopesCreate({
-Delete a linked account. +Pull data from an endpoint not currently supported by Merge.
@@ -13643,7 +13468,10 @@ Delete a linked account.
```typescript -await client.ticketing.deleteAccount.delete(); +await client.filestorage.passthrough.create({ + method: "GET", + path: "/scooters", +}); ```
@@ -13659,7 +13487,15 @@ await client.ticketing.deleteAccount.delete();
-**requestOptions:** `DeleteAccount.RequestOptions` +**request:** `Merge.DataPassthroughRequest` + +
+
+ +
+
+ +**requestOptions:** `Passthrough.RequestOptions`
@@ -13670,9 +13506,9 @@ await client.ticketing.deleteAccount.delete();
-## Ticketing FieldMapping +## Filestorage RegenerateKey -
client.ticketing.fieldMapping.fieldMappingsRetrieve({ ...params }) -> Merge.FieldMappingApiInstanceResponse +
client.filestorage.regenerateKey.create({ ...params }) -> Merge.RemoteKey
@@ -13684,7 +13520,7 @@ await client.ticketing.deleteAccount.delete();
-Get all Field Mappings for this Linked Account. Field Mappings are mappings between third-party Remote Fields and user defined Merge fields. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). +Exchange remote keys.
@@ -13700,7 +13536,9 @@ Get all Field Mappings for this Linked Account. Field Mappings are mappings betw
```typescript -await client.ticketing.fieldMapping.fieldMappingsRetrieve(); +await client.filestorage.regenerateKey.create({ + name: "Remote Deployment Key 1", +}); ```
@@ -13716,7 +13554,7 @@ await client.ticketing.fieldMapping.fieldMappingsRetrieve();
-**request:** `Merge.ticketing.FieldMappingsRetrieveRequest` +**request:** `Merge.filestorage.RemoteKeyForRegenerationRequest`
@@ -13724,7 +13562,7 @@ await client.ticketing.fieldMapping.fieldMappingsRetrieve();
-**requestOptions:** `FieldMapping.RequestOptions` +**requestOptions:** `RegenerateKey.RequestOptions`
@@ -13735,7 +13573,9 @@ await client.ticketing.fieldMapping.fieldMappingsRetrieve();
-
client.ticketing.fieldMapping.fieldMappingsCreate({ ...params }) -> Merge.FieldMappingInstanceResponse +## Filestorage SyncStatus + +
client.filestorage.syncStatus.list({ ...params }) -> Merge.PaginatedSyncStatusList
@@ -13747,7 +13587,7 @@ await client.ticketing.fieldMapping.fieldMappingsRetrieve();
-Create new Field Mappings that will be available after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start. +Get sync status for the current sync and the most recently finished sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` represents the most recent time any sync completed. These timestamps may correspond to different sync instances which may result in a sync start time being later than a separate sync completed time. To ensure you are retrieving the latest available data reference the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses).
@@ -13763,14 +13603,7 @@ Create new Field Mappings that will be available after the next scheduled sync.
```typescript -await client.ticketing.fieldMapping.fieldMappingsCreate({ - targetFieldName: "example_target_field_name", - targetFieldDescription: "this is a example description of the target field", - remoteFieldTraversalPath: ["example_remote_field"], - remoteMethod: "GET", - remoteUrlPath: "/example-url-path", - commonModelName: "ExampleCommonModel", -}); +await client.filestorage.syncStatus.list(); ```
@@ -13786,7 +13619,7 @@ await client.ticketing.fieldMapping.fieldMappingsCreate({
-**request:** `Merge.ticketing.CreateFieldMappingRequest` +**request:** `Merge.filestorage.SyncStatusListRequest`
@@ -13794,7 +13627,7 @@ await client.ticketing.fieldMapping.fieldMappingsCreate({
-**requestOptions:** `FieldMapping.RequestOptions` +**requestOptions:** `SyncStatus.RequestOptions`
@@ -13805,7 +13638,9 @@ await client.ticketing.fieldMapping.fieldMappingsCreate({
-
client.ticketing.fieldMapping.fieldMappingsDestroy(fieldMappingId) -> Merge.FieldMappingInstanceResponse +## Filestorage ForceResync + +
client.filestorage.forceResync.syncStatusResyncCreate() -> Merge.SyncStatus[]
@@ -13817,7 +13652,7 @@ await client.ticketing.fieldMapping.fieldMappingsCreate({
-Deletes Field Mappings for a Linked Account. All data related to this Field Mapping will be deleted and these changes will be reflected after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start. +Force re-sync of all models. This endpoint is available for monthly, quarterly, and highest sync frequency customers on the Professional or Enterprise plans. Doing so will consume a sync credit for the relevant linked account. Force re-syncs can also be triggered manually in the Merge Dashboard and is available for all customers.
@@ -13833,7 +13668,7 @@ Deletes Field Mappings for a Linked Account. All data related to this Field Mapp
```typescript -await client.ticketing.fieldMapping.fieldMappingsDestroy("field_mapping_id"); +await client.filestorage.forceResync.syncStatusResyncCreate(); ```
@@ -13849,15 +13684,7 @@ await client.ticketing.fieldMapping.fieldMappingsDestroy("field_mapping_id");
-**fieldMappingId:** `string` - -
-
- -
-
- -**requestOptions:** `FieldMapping.RequestOptions` +**requestOptions:** `ForceResync.RequestOptions`
@@ -13868,7 +13695,9 @@ await client.ticketing.fieldMapping.fieldMappingsDestroy("field_mapping_id");
-
client.ticketing.fieldMapping.fieldMappingsPartialUpdate(fieldMappingId, { ...params }) -> Merge.FieldMappingInstanceResponse +## Filestorage Users + +
client.filestorage.users.list({ ...params }) -> Merge.PaginatedUserList
@@ -13880,7 +13709,7 @@ await client.ticketing.fieldMapping.fieldMappingsDestroy("field_mapping_id");
-Create or update existing Field Mappings for a Linked Account. Changes will be reflected after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start. +Returns a list of `User` objects.
@@ -13896,7 +13725,7 @@ Create or update existing Field Mappings for a Linked Account. Changes will be r
```typescript -await client.ticketing.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id"); +await client.filestorage.users.list(); ```
@@ -13912,15 +13741,7 @@ await client.ticketing.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id
-**fieldMappingId:** `string` - -
-
- -
-
- -**request:** `Merge.ticketing.PatchedEditFieldMappingRequest` +**request:** `Merge.filestorage.UsersListRequest`
@@ -13928,7 +13749,7 @@ await client.ticketing.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id
-**requestOptions:** `FieldMapping.RequestOptions` +**requestOptions:** `Users.RequestOptions`
@@ -13939,7 +13760,7 @@ await client.ticketing.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id
-
client.ticketing.fieldMapping.remoteFieldsRetrieve({ ...params }) -> Merge.RemoteFieldApiResponse +
client.filestorage.users.retrieve(id, { ...params }) -> Merge.User
@@ -13951,7 +13772,7 @@ await client.ticketing.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id
-Get all remote fields for a Linked Account. Remote fields are third-party fields that are accessible after initial sync if remote_data is enabled. You can use remote fields to override existing Merge fields or map a new Merge field. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). +Returns a `User` object with the given `id`.
@@ -13967,7 +13788,7 @@ Get all remote fields for a Linked Account. Remote fields are third-party fields
```typescript -await client.ticketing.fieldMapping.remoteFieldsRetrieve(); +await client.filestorage.users.retrieve("id"); ```
@@ -13983,7 +13804,7 @@ await client.ticketing.fieldMapping.remoteFieldsRetrieve();
-**request:** `Merge.ticketing.RemoteFieldsRetrieveRequest` +**id:** `string`
@@ -13991,7 +13812,15 @@ await client.ticketing.fieldMapping.remoteFieldsRetrieve();
-**requestOptions:** `FieldMapping.RequestOptions` +**request:** `Merge.filestorage.UsersRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Users.RequestOptions`
@@ -14002,7 +13831,9 @@ await client.ticketing.fieldMapping.remoteFieldsRetrieve();
-
client.ticketing.fieldMapping.targetFieldsRetrieve() -> Merge.ExternalTargetFieldApiResponse +## Filestorage WebhookReceivers + +
client.filestorage.webhookReceivers.list() -> Merge.WebhookReceiver[]
@@ -14014,7 +13845,7 @@ await client.ticketing.fieldMapping.remoteFieldsRetrieve();
-Get all organization-wide Target Fields, this will not include any Linked Account specific Target Fields. Organization-wide Target Fields are additional fields appended to the Merge Common Model for all Linked Accounts in a category. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). +Returns a list of `WebhookReceiver` objects.
@@ -14030,7 +13861,7 @@ Get all organization-wide Target Fields, this will not include any Linked Accoun
```typescript -await client.ticketing.fieldMapping.targetFieldsRetrieve(); +await client.filestorage.webhookReceivers.list(); ```
@@ -14046,7 +13877,7 @@ await client.ticketing.fieldMapping.targetFieldsRetrieve();
-**requestOptions:** `FieldMapping.RequestOptions` +**requestOptions:** `WebhookReceivers.RequestOptions`
@@ -14057,9 +13888,7 @@ await client.ticketing.fieldMapping.targetFieldsRetrieve();
-## Ticketing GenerateKey - -
client.ticketing.generateKey.create({ ...params }) -> Merge.RemoteKey +
client.filestorage.webhookReceivers.create({ ...params }) -> Merge.WebhookReceiver
@@ -14071,7 +13900,7 @@ await client.ticketing.fieldMapping.targetFieldsRetrieve();
-Create a remote key. +Creates a `WebhookReceiver` object with the given values.
@@ -14087,8 +13916,9 @@ Create a remote key.
```typescript -await client.ticketing.generateKey.create({ - name: "Remote Deployment Key 1", +await client.filestorage.webhookReceivers.create({ + event: "event", + isActive: true, }); ``` @@ -14105,7 +13935,7 @@ await client.ticketing.generateKey.create({
-**request:** `Merge.ticketing.GenerateRemoteKeyRequest` +**request:** `Merge.filestorage.WebhookReceiverRequest`
@@ -14113,7 +13943,7 @@ await client.ticketing.generateKey.create({
-**requestOptions:** `GenerateKey.RequestOptions` +**requestOptions:** `WebhookReceivers.RequestOptions`
@@ -14124,9 +13954,9 @@ await client.ticketing.generateKey.create({
-## Ticketing Issues +## Hris AccountDetails -
client.ticketing.issues.list({ ...params }) -> Merge.PaginatedIssueList +
client.hris.accountDetails.retrieve() -> Merge.AccountDetails
@@ -14138,7 +13968,7 @@ await client.ticketing.generateKey.create({
-Gets all issues for Organization. +Get details for a linked account.
@@ -14154,7 +13984,7 @@ Gets all issues for Organization.
```typescript -await client.ticketing.issues.list(); +await client.hris.accountDetails.retrieve(); ```
@@ -14170,15 +14000,7 @@ await client.ticketing.issues.list();
-**request:** `Merge.ticketing.IssuesListRequest` - -
-
- -
-
- -**requestOptions:** `Issues.RequestOptions` +**requestOptions:** `AccountDetails.RequestOptions`
@@ -14189,7 +14011,9 @@ await client.ticketing.issues.list();
-
client.ticketing.issues.retrieve(id) -> Merge.Issue +## Hris AccountToken + +
client.hris.accountToken.retrieve(publicToken) -> Merge.AccountToken
@@ -14201,7 +14025,7 @@ await client.ticketing.issues.list();
-Get a specific issue. +Returns the account token for the end user with the provided public token.
@@ -14217,7 +14041,7 @@ Get a specific issue.
```typescript -await client.ticketing.issues.retrieve("id"); +await client.hris.accountToken.retrieve("public_token"); ```
@@ -14233,7 +14057,7 @@ await client.ticketing.issues.retrieve("id");
-**id:** `string` +**publicToken:** `string`
@@ -14241,7 +14065,7 @@ await client.ticketing.issues.retrieve("id");
-**requestOptions:** `Issues.RequestOptions` +**requestOptions:** `AccountToken.RequestOptions`
@@ -14252,9 +14076,9 @@ await client.ticketing.issues.retrieve("id");
-## Ticketing LinkToken +## Hris AsyncPassthrough -
client.ticketing.linkToken.create({ ...params }) -> Merge.LinkToken +
client.hris.asyncPassthrough.create({ ...params }) -> Merge.AsyncPassthroughReciept
@@ -14266,7 +14090,7 @@ await client.ticketing.issues.retrieve("id");
-Creates a link token to be used when linking a new end user. +Asynchronously pull data from an endpoint not currently supported by Merge.
@@ -14282,11 +14106,9 @@ Creates a link token to be used when linking a new end user.
```typescript -await client.ticketing.linkToken.create({ - endUserEmailAddress: "example@gmail.com", - endUserOrganizationName: "Test Organization", - endUserOriginId: "12345", - categories: ["hris", "ats"], +await client.hris.asyncPassthrough.create({ + method: "GET", + path: "/scooters", }); ``` @@ -14303,7 +14125,7 @@ await client.ticketing.linkToken.create({
-**request:** `Merge.ticketing.EndUserDetailsRequest` +**request:** `Merge.DataPassthroughRequest`
@@ -14311,7 +14133,7 @@ await client.ticketing.linkToken.create({
-**requestOptions:** `LinkToken.RequestOptions` +**requestOptions:** `AsyncPassthrough.RequestOptions`
@@ -14322,9 +14144,7 @@ await client.ticketing.linkToken.create({
-## Ticketing LinkedAccounts - -
client.ticketing.linkedAccounts.list({ ...params }) -> Merge.PaginatedAccountDetailsAndActionsList +
client.hris.asyncPassthrough.retrieve(asyncPassthroughReceiptId) -> Merge.AsyncPassthroughRetrieveResponse
@@ -14336,7 +14156,7 @@ await client.ticketing.linkToken.create({
-List linked accounts for your organization. +Retrieves data from earlier async-passthrough POST request
@@ -14352,7 +14172,7 @@ List linked accounts for your organization.
```typescript -await client.ticketing.linkedAccounts.list(); +await client.hris.asyncPassthrough.retrieve("async_passthrough_receipt_id"); ```
@@ -14368,7 +14188,7 @@ await client.ticketing.linkedAccounts.list();
-**request:** `Merge.ticketing.LinkedAccountsListRequest` +**asyncPassthroughReceiptId:** `string`
@@ -14376,7 +14196,7 @@ await client.ticketing.linkedAccounts.list();
-**requestOptions:** `LinkedAccounts.RequestOptions` +**requestOptions:** `AsyncPassthrough.RequestOptions`
@@ -14387,9 +14207,9 @@ await client.ticketing.linkedAccounts.list();
-## Ticketing Passthrough +## Hris AuditTrail -
client.ticketing.passthrough.create({ ...params }) -> Merge.RemoteResponse +
client.hris.auditTrail.list({ ...params }) -> Merge.PaginatedAuditLogEventList
@@ -14401,7 +14221,7 @@ await client.ticketing.linkedAccounts.list();
-Pull data from an endpoint not currently supported by Merge. +Gets a list of audit trail events.
@@ -14417,10 +14237,7 @@ Pull data from an endpoint not currently supported by Merge.
```typescript -await client.ticketing.passthrough.create({ - method: "GET", - path: "/scooters", -}); +await client.hris.auditTrail.list(); ```
@@ -14436,7 +14253,7 @@ await client.ticketing.passthrough.create({
-**request:** `Merge.DataPassthroughRequest` +**request:** `Merge.hris.AuditTrailListRequest`
@@ -14444,7 +14261,7 @@ await client.ticketing.passthrough.create({
-**requestOptions:** `Passthrough.RequestOptions` +**requestOptions:** `AuditTrail.RequestOptions`
@@ -14455,9 +14272,9 @@ await client.ticketing.passthrough.create({
-## Ticketing Projects +## Hris AvailableActions -
client.ticketing.projects.list({ ...params }) -> Merge.PaginatedProjectList +
client.hris.availableActions.retrieve() -> Merge.AvailableActions
@@ -14469,7 +14286,7 @@ await client.ticketing.passthrough.create({
-Returns a list of `Project` objects. +Returns a list of models and actions available for an account.
@@ -14485,7 +14302,7 @@ Returns a list of `Project` objects.
```typescript -await client.ticketing.projects.list(); +await client.hris.availableActions.retrieve(); ```
@@ -14501,15 +14318,7 @@ await client.ticketing.projects.list();
-**request:** `Merge.ticketing.ProjectsListRequest` - -
-
- -
-
- -**requestOptions:** `Projects.RequestOptions` +**requestOptions:** `AvailableActions.RequestOptions`
@@ -14520,7 +14329,9 @@ await client.ticketing.projects.list();
-
client.ticketing.projects.retrieve(id, { ...params }) -> Merge.Project +## Hris BankInfo + +
client.hris.bankInfo.list({ ...params }) -> Merge.PaginatedBankInfoList
@@ -14532,7 +14343,7 @@ await client.ticketing.projects.list();
-Returns a `Project` object with the given `id`. +Returns a list of `BankInfo` objects.
@@ -14548,7 +14359,7 @@ Returns a `Project` object with the given `id`.
```typescript -await client.ticketing.projects.retrieve("id"); +await client.hris.bankInfo.list(); ```
@@ -14564,15 +14375,7 @@ await client.ticketing.projects.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.ticketing.ProjectsRetrieveRequest` +**request:** `Merge.hris.BankInfoListRequest`
@@ -14580,7 +14383,7 @@ await client.ticketing.projects.retrieve("id");
-**requestOptions:** `Projects.RequestOptions` +**requestOptions:** `BankInfo.RequestOptions`
@@ -14591,7 +14394,7 @@ await client.ticketing.projects.retrieve("id");
-
client.ticketing.projects.usersList(parentId, { ...params }) -> Merge.PaginatedUserList +
client.hris.bankInfo.retrieve(id, { ...params }) -> Merge.BankInfo
@@ -14603,7 +14406,7 @@ await client.ticketing.projects.retrieve("id");
-Returns a list of `User` objects. +Returns a `BankInfo` object with the given `id`.
@@ -14619,7 +14422,7 @@ Returns a list of `User` objects.
```typescript -await client.ticketing.projects.usersList("parent_id"); +await client.hris.bankInfo.retrieve("id"); ```
@@ -14635,7 +14438,7 @@ await client.ticketing.projects.usersList("parent_id");
-**parentId:** `string` +**id:** `string`
@@ -14643,7 +14446,7 @@ await client.ticketing.projects.usersList("parent_id");
-**request:** `Merge.ticketing.ProjectsUsersListRequest` +**request:** `Merge.hris.BankInfoRetrieveRequest`
@@ -14651,7 +14454,7 @@ await client.ticketing.projects.usersList("parent_id");
-**requestOptions:** `Projects.RequestOptions` +**requestOptions:** `BankInfo.RequestOptions`
@@ -14662,9 +14465,9 @@ await client.ticketing.projects.usersList("parent_id");
-## Ticketing RegenerateKey +## Hris Benefits -
client.ticketing.regenerateKey.create({ ...params }) -> Merge.RemoteKey +
client.hris.benefits.list({ ...params }) -> Merge.PaginatedBenefitList
@@ -14676,7 +14479,7 @@ await client.ticketing.projects.usersList("parent_id");
-Exchange remote keys. +Returns a list of `Benefit` objects.
@@ -14692,9 +14495,7 @@ Exchange remote keys.
```typescript -await client.ticketing.regenerateKey.create({ - name: "Remote Deployment Key 1", -}); +await client.hris.benefits.list(); ```
@@ -14710,7 +14511,7 @@ await client.ticketing.regenerateKey.create({
-**request:** `Merge.ticketing.RemoteKeyForRegenerationRequest` +**request:** `Merge.hris.BenefitsListRequest`
@@ -14718,7 +14519,7 @@ await client.ticketing.regenerateKey.create({
-**requestOptions:** `RegenerateKey.RequestOptions` +**requestOptions:** `Benefits.RequestOptions`
@@ -14729,9 +14530,7 @@ await client.ticketing.regenerateKey.create({
-## Ticketing Roles - -
client.ticketing.roles.list({ ...params }) -> Merge.PaginatedRoleList +
client.hris.benefits.retrieve(id, { ...params }) -> Merge.Benefit
@@ -14743,7 +14542,7 @@ await client.ticketing.regenerateKey.create({
-Returns a list of `Role` objects. +Returns a `Benefit` object with the given `id`.
@@ -14759,7 +14558,7 @@ Returns a list of `Role` objects.
```typescript -await client.ticketing.roles.list(); +await client.hris.benefits.retrieve("id"); ```
@@ -14775,7 +14574,7 @@ await client.ticketing.roles.list();
-**request:** `Merge.ticketing.RolesListRequest` +**id:** `string`
@@ -14783,7 +14582,15 @@ await client.ticketing.roles.list();
-**requestOptions:** `Roles.RequestOptions` +**request:** `Merge.hris.BenefitsRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Benefits.RequestOptions`
@@ -14794,7 +14601,9 @@ await client.ticketing.roles.list();
-
client.ticketing.roles.retrieve(id, { ...params }) -> Merge.Role +## Hris Companies + +
client.hris.companies.list({ ...params }) -> Merge.PaginatedCompanyList
@@ -14806,7 +14615,7 @@ await client.ticketing.roles.list();
-Returns a `Role` object with the given `id`. +Returns a list of `Company` objects.
@@ -14822,7 +14631,7 @@ Returns a `Role` object with the given `id`.
```typescript -await client.ticketing.roles.retrieve("id"); +await client.hris.companies.list(); ```
@@ -14838,15 +14647,7 @@ await client.ticketing.roles.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.ticketing.RolesRetrieveRequest` +**request:** `Merge.hris.CompaniesListRequest`
@@ -14854,7 +14655,7 @@ await client.ticketing.roles.retrieve("id");
-**requestOptions:** `Roles.RequestOptions` +**requestOptions:** `Companies.RequestOptions`
@@ -14865,9 +14666,7 @@ await client.ticketing.roles.retrieve("id");
-## Ticketing SyncStatus - -
client.ticketing.syncStatus.list({ ...params }) -> Merge.PaginatedSyncStatusList +
client.hris.companies.retrieve(id, { ...params }) -> Merge.Company
@@ -14879,7 +14678,7 @@ await client.ticketing.roles.retrieve("id");
-Get sync status for the current sync and the most recently finished sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` represents the most recent time any sync completed. These timestamps may correspond to different sync instances which may result in a sync start time being later than a separate sync completed time. To ensure you are retrieving the latest available data reference the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). +Returns a `Company` object with the given `id`.
@@ -14895,7 +14694,7 @@ Get sync status for the current sync and the most recently finished sync. `last_
```typescript -await client.ticketing.syncStatus.list(); +await client.hris.companies.retrieve("id"); ```
@@ -14911,7 +14710,7 @@ await client.ticketing.syncStatus.list();
-**request:** `Merge.ticketing.SyncStatusListRequest` +**id:** `string`
@@ -14919,7 +14718,15 @@ await client.ticketing.syncStatus.list();
-**requestOptions:** `SyncStatus.RequestOptions` +**request:** `Merge.hris.CompaniesRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Companies.RequestOptions`
@@ -14930,9 +14737,9 @@ await client.ticketing.syncStatus.list();
-## Ticketing ForceResync +## Hris Scopes -
client.ticketing.forceResync.syncStatusResyncCreate() -> Merge.SyncStatus[] +
client.hris.scopes.defaultScopesRetrieve() -> Merge.CommonModelScopeApi
@@ -14944,7 +14751,7 @@ await client.ticketing.syncStatus.list();
-Force re-sync of all models. This endpoint is available for monthly, quarterly, and highest sync frequency customers on the Professional or Enterprise plans. Doing so will consume a sync credit for the relevant linked account. Force re-syncs can also be triggered manually in the Merge Dashboard and is available for all customers. +Get the default permissions for Merge Common Models and fields across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes).
@@ -14960,7 +14767,7 @@ Force re-sync of all models. This endpoint is available for monthly, quarterly,
```typescript -await client.ticketing.forceResync.syncStatusResyncCreate(); +await client.hris.scopes.defaultScopesRetrieve(); ```
@@ -14976,7 +14783,7 @@ await client.ticketing.forceResync.syncStatusResyncCreate();
-**requestOptions:** `ForceResync.RequestOptions` +**requestOptions:** `Scopes.RequestOptions`
@@ -14987,9 +14794,7 @@ await client.ticketing.forceResync.syncStatusResyncCreate();
-## Ticketing Tags - -
client.ticketing.tags.list({ ...params }) -> Merge.PaginatedTagList +
client.hris.scopes.linkedAccountScopesRetrieve() -> Merge.CommonModelScopeApi
@@ -15001,7 +14806,7 @@ await client.ticketing.forceResync.syncStatusResyncCreate();
-Returns a list of `Tag` objects. +Get all available permissions for Merge Common Models and fields for a single Linked Account. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes).
@@ -15017,7 +14822,7 @@ Returns a list of `Tag` objects.
```typescript -await client.ticketing.tags.list(); +await client.hris.scopes.linkedAccountScopesRetrieve(); ```
@@ -15033,15 +14838,7 @@ await client.ticketing.tags.list();
-**request:** `Merge.ticketing.TagsListRequest` - -
-
- -
-
- -**requestOptions:** `Tags.RequestOptions` +**requestOptions:** `Scopes.RequestOptions`
@@ -15052,7 +14849,7 @@ await client.ticketing.tags.list();
-
client.ticketing.tags.retrieve(id, { ...params }) -> Merge.Tag +
client.hris.scopes.linkedAccountScopesCreate({ ...params }) -> Merge.CommonModelScopeApi
@@ -15064,7 +14861,7 @@ await client.ticketing.tags.list();
-Returns a `Tag` object with the given `id`. +Update permissions for any Common Model or field for a single Linked Account. Any Scopes not set in this POST request will inherit the default Scopes. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes)
@@ -15080,7 +14877,33 @@ Returns a `Tag` object with the given `id`.
```typescript -await client.ticketing.tags.retrieve("id"); +await client.hris.scopes.linkedAccountScopesCreate({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: ["avatar", "home_location"], + disabledFields: ["work_location"], + }, + }, + { + modelName: "Benefit", + modelPermissions: { + WRITE: { + isEnabled: false, + }, + }, + }, + ], +}); ```
@@ -15096,15 +14919,7 @@ await client.ticketing.tags.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.ticketing.TagsRetrieveRequest` +**request:** `Merge.hris.LinkedAccountCommonModelScopeDeserializerRequest`
@@ -15112,7 +14927,7 @@ await client.ticketing.tags.retrieve("id");
-**requestOptions:** `Tags.RequestOptions` +**requestOptions:** `Scopes.RequestOptions`
@@ -15123,9 +14938,9 @@ await client.ticketing.tags.retrieve("id");
-## Ticketing Teams +## Hris DeleteAccount -
client.ticketing.teams.list({ ...params }) -> Merge.PaginatedTeamList +
client.hris.deleteAccount.delete() -> void
@@ -15137,7 +14952,7 @@ await client.ticketing.tags.retrieve("id");
-Returns a list of `Team` objects. +Delete a linked account.
@@ -15153,7 +14968,7 @@ Returns a list of `Team` objects.
```typescript -await client.ticketing.teams.list(); +await client.hris.deleteAccount.delete(); ```
@@ -15169,15 +14984,7 @@ await client.ticketing.teams.list();
-**request:** `Merge.ticketing.TeamsListRequest` - -
-
- -
-
- -**requestOptions:** `Teams.RequestOptions` +**requestOptions:** `DeleteAccount.RequestOptions`
@@ -15188,7 +14995,9 @@ await client.ticketing.teams.list();
-
client.ticketing.teams.retrieve(id, { ...params }) -> Merge.Team +## Hris Dependents + +
client.hris.dependents.list({ ...params }) -> Merge.PaginatedDependentList
@@ -15200,7 +15009,7 @@ await client.ticketing.teams.list();
-Returns a `Team` object with the given `id`. +Returns a list of `Dependent` objects.
@@ -15216,7 +15025,7 @@ Returns a `Team` object with the given `id`.
```typescript -await client.ticketing.teams.retrieve("id"); +await client.hris.dependents.list(); ```
@@ -15232,15 +15041,7 @@ await client.ticketing.teams.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.ticketing.TeamsRetrieveRequest` +**request:** `Merge.hris.DependentsListRequest`
@@ -15248,7 +15049,7 @@ await client.ticketing.teams.retrieve("id");
-**requestOptions:** `Teams.RequestOptions` +**requestOptions:** `Dependents.RequestOptions`
@@ -15259,9 +15060,7 @@ await client.ticketing.teams.retrieve("id");
-## Ticketing Tickets - -
client.ticketing.tickets.list({ ...params }) -> Merge.PaginatedTicketList +
client.hris.dependents.retrieve(id, { ...params }) -> Merge.Dependent
@@ -15273,7 +15072,7 @@ await client.ticketing.teams.retrieve("id");
-Returns a list of `Ticket` objects. +Returns a `Dependent` object with the given `id`.
@@ -15289,7 +15088,7 @@ Returns a list of `Ticket` objects.
```typescript -await client.ticketing.tickets.list(); +await client.hris.dependents.retrieve("id"); ```
@@ -15305,7 +15104,7 @@ await client.ticketing.tickets.list();
-**request:** `Merge.ticketing.TicketsListRequest` +**id:** `string`
@@ -15313,7 +15112,15 @@ await client.ticketing.tickets.list();
-**requestOptions:** `Tickets.RequestOptions` +**request:** `Merge.hris.DependentsRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Dependents.RequestOptions`
@@ -15324,7 +15131,9 @@ await client.ticketing.tickets.list();
-
client.ticketing.tickets.create({ ...params }) -> Merge.TicketResponse +## Hris EmployeePayrollRuns + +
client.hris.employeePayrollRuns.list({ ...params }) -> Merge.PaginatedEmployeePayrollRunList
@@ -15336,7 +15145,7 @@ await client.ticketing.tickets.list();
-Creates a `Ticket` object with the given values. +Returns a list of `EmployeePayrollRun` objects.
@@ -15352,9 +15161,7 @@ Creates a `Ticket` object with the given values.
```typescript -await client.ticketing.tickets.create({ - model: {}, -}); +await client.hris.employeePayrollRuns.list(); ```
@@ -15370,7 +15177,7 @@ await client.ticketing.tickets.create({
-**request:** `Merge.ticketing.TicketEndpointRequest` +**request:** `Merge.hris.EmployeePayrollRunsListRequest`
@@ -15378,7 +15185,7 @@ await client.ticketing.tickets.create({
-**requestOptions:** `Tickets.RequestOptions` +**requestOptions:** `EmployeePayrollRuns.RequestOptions`
@@ -15389,7 +15196,7 @@ await client.ticketing.tickets.create({
-
client.ticketing.tickets.retrieve(id, { ...params }) -> Merge.Ticket +
client.hris.employeePayrollRuns.retrieve(id, { ...params }) -> Merge.EmployeePayrollRun
@@ -15401,7 +15208,7 @@ await client.ticketing.tickets.create({
-Returns a `Ticket` object with the given `id`. +Returns an `EmployeePayrollRun` object with the given `id`.
@@ -15417,7 +15224,7 @@ Returns a `Ticket` object with the given `id`.
```typescript -await client.ticketing.tickets.retrieve("id"); +await client.hris.employeePayrollRuns.retrieve("id"); ```
@@ -15441,7 +15248,7 @@ await client.ticketing.tickets.retrieve("id");
-**request:** `Merge.ticketing.TicketsRetrieveRequest` +**request:** `Merge.hris.EmployeePayrollRunsRetrieveRequest`
@@ -15449,7 +15256,7 @@ await client.ticketing.tickets.retrieve("id");
-**requestOptions:** `Tickets.RequestOptions` +**requestOptions:** `EmployeePayrollRuns.RequestOptions`
@@ -15460,7 +15267,9 @@ await client.ticketing.tickets.retrieve("id");
-
client.ticketing.tickets.partialUpdate(id, { ...params }) -> Merge.TicketResponse +## Hris Employees + +
client.hris.employees.list({ ...params }) -> Merge.PaginatedEmployeeList
@@ -15472,7 +15281,7 @@ await client.ticketing.tickets.retrieve("id");
-Updates a `Ticket` object with the given `id`. +Returns a list of `Employee` objects.
@@ -15488,9 +15297,7 @@ Updates a `Ticket` object with the given `id`.
```typescript -await client.ticketing.tickets.partialUpdate("id", { - model: {}, -}); +await client.hris.employees.list(); ```
@@ -15506,15 +15313,7 @@ await client.ticketing.tickets.partialUpdate("id", {
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.ticketing.PatchedTicketEndpointRequest` +**request:** `Merge.hris.EmployeesListRequest`
@@ -15522,7 +15321,7 @@ await client.ticketing.tickets.partialUpdate("id", {
-**requestOptions:** `Tickets.RequestOptions` +**requestOptions:** `Employees.RequestOptions`
@@ -15533,7 +15332,7 @@ await client.ticketing.tickets.partialUpdate("id", {
-
client.ticketing.tickets.viewersList(ticketId, { ...params }) -> Merge.PaginatedViewerList +
client.hris.employees.create({ ...params }) -> Merge.EmployeeResponse
@@ -15545,7 +15344,7 @@ await client.ticketing.tickets.partialUpdate("id", {
-Returns a list of `Viewer` objects that point to a User id or Team id that is either an assignee or viewer on a `Ticket` with the given id. [Learn more.](https://help.merge.dev/en/articles/10333658-ticketing-access-control-list-acls) +Creates an `Employee` object with the given values.
@@ -15561,7 +15360,9 @@ Returns a list of `Viewer` objects that point to a User id or Team id that is ei
```typescript -await client.ticketing.tickets.viewersList("ticket_id"); +await client.hris.employees.create({ + model: {}, +}); ```
@@ -15577,15 +15378,7 @@ await client.ticketing.tickets.viewersList("ticket_id");
-**ticketId:** `string` - -
-
- -
-
- -**request:** `Merge.ticketing.TicketsViewersListRequest` +**request:** `Merge.hris.EmployeeEndpointRequest`
@@ -15593,7 +15386,7 @@ await client.ticketing.tickets.viewersList("ticket_id");
-**requestOptions:** `Tickets.RequestOptions` +**requestOptions:** `Employees.RequestOptions`
@@ -15604,7 +15397,7 @@ await client.ticketing.tickets.viewersList("ticket_id");
-
client.ticketing.tickets.metaPatchRetrieve(id) -> Merge.MetaResponse +
client.hris.employees.retrieve(id, { ...params }) -> Merge.Employee
@@ -15616,7 +15409,7 @@ await client.ticketing.tickets.viewersList("ticket_id");
-Returns metadata for `Ticket` PATCHs. +Returns an `Employee` object with the given `id`.
@@ -15632,7 +15425,7 @@ Returns metadata for `Ticket` PATCHs.
```typescript -await client.ticketing.tickets.metaPatchRetrieve("id"); +await client.hris.employees.retrieve("id"); ```
@@ -15656,7 +15449,15 @@ await client.ticketing.tickets.metaPatchRetrieve("id");
-**requestOptions:** `Tickets.RequestOptions` +**request:** `Merge.hris.EmployeesRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Employees.RequestOptions`
@@ -15667,7 +15468,7 @@ await client.ticketing.tickets.metaPatchRetrieve("id");
-
client.ticketing.tickets.metaPostRetrieve() -> Merge.MetaResponse +
client.hris.employees.ignoreCreate(modelId, { ...params }) -> void
@@ -15679,7 +15480,7 @@ await client.ticketing.tickets.metaPatchRetrieve("id");
-Returns metadata for `Ticket` POSTs. +Ignores a specific row based on the `model_id` in the url. These records will have their properties set to null, and will not be updated in future syncs. The "reason" and "message" fields in the request body will be stored for audit purposes.
@@ -15695,7 +15496,9 @@ Returns metadata for `Ticket` POSTs.
```typescript -await client.ticketing.tickets.metaPostRetrieve(); +await client.hris.employees.ignoreCreate("model_id", { + reason: "GENERAL_CUSTOMER_REQUEST", +}); ```
@@ -15711,7 +15514,23 @@ await client.ticketing.tickets.metaPostRetrieve();
-**requestOptions:** `Tickets.RequestOptions` +**modelId:** `string` + +
+
+ +
+
+ +**request:** `Merge.hris.IgnoreCommonModelRequest` + +
+
+ +
+
+ +**requestOptions:** `Employees.RequestOptions`
@@ -15722,7 +15541,7 @@ await client.ticketing.tickets.metaPostRetrieve();
-
client.ticketing.tickets.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList +
client.hris.employees.metaPostRetrieve() -> Merge.MetaResponse
@@ -15734,7 +15553,7 @@ await client.ticketing.tickets.metaPostRetrieve();
-Returns a list of `RemoteFieldClass` objects. +Returns metadata for `Employee` POSTs.
@@ -15750,7 +15569,7 @@ Returns a list of `RemoteFieldClass` objects.
```typescript -await client.ticketing.tickets.remoteFieldClassesList(); +await client.hris.employees.metaPostRetrieve(); ```
@@ -15766,15 +15585,7 @@ await client.ticketing.tickets.remoteFieldClassesList();
-**request:** `Merge.ticketing.TicketsRemoteFieldClassesListRequest` - -
-
- -
-
- -**requestOptions:** `Tickets.RequestOptions` +**requestOptions:** `Employees.RequestOptions`
@@ -15785,9 +15596,9 @@ await client.ticketing.tickets.remoteFieldClassesList();
-## Ticketing Users +## Hris EmployerBenefits -
client.ticketing.users.list({ ...params }) -> Merge.PaginatedUserList +
client.hris.employerBenefits.list({ ...params }) -> Merge.PaginatedEmployerBenefitList
@@ -15799,7 +15610,7 @@ await client.ticketing.tickets.remoteFieldClassesList();
-Returns a list of `User` objects. +Returns a list of `EmployerBenefit` objects.
@@ -15815,7 +15626,7 @@ Returns a list of `User` objects.
```typescript -await client.ticketing.users.list(); +await client.hris.employerBenefits.list(); ```
@@ -15831,7 +15642,7 @@ await client.ticketing.users.list();
-**request:** `Merge.ticketing.UsersListRequest` +**request:** `Merge.hris.EmployerBenefitsListRequest`
@@ -15839,7 +15650,7 @@ await client.ticketing.users.list();
-**requestOptions:** `Users.RequestOptions` +**requestOptions:** `EmployerBenefits.RequestOptions`
@@ -15850,7 +15661,7 @@ await client.ticketing.users.list();
-
client.ticketing.users.retrieve(id, { ...params }) -> Merge.User +
client.hris.employerBenefits.retrieve(id, { ...params }) -> Merge.EmployerBenefit
@@ -15862,7 +15673,7 @@ await client.ticketing.users.list();
-Returns a `User` object with the given `id`. +Returns an `EmployerBenefit` object with the given `id`.
@@ -15878,7 +15689,7 @@ Returns a `User` object with the given `id`.
```typescript -await client.ticketing.users.retrieve("id"); +await client.hris.employerBenefits.retrieve("id"); ```
@@ -15902,7 +15713,7 @@ await client.ticketing.users.retrieve("id");
-**request:** `Merge.ticketing.UsersRetrieveRequest` +**request:** `Merge.hris.EmployerBenefitsRetrieveRequest`
@@ -15910,7 +15721,7 @@ await client.ticketing.users.retrieve("id");
-**requestOptions:** `Users.RequestOptions` +**requestOptions:** `EmployerBenefits.RequestOptions`
@@ -15921,9 +15732,9 @@ await client.ticketing.users.retrieve("id");
-## Ticketing WebhookReceivers +## Hris Employments -
client.ticketing.webhookReceivers.list() -> Merge.WebhookReceiver[] +
client.hris.employments.list({ ...params }) -> Merge.PaginatedEmploymentList
@@ -15935,7 +15746,7 @@ await client.ticketing.users.retrieve("id");
-Returns a list of `WebhookReceiver` objects. +Returns a list of `Employment` objects.
@@ -15951,7 +15762,7 @@ Returns a list of `WebhookReceiver` objects.
```typescript -await client.ticketing.webhookReceivers.list(); +await client.hris.employments.list(); ```
@@ -15967,7 +15778,15 @@ await client.ticketing.webhookReceivers.list();
-**requestOptions:** `WebhookReceivers.RequestOptions` +**request:** `Merge.hris.EmploymentsListRequest` + +
+
+ +
+
+ +**requestOptions:** `Employments.RequestOptions`
@@ -15978,7 +15797,7 @@ await client.ticketing.webhookReceivers.list();
-
client.ticketing.webhookReceivers.create({ ...params }) -> Merge.WebhookReceiver +
client.hris.employments.retrieve(id, { ...params }) -> Merge.Employment
@@ -15990,7 +15809,7 @@ await client.ticketing.webhookReceivers.list();
-Creates a `WebhookReceiver` object with the given values. +Returns an `Employment` object with the given `id`.
@@ -16006,10 +15825,7 @@ Creates a `WebhookReceiver` object with the given values.
```typescript -await client.ticketing.webhookReceivers.create({ - event: "event", - isActive: true, -}); +await client.hris.employments.retrieve("id"); ```
@@ -16025,7 +15841,7 @@ await client.ticketing.webhookReceivers.create({
-**request:** `Merge.ticketing.WebhookReceiverRequest` +**id:** `string`
@@ -16033,7 +15849,15 @@ await client.ticketing.webhookReceivers.create({
-**requestOptions:** `WebhookReceivers.RequestOptions` +**request:** `Merge.hris.EmploymentsRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Employments.RequestOptions`
@@ -16044,9 +15868,9 @@ await client.ticketing.webhookReceivers.create({
-## Crm AccountDetails +## Hris FieldMapping -
client.crm.accountDetails.retrieve() -> Merge.AccountDetails +
client.hris.fieldMapping.fieldMappingsRetrieve({ ...params }) -> Merge.FieldMappingApiInstanceResponse
@@ -16058,7 +15882,7 @@ await client.ticketing.webhookReceivers.create({
-Get details for a linked account. +Get all Field Mappings for this Linked Account. Field Mappings are mappings between third-party Remote Fields and user defined Merge fields. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/).
@@ -16074,7 +15898,7 @@ Get details for a linked account.
```typescript -await client.crm.accountDetails.retrieve(); +await client.hris.fieldMapping.fieldMappingsRetrieve(); ```
@@ -16090,7 +15914,15 @@ await client.crm.accountDetails.retrieve();
-**requestOptions:** `AccountDetails.RequestOptions` +**request:** `Merge.hris.FieldMappingsRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `FieldMapping.RequestOptions`
@@ -16101,9 +15933,7 @@ await client.crm.accountDetails.retrieve();
-## Crm AccountToken - -
client.crm.accountToken.retrieve(publicToken) -> Merge.AccountToken +
client.hris.fieldMapping.fieldMappingsCreate({ ...params }) -> Merge.FieldMappingInstanceResponse
@@ -16115,7 +15945,7 @@ await client.crm.accountDetails.retrieve();
-Returns the account token for the end user with the provided public token. +Create new Field Mappings that will be available after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start.
@@ -16131,7 +15961,14 @@ Returns the account token for the end user with the provided public token.
```typescript -await client.crm.accountToken.retrieve("public_token"); +await client.hris.fieldMapping.fieldMappingsCreate({ + targetFieldName: "example_target_field_name", + targetFieldDescription: "this is a example description of the target field", + remoteFieldTraversalPath: ["example_remote_field"], + remoteMethod: "GET", + remoteUrlPath: "/example-url-path", + commonModelName: "ExampleCommonModel", +}); ```
@@ -16147,7 +15984,7 @@ await client.crm.accountToken.retrieve("public_token");
-**publicToken:** `string` +**request:** `Merge.hris.CreateFieldMappingRequest`
@@ -16155,7 +15992,7 @@ await client.crm.accountToken.retrieve("public_token");
-**requestOptions:** `AccountToken.RequestOptions` +**requestOptions:** `FieldMapping.RequestOptions`
@@ -16166,9 +16003,7 @@ await client.crm.accountToken.retrieve("public_token");
-## Crm Accounts - -
client.crm.accounts.list({ ...params }) -> Merge.PaginatedAccountList +
client.hris.fieldMapping.fieldMappingsDestroy(fieldMappingId) -> Merge.FieldMappingInstanceResponse
@@ -16180,7 +16015,7 @@ await client.crm.accountToken.retrieve("public_token");
-Returns a list of `Account` objects. +Deletes Field Mappings for a Linked Account. All data related to this Field Mapping will be deleted and these changes will be reflected after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start.
@@ -16196,7 +16031,7 @@ Returns a list of `Account` objects.
```typescript -await client.crm.accounts.list(); +await client.hris.fieldMapping.fieldMappingsDestroy("field_mapping_id"); ```
@@ -16212,7 +16047,7 @@ await client.crm.accounts.list();
-**request:** `Merge.crm.AccountsListRequest` +**fieldMappingId:** `string`
@@ -16220,7 +16055,7 @@ await client.crm.accounts.list();
-**requestOptions:** `Accounts.RequestOptions` +**requestOptions:** `FieldMapping.RequestOptions`
@@ -16231,7 +16066,7 @@ await client.crm.accounts.list();
-
client.crm.accounts.create({ ...params }) -> Merge.CrmAccountResponse +
client.hris.fieldMapping.fieldMappingsPartialUpdate(fieldMappingId, { ...params }) -> Merge.FieldMappingInstanceResponse
@@ -16243,7 +16078,7 @@ await client.crm.accounts.list();
-Creates an `Account` object with the given values. +Create or update existing Field Mappings for a Linked Account. Changes will be reflected after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start.
@@ -16259,9 +16094,7 @@ Creates an `Account` object with the given values.
```typescript -await client.crm.accounts.create({ - model: {}, -}); +await client.hris.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id"); ```
@@ -16277,7 +16110,7 @@ await client.crm.accounts.create({
-**request:** `Merge.crm.CrmAccountEndpointRequest` +**fieldMappingId:** `string`
@@ -16285,7 +16118,15 @@ await client.crm.accounts.create({
-**requestOptions:** `Accounts.RequestOptions` +**request:** `Merge.hris.PatchedEditFieldMappingRequest` + +
+
+ +
+
+ +**requestOptions:** `FieldMapping.RequestOptions`
@@ -16296,7 +16137,7 @@ await client.crm.accounts.create({
-
client.crm.accounts.retrieve(id, { ...params }) -> Merge.Account +
client.hris.fieldMapping.remoteFieldsRetrieve({ ...params }) -> Merge.RemoteFieldApiResponse
@@ -16308,7 +16149,7 @@ await client.crm.accounts.create({
-Returns an `Account` object with the given `id`. +Get all remote fields for a Linked Account. Remote fields are third-party fields that are accessible after initial sync if remote_data is enabled. You can use remote fields to override existing Merge fields or map a new Merge field. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/).
@@ -16324,7 +16165,7 @@ Returns an `Account` object with the given `id`.
```typescript -await client.crm.accounts.retrieve("id"); +await client.hris.fieldMapping.remoteFieldsRetrieve(); ```
@@ -16340,15 +16181,7 @@ await client.crm.accounts.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.crm.AccountsRetrieveRequest` +**request:** `Merge.hris.RemoteFieldsRetrieveRequest`
@@ -16356,7 +16189,7 @@ await client.crm.accounts.retrieve("id");
-**requestOptions:** `Accounts.RequestOptions` +**requestOptions:** `FieldMapping.RequestOptions`
@@ -16367,7 +16200,7 @@ await client.crm.accounts.retrieve("id");
-
client.crm.accounts.partialUpdate(id, { ...params }) -> Merge.CrmAccountResponse +
client.hris.fieldMapping.targetFieldsRetrieve() -> Merge.ExternalTargetFieldApiResponse
@@ -16379,7 +16212,7 @@ await client.crm.accounts.retrieve("id");
-Updates an `Account` object with the given `id`. +Get all organization-wide Target Fields, this will not include any Linked Account specific Target Fields. Organization-wide Target Fields are additional fields appended to the Merge Common Model for all Linked Accounts in a category. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/).
@@ -16395,9 +16228,7 @@ Updates an `Account` object with the given `id`.
```typescript -await client.crm.accounts.partialUpdate("id", { - model: {}, -}); +await client.hris.fieldMapping.targetFieldsRetrieve(); ```
@@ -16413,23 +16244,7 @@ await client.crm.accounts.partialUpdate("id", {
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.crm.PatchedCrmAccountEndpointRequest` - -
-
- -
-
- -**requestOptions:** `Accounts.RequestOptions` +**requestOptions:** `FieldMapping.RequestOptions`
@@ -16440,7 +16255,9 @@ await client.crm.accounts.partialUpdate("id", {
-
client.crm.accounts.metaPatchRetrieve(id) -> Merge.MetaResponse +## Hris GenerateKey + +
client.hris.generateKey.create({ ...params }) -> Merge.RemoteKey
@@ -16452,7 +16269,7 @@ await client.crm.accounts.partialUpdate("id", {
-Returns metadata for `CRMAccount` PATCHs. +Create a remote key.
@@ -16468,7 +16285,9 @@ Returns metadata for `CRMAccount` PATCHs.
```typescript -await client.crm.accounts.metaPatchRetrieve("id"); +await client.hris.generateKey.create({ + name: "Remote Deployment Key 1", +}); ```
@@ -16484,7 +16303,7 @@ await client.crm.accounts.metaPatchRetrieve("id");
-**id:** `string` +**request:** `Merge.hris.GenerateRemoteKeyRequest`
@@ -16492,7 +16311,7 @@ await client.crm.accounts.metaPatchRetrieve("id");
-**requestOptions:** `Accounts.RequestOptions` +**requestOptions:** `GenerateKey.RequestOptions`
@@ -16503,7 +16322,9 @@ await client.crm.accounts.metaPatchRetrieve("id");
-
client.crm.accounts.metaPostRetrieve() -> Merge.MetaResponse +## Hris Groups + +
client.hris.groups.list({ ...params }) -> Merge.PaginatedGroupList
@@ -16515,7 +16336,7 @@ await client.crm.accounts.metaPatchRetrieve("id");
-Returns metadata for `CRMAccount` POSTs. +Returns a list of `Group` objects.
@@ -16531,7 +16352,7 @@ Returns metadata for `CRMAccount` POSTs.
```typescript -await client.crm.accounts.metaPostRetrieve(); +await client.hris.groups.list(); ```
@@ -16547,7 +16368,15 @@ await client.crm.accounts.metaPostRetrieve();
-**requestOptions:** `Accounts.RequestOptions` +**request:** `Merge.hris.GroupsListRequest` + +
+
+ +
+
+ +**requestOptions:** `Groups.RequestOptions`
@@ -16558,7 +16387,7 @@ await client.crm.accounts.metaPostRetrieve();
-
client.crm.accounts.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList +
client.hris.groups.retrieve(id, { ...params }) -> Merge.Group
@@ -16570,7 +16399,7 @@ await client.crm.accounts.metaPostRetrieve();
-Returns a list of `RemoteFieldClass` objects. +Returns a `Group` object with the given `id`.
@@ -16586,7 +16415,7 @@ Returns a list of `RemoteFieldClass` objects.
```typescript -await client.crm.accounts.remoteFieldClassesList(); +await client.hris.groups.retrieve("id"); ```
@@ -16602,7 +16431,7 @@ await client.crm.accounts.remoteFieldClassesList();
-**request:** `Merge.crm.AccountsRemoteFieldClassesListRequest` +**id:** `string`
@@ -16610,7 +16439,15 @@ await client.crm.accounts.remoteFieldClassesList();
-**requestOptions:** `Accounts.RequestOptions` +**request:** `Merge.hris.GroupsRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Groups.RequestOptions`
@@ -16621,9 +16458,9 @@ await client.crm.accounts.remoteFieldClassesList();
-## Crm AsyncPassthrough +## Hris Issues -
client.crm.asyncPassthrough.create({ ...params }) -> Merge.AsyncPassthroughReciept +
client.hris.issues.list({ ...params }) -> Merge.PaginatedIssueList
@@ -16635,7 +16472,7 @@ await client.crm.accounts.remoteFieldClassesList();
-Asynchronously pull data from an endpoint not currently supported by Merge. +Gets all issues for Organization.
@@ -16651,10 +16488,7 @@ Asynchronously pull data from an endpoint not currently supported by Merge.
```typescript -await client.crm.asyncPassthrough.create({ - method: "GET", - path: "/scooters", -}); +await client.hris.issues.list(); ```
@@ -16670,7 +16504,7 @@ await client.crm.asyncPassthrough.create({
-**request:** `Merge.DataPassthroughRequest` +**request:** `Merge.hris.IssuesListRequest`
@@ -16678,7 +16512,7 @@ await client.crm.asyncPassthrough.create({
-**requestOptions:** `AsyncPassthrough.RequestOptions` +**requestOptions:** `Issues.RequestOptions`
@@ -16689,7 +16523,7 @@ await client.crm.asyncPassthrough.create({
-
client.crm.asyncPassthrough.retrieve(asyncPassthroughReceiptId) -> Merge.AsyncPassthroughRetrieveResponse +
client.hris.issues.retrieve(id) -> Merge.Issue
@@ -16701,7 +16535,7 @@ await client.crm.asyncPassthrough.create({
-Retrieves data from earlier async-passthrough POST request +Get a specific issue.
@@ -16717,7 +16551,7 @@ Retrieves data from earlier async-passthrough POST request
```typescript -await client.crm.asyncPassthrough.retrieve("async_passthrough_receipt_id"); +await client.hris.issues.retrieve("id"); ```
@@ -16733,7 +16567,7 @@ await client.crm.asyncPassthrough.retrieve("async_passthrough_receipt_id");
-**asyncPassthroughReceiptId:** `string` +**id:** `string`
@@ -16741,7 +16575,7 @@ await client.crm.asyncPassthrough.retrieve("async_passthrough_receipt_id");
-**requestOptions:** `AsyncPassthrough.RequestOptions` +**requestOptions:** `Issues.RequestOptions`
@@ -16752,9 +16586,9 @@ await client.crm.asyncPassthrough.retrieve("async_passthrough_receipt_id");
-## Crm AuditTrail +## Hris LinkToken -
client.crm.auditTrail.list({ ...params }) -> Merge.PaginatedAuditLogEventList +
client.hris.linkToken.create({ ...params }) -> Merge.LinkToken
@@ -16766,7 +16600,7 @@ await client.crm.asyncPassthrough.retrieve("async_passthrough_receipt_id");
-Gets a list of audit trail events. +Creates a link token to be used when linking a new end user.
@@ -16782,7 +16616,12 @@ Gets a list of audit trail events.
```typescript -await client.crm.auditTrail.list(); +await client.hris.linkToken.create({ + endUserEmailAddress: "example@gmail.com", + endUserOrganizationName: "Test Organization", + endUserOriginId: "12345", + categories: ["hris", "ats"], +}); ```
@@ -16798,7 +16637,7 @@ await client.crm.auditTrail.list();
-**request:** `Merge.crm.AuditTrailListRequest` +**request:** `Merge.hris.EndUserDetailsRequest`
@@ -16806,7 +16645,7 @@ await client.crm.auditTrail.list();
-**requestOptions:** `AuditTrail.RequestOptions` +**requestOptions:** `LinkToken.RequestOptions`
@@ -16817,9 +16656,9 @@ await client.crm.auditTrail.list();
-## Crm AvailableActions +## Hris LinkedAccounts -
client.crm.availableActions.retrieve() -> Merge.AvailableActions +
client.hris.linkedAccounts.list({ ...params }) -> Merge.PaginatedAccountDetailsAndActionsList
@@ -16831,7 +16670,7 @@ await client.crm.auditTrail.list();
-Returns a list of models and actions available for an account. +List linked accounts for your organization.
@@ -16847,7 +16686,7 @@ Returns a list of models and actions available for an account.
```typescript -await client.crm.availableActions.retrieve(); +await client.hris.linkedAccounts.list(); ```
@@ -16863,7 +16702,15 @@ await client.crm.availableActions.retrieve();
-**requestOptions:** `AvailableActions.RequestOptions` +**request:** `Merge.hris.LinkedAccountsListRequest` + +
+
+ +
+
+ +**requestOptions:** `LinkedAccounts.RequestOptions`
@@ -16874,9 +16721,9 @@ await client.crm.availableActions.retrieve();
-## Crm Contacts +## Hris Locations -
client.crm.contacts.list({ ...params }) -> Merge.PaginatedContactList +
client.hris.locations.list({ ...params }) -> Merge.PaginatedLocationList
@@ -16888,7 +16735,7 @@ await client.crm.availableActions.retrieve();
-Returns a list of `Contact` objects. +Returns a list of `Location` objects.
@@ -16904,7 +16751,7 @@ Returns a list of `Contact` objects.
```typescript -await client.crm.contacts.list(); +await client.hris.locations.list(); ```
@@ -16920,7 +16767,7 @@ await client.crm.contacts.list();
-**request:** `Merge.crm.ContactsListRequest` +**request:** `Merge.hris.LocationsListRequest`
@@ -16928,7 +16775,7 @@ await client.crm.contacts.list();
-**requestOptions:** `Contacts.RequestOptions` +**requestOptions:** `Locations.RequestOptions`
@@ -16939,7 +16786,7 @@ await client.crm.contacts.list();
-
client.crm.contacts.create({ ...params }) -> Merge.CrmContactResponse +
client.hris.locations.retrieve(id, { ...params }) -> Merge.Location
@@ -16951,7 +16798,7 @@ await client.crm.contacts.list();
-Creates a `Contact` object with the given values. +Returns a `Location` object with the given `id`.
@@ -16967,9 +16814,7 @@ Creates a `Contact` object with the given values.
```typescript -await client.crm.contacts.create({ - model: {}, -}); +await client.hris.locations.retrieve("id"); ```
@@ -16985,7 +16830,7 @@ await client.crm.contacts.create({
-**request:** `Merge.crm.CrmContactEndpointRequest` +**id:** `string`
@@ -16993,7 +16838,15 @@ await client.crm.contacts.create({
-**requestOptions:** `Contacts.RequestOptions` +**request:** `Merge.hris.LocationsRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Locations.RequestOptions`
@@ -17004,7 +16857,9 @@ await client.crm.contacts.create({
-
client.crm.contacts.retrieve(id, { ...params }) -> Merge.Contact +## Hris Passthrough + +
client.hris.passthrough.create({ ...params }) -> Merge.RemoteResponse
@@ -17016,7 +16871,7 @@ await client.crm.contacts.create({
-Returns a `Contact` object with the given `id`. +Pull data from an endpoint not currently supported by Merge.
@@ -17032,7 +16887,10 @@ Returns a `Contact` object with the given `id`.
```typescript -await client.crm.contacts.retrieve("id"); +await client.hris.passthrough.create({ + method: "GET", + path: "/scooters", +}); ```
@@ -17048,15 +16906,7 @@ await client.crm.contacts.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.crm.ContactsRetrieveRequest` +**request:** `Merge.DataPassthroughRequest`
@@ -17064,7 +16914,7 @@ await client.crm.contacts.retrieve("id");
-**requestOptions:** `Contacts.RequestOptions` +**requestOptions:** `Passthrough.RequestOptions`
@@ -17075,7 +16925,9 @@ await client.crm.contacts.retrieve("id");
-
client.crm.contacts.partialUpdate(id, { ...params }) -> Merge.CrmContactResponse +## Hris PayGroups + +
client.hris.payGroups.list({ ...params }) -> Merge.PaginatedPayGroupList
@@ -17087,7 +16939,7 @@ await client.crm.contacts.retrieve("id");
-Updates a `Contact` object with the given `id`. +Returns a list of `PayGroup` objects.
@@ -17103,9 +16955,7 @@ Updates a `Contact` object with the given `id`.
```typescript -await client.crm.contacts.partialUpdate("id", { - model: {}, -}); +await client.hris.payGroups.list(); ```
@@ -17121,15 +16971,7 @@ await client.crm.contacts.partialUpdate("id", {
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.crm.PatchedCrmContactEndpointRequest` +**request:** `Merge.hris.PayGroupsListRequest`
@@ -17137,7 +16979,7 @@ await client.crm.contacts.partialUpdate("id", {
-**requestOptions:** `Contacts.RequestOptions` +**requestOptions:** `PayGroups.RequestOptions`
@@ -17148,7 +16990,7 @@ await client.crm.contacts.partialUpdate("id", {
-
client.crm.contacts.ignoreCreate(modelId, { ...params }) -> void +
client.hris.payGroups.retrieve(id, { ...params }) -> Merge.PayGroup
@@ -17160,7 +17002,7 @@ await client.crm.contacts.partialUpdate("id", {
-Ignores a specific row based on the `model_id` in the url. These records will have their properties set to null, and will not be updated in future syncs. The "reason" and "message" fields in the request body will be stored for audit purposes. +Returns a `PayGroup` object with the given `id`.
@@ -17176,9 +17018,7 @@ Ignores a specific row based on the `model_id` in the url. These records will ha
```typescript -await client.crm.contacts.ignoreCreate("model_id", { - reason: "GENERAL_CUSTOMER_REQUEST", -}); +await client.hris.payGroups.retrieve("id"); ```
@@ -17194,7 +17034,7 @@ await client.crm.contacts.ignoreCreate("model_id", {
-**modelId:** `string` +**id:** `string`
@@ -17202,7 +17042,7 @@ await client.crm.contacts.ignoreCreate("model_id", {
-**request:** `Merge.IgnoreCommonModelRequest` +**request:** `Merge.hris.PayGroupsRetrieveRequest`
@@ -17210,7 +17050,7 @@ await client.crm.contacts.ignoreCreate("model_id", {
-**requestOptions:** `Contacts.RequestOptions` +**requestOptions:** `PayGroups.RequestOptions`
@@ -17221,7 +17061,9 @@ await client.crm.contacts.ignoreCreate("model_id", {
-
client.crm.contacts.metaPatchRetrieve(id) -> Merge.MetaResponse +## Hris PayrollRuns + +
client.hris.payrollRuns.list({ ...params }) -> Merge.PaginatedPayrollRunList
@@ -17233,7 +17075,7 @@ await client.crm.contacts.ignoreCreate("model_id", {
-Returns metadata for `CRMContact` PATCHs. +Returns a list of `PayrollRun` objects.
@@ -17249,7 +17091,7 @@ Returns metadata for `CRMContact` PATCHs.
```typescript -await client.crm.contacts.metaPatchRetrieve("id"); +await client.hris.payrollRuns.list(); ```
@@ -17265,7 +17107,7 @@ await client.crm.contacts.metaPatchRetrieve("id");
-**id:** `string` +**request:** `Merge.hris.PayrollRunsListRequest`
@@ -17273,7 +17115,7 @@ await client.crm.contacts.metaPatchRetrieve("id");
-**requestOptions:** `Contacts.RequestOptions` +**requestOptions:** `PayrollRuns.RequestOptions`
@@ -17284,7 +17126,7 @@ await client.crm.contacts.metaPatchRetrieve("id");
-
client.crm.contacts.metaPostRetrieve() -> Merge.MetaResponse +
client.hris.payrollRuns.retrieve(id, { ...params }) -> Merge.PayrollRun
@@ -17296,7 +17138,7 @@ await client.crm.contacts.metaPatchRetrieve("id");
-Returns metadata for `CRMContact` POSTs. +Returns a `PayrollRun` object with the given `id`.
@@ -17312,7 +17154,7 @@ Returns metadata for `CRMContact` POSTs.
```typescript -await client.crm.contacts.metaPostRetrieve(); +await client.hris.payrollRuns.retrieve("id"); ```
@@ -17328,7 +17170,23 @@ await client.crm.contacts.metaPostRetrieve();
-**requestOptions:** `Contacts.RequestOptions` +**id:** `string` + +
+
+ +
+
+ +**request:** `Merge.hris.PayrollRunsRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `PayrollRuns.RequestOptions`
@@ -17339,7 +17197,9 @@ await client.crm.contacts.metaPostRetrieve();
-
client.crm.contacts.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList +## Hris RegenerateKey + +
client.hris.regenerateKey.create({ ...params }) -> Merge.RemoteKey
@@ -17351,7 +17211,7 @@ await client.crm.contacts.metaPostRetrieve();
-Returns a list of `RemoteFieldClass` objects. +Exchange remote keys.
@@ -17367,7 +17227,9 @@ Returns a list of `RemoteFieldClass` objects.
```typescript -await client.crm.contacts.remoteFieldClassesList(); +await client.hris.regenerateKey.create({ + name: "Remote Deployment Key 1", +}); ```
@@ -17383,7 +17245,7 @@ await client.crm.contacts.remoteFieldClassesList();
-**request:** `Merge.crm.ContactsRemoteFieldClassesListRequest` +**request:** `Merge.hris.RemoteKeyForRegenerationRequest`
@@ -17391,7 +17253,7 @@ await client.crm.contacts.remoteFieldClassesList();
-**requestOptions:** `Contacts.RequestOptions` +**requestOptions:** `RegenerateKey.RequestOptions`
@@ -17402,9 +17264,9 @@ await client.crm.contacts.remoteFieldClassesList();
-## Crm CustomObjectClasses +## Hris SyncStatus -
client.crm.customObjectClasses.list({ ...params }) -> Merge.PaginatedCustomObjectClassList +
client.hris.syncStatus.list({ ...params }) -> Merge.PaginatedSyncStatusList
@@ -17416,7 +17278,7 @@ await client.crm.contacts.remoteFieldClassesList();
-Returns a list of `CustomObjectClass` objects. +Get sync status for the current sync and the most recently finished sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` represents the most recent time any sync completed. These timestamps may correspond to different sync instances which may result in a sync start time being later than a separate sync completed time. To ensure you are retrieving the latest available data reference the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses).
@@ -17432,7 +17294,7 @@ Returns a list of `CustomObjectClass` objects.
```typescript -await client.crm.customObjectClasses.list(); +await client.hris.syncStatus.list(); ```
@@ -17448,7 +17310,7 @@ await client.crm.customObjectClasses.list();
-**request:** `Merge.crm.CustomObjectClassesListRequest` +**request:** `Merge.hris.SyncStatusListRequest`
@@ -17456,7 +17318,7 @@ await client.crm.customObjectClasses.list();
-**requestOptions:** `CustomObjectClasses.RequestOptions` +**requestOptions:** `SyncStatus.RequestOptions`
@@ -17467,7 +17329,9 @@ await client.crm.customObjectClasses.list();
-
client.crm.customObjectClasses.retrieve(id, { ...params }) -> Merge.CustomObjectClass +## Hris ForceResync + +
client.hris.forceResync.syncStatusResyncCreate() -> Merge.SyncStatus[]
@@ -17479,7 +17343,7 @@ await client.crm.customObjectClasses.list();
-Returns a `CustomObjectClass` object with the given `id`. +Force re-sync of all models. This endpoint is available for monthly, quarterly, and highest sync frequency customers on the Professional or Enterprise plans. Doing so will consume a sync credit for the relevant linked account. Force re-syncs can also be triggered manually in the Merge Dashboard and is available for all customers.
@@ -17495,7 +17359,7 @@ Returns a `CustomObjectClass` object with the given `id`.
```typescript -await client.crm.customObjectClasses.retrieve("id"); +await client.hris.forceResync.syncStatusResyncCreate(); ```
@@ -17511,36 +17375,83 @@ await client.crm.customObjectClasses.retrieve("id");
-**id:** `string` +**requestOptions:** `ForceResync.RequestOptions`
+ +
+ + + +
+ +## Hris Teams +
client.hris.teams.list({ ...params }) -> Merge.PaginatedTeamList
-**request:** `Merge.crm.CustomObjectClassesRetrieveRequest` +#### 📝 Description -
-
+
+
-**requestOptions:** `CustomObjectClasses.RequestOptions` +Returns a list of `Team` objects.
+#### 🔌 Usage + +
+
+ +
+
+ +```typescript +await client.hris.teams.list(); +``` + +
+
-
-## Crm AssociationTypes +#### ⚙️ Parameters + +
+
-
client.crm.associationTypes.customObjectClassesAssociationTypesList(customObjectClassId, { ...params }) -> Merge.PaginatedAssociationTypeList +
+
+ +**request:** `Merge.hris.TeamsListRequest` + +
+
+ +
+
+ +**requestOptions:** `Teams.RequestOptions` + +
+
+
+
+ + + +
+ +
client.hris.teams.retrieve(id, { ...params }) -> Merge.Team
@@ -17552,7 +17463,7 @@ await client.crm.customObjectClasses.retrieve("id");
-Returns a list of `AssociationType` objects. +Returns a `Team` object with the given `id`.
@@ -17568,7 +17479,7 @@ Returns a list of `AssociationType` objects.
```typescript -await client.crm.associationTypes.customObjectClassesAssociationTypesList("custom_object_class_id"); +await client.hris.teams.retrieve("id"); ```
@@ -17584,7 +17495,7 @@ await client.crm.associationTypes.customObjectClassesAssociationTypesList("custo
-**customObjectClassId:** `string` +**id:** `string`
@@ -17592,7 +17503,7 @@ await client.crm.associationTypes.customObjectClassesAssociationTypesList("custo
-**request:** `Merge.crm.CustomObjectClassesAssociationTypesListRequest` +**request:** `Merge.hris.TeamsRetrieveRequest`
@@ -17600,7 +17511,7 @@ await client.crm.associationTypes.customObjectClassesAssociationTypesList("custo
-**requestOptions:** `AssociationTypes.RequestOptions` +**requestOptions:** `Teams.RequestOptions`
@@ -17611,7 +17522,9 @@ await client.crm.associationTypes.customObjectClassesAssociationTypesList("custo
-
client.crm.associationTypes.customObjectClassesAssociationTypesCreate(customObjectClassId, { ...params }) -> Merge.CrmAssociationTypeResponse +## Hris TimeOff + +
client.hris.timeOff.list({ ...params }) -> Merge.PaginatedTimeOffList
@@ -17623,7 +17536,7 @@ await client.crm.associationTypes.customObjectClassesAssociationTypesList("custo
-Creates an `AssociationType` object with the given values. +Returns a list of `TimeOff` objects.
@@ -17639,21 +17552,7 @@ Creates an `AssociationType` object with the given values.
```typescript -await client.crm.associationTypes.customObjectClassesAssociationTypesCreate("custom_object_class_id", { - model: { - sourceObjectClass: { - id: "id", - originType: "CUSTOM_OBJECT", - }, - targetObjectClasses: [ - { - id: "id", - originType: "CUSTOM_OBJECT", - }, - ], - remoteKeyName: "remote_key_name", - }, -}); +await client.hris.timeOff.list(); ```
@@ -17669,15 +17568,7 @@ await client.crm.associationTypes.customObjectClassesAssociationTypesCreate("cus
-**customObjectClassId:** `string` - -
-
- -
-
- -**request:** `Merge.crm.CrmAssociationTypeEndpointRequest` +**request:** `Merge.hris.TimeOffListRequest`
@@ -17685,7 +17576,7 @@ await client.crm.associationTypes.customObjectClassesAssociationTypesCreate("cus
-**requestOptions:** `AssociationTypes.RequestOptions` +**requestOptions:** `TimeOff.RequestOptions`
@@ -17696,7 +17587,7 @@ await client.crm.associationTypes.customObjectClassesAssociationTypesCreate("cus
-
client.crm.associationTypes.customObjectClassesAssociationTypesRetrieve(customObjectClassId, id, { ...params }) -> Merge.AssociationType +
client.hris.timeOff.create({ ...params }) -> Merge.TimeOffResponse
@@ -17708,7 +17599,7 @@ await client.crm.associationTypes.customObjectClassesAssociationTypesCreate("cus
-Returns an `AssociationType` object with the given `id`. +Creates a `TimeOff` object with the given values.
@@ -17724,7 +17615,9 @@ Returns an `AssociationType` object with the given `id`.
```typescript -await client.crm.associationTypes.customObjectClassesAssociationTypesRetrieve("custom_object_class_id", "id"); +await client.hris.timeOff.create({ + model: {}, +}); ```
@@ -17740,10 +17633,65 @@ await client.crm.associationTypes.customObjectClassesAssociationTypesRetrieve("c
-**customObjectClassId:** `string` +**request:** `Merge.hris.TimeOffEndpointRequest` + +
+
+ +
+
+ +**requestOptions:** `TimeOff.RequestOptions` + +
+
+ +
+ + + +
+ +
client.hris.timeOff.retrieve(id, { ...params }) -> Merge.TimeOff +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Returns a `TimeOff` object with the given `id`.
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```typescript +await client.hris.timeOff.retrieve("id"); +``` + +
+
+
+
+ +#### ⚙️ Parameters + +
+
@@ -17756,7 +17704,7 @@ await client.crm.associationTypes.customObjectClassesAssociationTypesRetrieve("c
-**request:** `Merge.crm.CustomObjectClassesAssociationTypesRetrieveRequest` +**request:** `Merge.hris.TimeOffRetrieveRequest`
@@ -17764,7 +17712,7 @@ await client.crm.associationTypes.customObjectClassesAssociationTypesRetrieve("c
-**requestOptions:** `AssociationTypes.RequestOptions` +**requestOptions:** `TimeOff.RequestOptions`
@@ -17775,7 +17723,7 @@ await client.crm.associationTypes.customObjectClassesAssociationTypesRetrieve("c
-
client.crm.associationTypes.customObjectClassesAssociationTypesMetaPostRetrieve(customObjectClassId) -> Merge.MetaResponse +
client.hris.timeOff.metaPostRetrieve() -> Merge.MetaResponse
@@ -17787,7 +17735,7 @@ await client.crm.associationTypes.customObjectClassesAssociationTypesRetrieve("c
-Returns metadata for `CRMAssociationType` POSTs. +Returns metadata for `TimeOff` POSTs.
@@ -17803,7 +17751,7 @@ Returns metadata for `CRMAssociationType` POSTs.
```typescript -await client.crm.associationTypes.customObjectClassesAssociationTypesMetaPostRetrieve("custom_object_class_id"); +await client.hris.timeOff.metaPostRetrieve(); ```
@@ -17819,15 +17767,7 @@ await client.crm.associationTypes.customObjectClassesAssociationTypesMetaPostRet
-**customObjectClassId:** `string` - -
-
- -
-
- -**requestOptions:** `AssociationTypes.RequestOptions` +**requestOptions:** `TimeOff.RequestOptions`
@@ -17838,9 +17778,9 @@ await client.crm.associationTypes.customObjectClassesAssociationTypesMetaPostRet
-## Crm CustomObjects +## Hris TimeOffBalances -
client.crm.customObjects.customObjectClassesCustomObjectsList(customObjectClassId, { ...params }) -> Merge.PaginatedCustomObjectList +
client.hris.timeOffBalances.list({ ...params }) -> Merge.PaginatedTimeOffBalanceList
@@ -17852,7 +17792,7 @@ await client.crm.associationTypes.customObjectClassesAssociationTypesMetaPostRet
-Returns a list of `CustomObject` objects. +Returns a list of `TimeOffBalance` objects.
@@ -17868,7 +17808,7 @@ Returns a list of `CustomObject` objects.
```typescript -await client.crm.customObjects.customObjectClassesCustomObjectsList("custom_object_class_id"); +await client.hris.timeOffBalances.list(); ```
@@ -17884,15 +17824,7 @@ await client.crm.customObjects.customObjectClassesCustomObjectsList("custom_obje
-**customObjectClassId:** `string` - -
-
- -
-
- -**request:** `Merge.crm.CustomObjectClassesCustomObjectsListRequest` +**request:** `Merge.hris.TimeOffBalancesListRequest`
@@ -17900,7 +17832,7 @@ await client.crm.customObjects.customObjectClassesCustomObjectsList("custom_obje
-**requestOptions:** `CustomObjects.RequestOptions` +**requestOptions:** `TimeOffBalances.RequestOptions`
@@ -17911,7 +17843,7 @@ await client.crm.customObjects.customObjectClassesCustomObjectsList("custom_obje
-
client.crm.customObjects.customObjectClassesCustomObjectsCreate(customObjectClassId, { ...params }) -> Merge.CrmCustomObjectResponse +
client.hris.timeOffBalances.retrieve(id, { ...params }) -> Merge.TimeOffBalance
@@ -17923,7 +17855,7 @@ await client.crm.customObjects.customObjectClassesCustomObjectsList("custom_obje
-Creates a `CustomObject` object with the given values. +Returns a `TimeOffBalance` object with the given `id`.
@@ -17939,13 +17871,7 @@ Creates a `CustomObject` object with the given values.
```typescript -await client.crm.customObjects.customObjectClassesCustomObjectsCreate("custom_object_class_id", { - model: { - fields: { - test_field: "hello", - }, - }, -}); +await client.hris.timeOffBalances.retrieve("id"); ```
@@ -17961,7 +17887,7 @@ await client.crm.customObjects.customObjectClassesCustomObjectsCreate("custom_ob
-**customObjectClassId:** `string` +**id:** `string`
@@ -17969,7 +17895,7 @@ await client.crm.customObjects.customObjectClassesCustomObjectsCreate("custom_ob
-**request:** `Merge.crm.CrmCustomObjectEndpointRequest` +**request:** `Merge.hris.TimeOffBalancesRetrieveRequest`
@@ -17977,7 +17903,7 @@ await client.crm.customObjects.customObjectClassesCustomObjectsCreate("custom_ob
-**requestOptions:** `CustomObjects.RequestOptions` +**requestOptions:** `TimeOffBalances.RequestOptions`
@@ -17988,7 +17914,9 @@ await client.crm.customObjects.customObjectClassesCustomObjectsCreate("custom_ob
-
client.crm.customObjects.customObjectClassesCustomObjectsRetrieve(customObjectClassId, id, { ...params }) -> Merge.CustomObject +## Hris TimesheetEntries + +
client.hris.timesheetEntries.list({ ...params }) -> Merge.PaginatedTimesheetEntryList
@@ -18000,7 +17928,7 @@ await client.crm.customObjects.customObjectClassesCustomObjectsCreate("custom_ob
-Returns a `CustomObject` object with the given `id`. +Returns a list of `TimesheetEntry` objects.
@@ -18016,7 +17944,7 @@ Returns a `CustomObject` object with the given `id`.
```typescript -await client.crm.customObjects.customObjectClassesCustomObjectsRetrieve("custom_object_class_id", "id"); +await client.hris.timesheetEntries.list(); ```
@@ -18032,23 +17960,7 @@ await client.crm.customObjects.customObjectClassesCustomObjectsRetrieve("custom_
-**customObjectClassId:** `string` - -
-
- -
-
- -**id:** `string` - -
-
- -
-
- -**request:** `Merge.crm.CustomObjectClassesCustomObjectsRetrieveRequest` +**request:** `Merge.hris.TimesheetEntriesListRequest`
@@ -18056,7 +17968,7 @@ await client.crm.customObjects.customObjectClassesCustomObjectsRetrieve("custom_
-**requestOptions:** `CustomObjects.RequestOptions` +**requestOptions:** `TimesheetEntries.RequestOptions`
@@ -18067,7 +17979,7 @@ await client.crm.customObjects.customObjectClassesCustomObjectsRetrieve("custom_
-
client.crm.customObjects.customObjectClassesCustomObjectsMetaPostRetrieve(customObjectClassId) -> Merge.MetaResponse +
client.hris.timesheetEntries.create({ ...params }) -> Merge.TimesheetEntryResponse
@@ -18079,7 +17991,7 @@ await client.crm.customObjects.customObjectClassesCustomObjectsRetrieve("custom_
-Returns metadata for `CRMCustomObject` POSTs. +Creates a `TimesheetEntry` object with the given values.
@@ -18095,7 +18007,9 @@ Returns metadata for `CRMCustomObject` POSTs.
```typescript -await client.crm.customObjects.customObjectClassesCustomObjectsMetaPostRetrieve("custom_object_class_id"); +await client.hris.timesheetEntries.create({ + model: {}, +}); ```
@@ -18111,7 +18025,7 @@ await client.crm.customObjects.customObjectClassesCustomObjectsMetaPostRetrieve(
-**customObjectClassId:** `string` +**request:** `Merge.hris.TimesheetEntryEndpointRequest`
@@ -18119,7 +18033,7 @@ await client.crm.customObjects.customObjectClassesCustomObjectsMetaPostRetrieve(
-**requestOptions:** `CustomObjects.RequestOptions` +**requestOptions:** `TimesheetEntries.RequestOptions`
@@ -18130,7 +18044,7 @@ await client.crm.customObjects.customObjectClassesCustomObjectsMetaPostRetrieve(
-
client.crm.customObjects.customObjectClassesCustomObjectsRemoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList +
client.hris.timesheetEntries.retrieve(id, { ...params }) -> Merge.TimesheetEntry
@@ -18142,7 +18056,7 @@ await client.crm.customObjects.customObjectClassesCustomObjectsMetaPostRetrieve(
-Returns a list of `RemoteFieldClass` objects. +Returns a `TimesheetEntry` object with the given `id`.
@@ -18158,7 +18072,7 @@ Returns a list of `RemoteFieldClass` objects.
```typescript -await client.crm.customObjects.customObjectClassesCustomObjectsRemoteFieldClassesList(); +await client.hris.timesheetEntries.retrieve("id"); ```
@@ -18174,7 +18088,7 @@ await client.crm.customObjects.customObjectClassesCustomObjectsRemoteFieldClasse
-**request:** `Merge.crm.CustomObjectClassesCustomObjectsRemoteFieldClassesListRequest` +**id:** `string`
@@ -18182,7 +18096,15 @@ await client.crm.customObjects.customObjectClassesCustomObjectsRemoteFieldClasse
-**requestOptions:** `CustomObjects.RequestOptions` +**request:** `Merge.hris.TimesheetEntriesRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `TimesheetEntries.RequestOptions`
@@ -18193,9 +18115,7 @@ await client.crm.customObjects.customObjectClassesCustomObjectsRemoteFieldClasse
-## Crm Associations - -
client.crm.associations.customObjectClassesCustomObjectsAssociationsList(customObjectClassId, objectId, { ...params }) -> Merge.PaginatedAssociationList +
client.hris.timesheetEntries.metaPostRetrieve() -> Merge.MetaResponse
@@ -18207,7 +18127,7 @@ await client.crm.customObjects.customObjectClassesCustomObjectsRemoteFieldClasse
-Returns a list of `Association` objects. +Returns metadata for `TimesheetEntry` POSTs.
@@ -18223,7 +18143,7 @@ Returns a list of `Association` objects.
```typescript -await client.crm.associations.customObjectClassesCustomObjectsAssociationsList("custom_object_class_id", "object_id"); +await client.hris.timesheetEntries.metaPostRetrieve(); ```
@@ -18239,31 +18159,64 @@ await client.crm.associations.customObjectClassesCustomObjectsAssociationsList("
-**customObjectClassId:** `string` +**requestOptions:** `TimesheetEntries.RequestOptions`
+ +
+ + + +
+ +## Hris WebhookReceivers +
client.hris.webhookReceivers.list() -> Merge.WebhookReceiver[]
-**objectId:** `string` +#### 📝 Description + +
+
+ +
+
+ +Returns a list of `WebhookReceiver` objects.
+
+
+ +#### 🔌 Usage
-**request:** `Merge.crm.CustomObjectClassesCustomObjectsAssociationsListRequest` +
+
+ +```typescript +await client.hris.webhookReceivers.list(); +```
+
+
+ +#### ⚙️ Parameters
-**requestOptions:** `Associations.RequestOptions` +
+
+ +**requestOptions:** `WebhookReceivers.RequestOptions`
@@ -18274,7 +18227,7 @@ await client.crm.associations.customObjectClassesCustomObjectsAssociationsList("
-
client.crm.associations.customObjectClassesCustomObjectsAssociationsUpdate(associationTypeId, sourceClassId, sourceObjectId, targetClassId, targetObjectId, { ...params }) -> Merge.Association +
client.hris.webhookReceivers.create({ ...params }) -> Merge.WebhookReceiver
@@ -18286,7 +18239,7 @@ await client.crm.associations.customObjectClassesCustomObjectsAssociationsList("
-Creates an Association between `source_object_id` and `target_object_id` of type `association_type_id`. +Creates a `WebhookReceiver` object with the given values.
@@ -18302,13 +18255,10 @@ Creates an Association between `source_object_id` and `target_object_id` of type
```typescript -await client.crm.associations.customObjectClassesCustomObjectsAssociationsUpdate( - "association_type_id", - "source_class_id", - "source_object_id", - "target_class_id", - "target_object_id", -); +await client.hris.webhookReceivers.create({ + event: "event", + isActive: true, +}); ```
@@ -18324,7 +18274,7 @@ await client.crm.associations.customObjectClassesCustomObjectsAssociationsUpdate
-**associationTypeId:** `string` +**request:** `Merge.hris.WebhookReceiverRequest`
@@ -18332,47 +18282,64 @@ await client.crm.associations.customObjectClassesCustomObjectsAssociationsUpdate
-**sourceClassId:** `string` +**requestOptions:** `WebhookReceivers.RequestOptions`
- -
-
- -**sourceObjectId:** `string` +
+
+
+ +## Ticketing AccountDetails +
client.ticketing.accountDetails.retrieve() -> Merge.AccountDetails
-**targetClassId:** `string` +#### 📝 Description -
-
+
+
-**targetObjectId:** `string` +Get details for a linked account. +
+
+#### 🔌 Usage +
-**request:** `Merge.crm.CustomObjectClassesCustomObjectsAssociationsUpdateRequest` +
+
+ +```typescript +await client.ticketing.accountDetails.retrieve(); +``` +
+
+#### ⚙️ Parameters +
-**requestOptions:** `Associations.RequestOptions` +
+
+ +**requestOptions:** `AccountDetails.RequestOptions`
@@ -18383,9 +18350,9 @@ await client.crm.associations.customObjectClassesCustomObjectsAssociationsUpdate
-## Crm Scopes +## Ticketing AccountToken -
client.crm.scopes.defaultScopesRetrieve() -> Merge.CommonModelScopeApi +
client.ticketing.accountToken.retrieve(publicToken) -> Merge.AccountToken
@@ -18397,7 +18364,7 @@ await client.crm.associations.customObjectClassesCustomObjectsAssociationsUpdate
-Get the default permissions for Merge Common Models and fields across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). +Returns the account token for the end user with the provided public token.
@@ -18413,7 +18380,7 @@ Get the default permissions for Merge Common Models and fields across all Linked
```typescript -await client.crm.scopes.defaultScopesRetrieve(); +await client.ticketing.accountToken.retrieve("public_token"); ```
@@ -18429,7 +18396,15 @@ await client.crm.scopes.defaultScopesRetrieve();
-**requestOptions:** `Scopes.RequestOptions` +**publicToken:** `string` + +
+
+ +
+
+ +**requestOptions:** `AccountToken.RequestOptions`
@@ -18440,7 +18415,9 @@ await client.crm.scopes.defaultScopesRetrieve();
-
client.crm.scopes.linkedAccountScopesRetrieve() -> Merge.CommonModelScopeApi +## Ticketing Accounts + +
client.ticketing.accounts.list({ ...params }) -> Merge.PaginatedAccountList
@@ -18452,7 +18429,7 @@ await client.crm.scopes.defaultScopesRetrieve();
-Get all available permissions for Merge Common Models and fields for a single Linked Account. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). +Returns a list of `Account` objects.
@@ -18468,7 +18445,7 @@ Get all available permissions for Merge Common Models and fields for a single Li
```typescript -await client.crm.scopes.linkedAccountScopesRetrieve(); +await client.ticketing.accounts.list(); ```
@@ -18484,7 +18461,15 @@ await client.crm.scopes.linkedAccountScopesRetrieve();
-**requestOptions:** `Scopes.RequestOptions` +**request:** `Merge.ticketing.AccountsListRequest` + +
+
+ +
+
+ +**requestOptions:** `Accounts.RequestOptions`
@@ -18495,7 +18480,7 @@ await client.crm.scopes.linkedAccountScopesRetrieve();
-
client.crm.scopes.linkedAccountScopesCreate({ ...params }) -> Merge.CommonModelScopeApi +
client.ticketing.accounts.retrieve(id, { ...params }) -> Merge.Account
@@ -18507,7 +18492,7 @@ await client.crm.scopes.linkedAccountScopesRetrieve();
-Update permissions for any Common Model or field for a single Linked Account. Any Scopes not set in this POST request will inherit the default Scopes. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) +Returns an `Account` object with the given `id`.
@@ -18523,33 +18508,7 @@ Update permissions for any Common Model or field for a single Linked Account. An
```typescript -await client.crm.scopes.linkedAccountScopesCreate({ - commonModels: [ - { - modelName: "Employee", - modelPermissions: { - READ: { - isEnabled: true, - }, - WRITE: { - isEnabled: false, - }, - }, - fieldPermissions: { - enabledFields: ["avatar", "home_location"], - disabledFields: ["work_location"], - }, - }, - { - modelName: "Benefit", - modelPermissions: { - WRITE: { - isEnabled: false, - }, - }, - }, - ], -}); +await client.ticketing.accounts.retrieve("id"); ```
@@ -18565,7 +18524,7 @@ await client.crm.scopes.linkedAccountScopesCreate({
-**request:** `Merge.crm.LinkedAccountCommonModelScopeDeserializerRequest` +**id:** `string`
@@ -18573,7 +18532,15 @@ await client.crm.scopes.linkedAccountScopesCreate({
-**requestOptions:** `Scopes.RequestOptions` +**request:** `Merge.ticketing.AccountsRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Accounts.RequestOptions`
@@ -18584,9 +18551,9 @@ await client.crm.scopes.linkedAccountScopesCreate({
-## Crm DeleteAccount +## Ticketing AsyncPassthrough -
client.crm.deleteAccount.delete() -> void +
client.ticketing.asyncPassthrough.create({ ...params }) -> Merge.AsyncPassthroughReciept
@@ -18598,7 +18565,7 @@ await client.crm.scopes.linkedAccountScopesCreate({
-Delete a linked account. +Asynchronously pull data from an endpoint not currently supported by Merge.
@@ -18614,7 +18581,10 @@ Delete a linked account.
```typescript -await client.crm.deleteAccount.delete(); +await client.ticketing.asyncPassthrough.create({ + method: "GET", + path: "/scooters", +}); ```
@@ -18630,7 +18600,15 @@ await client.crm.deleteAccount.delete();
-**requestOptions:** `DeleteAccount.RequestOptions` +**request:** `Merge.DataPassthroughRequest` + +
+
+ +
+
+ +**requestOptions:** `AsyncPassthrough.RequestOptions`
@@ -18641,9 +18619,7 @@ await client.crm.deleteAccount.delete();
-## Crm EngagementTypes - -
client.crm.engagementTypes.list({ ...params }) -> Merge.PaginatedEngagementTypeList +
client.ticketing.asyncPassthrough.retrieve(asyncPassthroughReceiptId) -> Merge.AsyncPassthroughRetrieveResponse
@@ -18655,7 +18631,7 @@ await client.crm.deleteAccount.delete();
-Returns a list of `EngagementType` objects. +Retrieves data from earlier async-passthrough POST request
@@ -18671,7 +18647,7 @@ Returns a list of `EngagementType` objects.
```typescript -await client.crm.engagementTypes.list(); +await client.ticketing.asyncPassthrough.retrieve("async_passthrough_receipt_id"); ```
@@ -18687,7 +18663,7 @@ await client.crm.engagementTypes.list();
-**request:** `Merge.crm.EngagementTypesListRequest` +**asyncPassthroughReceiptId:** `string`
@@ -18695,7 +18671,7 @@ await client.crm.engagementTypes.list();
-**requestOptions:** `EngagementTypes.RequestOptions` +**requestOptions:** `AsyncPassthrough.RequestOptions`
@@ -18706,7 +18682,9 @@ await client.crm.engagementTypes.list();
-
client.crm.engagementTypes.retrieve(id, { ...params }) -> Merge.EngagementType +## Ticketing Attachments + +
client.ticketing.attachments.list({ ...params }) -> Merge.PaginatedAttachmentList
@@ -18718,7 +18696,7 @@ await client.crm.engagementTypes.list();
-Returns an `EngagementType` object with the given `id`. +Returns a list of `Attachment` objects.
@@ -18734,7 +18712,7 @@ Returns an `EngagementType` object with the given `id`.
```typescript -await client.crm.engagementTypes.retrieve("id"); +await client.ticketing.attachments.list(); ```
@@ -18750,15 +18728,7 @@ await client.crm.engagementTypes.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.crm.EngagementTypesRetrieveRequest` +**request:** `Merge.ticketing.AttachmentsListRequest`
@@ -18766,7 +18736,7 @@ await client.crm.engagementTypes.retrieve("id");
-**requestOptions:** `EngagementTypes.RequestOptions` +**requestOptions:** `Attachments.RequestOptions`
@@ -18777,7 +18747,7 @@ await client.crm.engagementTypes.retrieve("id");
-
client.crm.engagementTypes.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList +
client.ticketing.attachments.create({ ...params }) -> Merge.TicketingAttachmentResponse
@@ -18789,7 +18759,7 @@ await client.crm.engagementTypes.retrieve("id");
-Returns a list of `RemoteFieldClass` objects. +Creates an `Attachment` object with the given values.
@@ -18805,7 +18775,9 @@ Returns a list of `RemoteFieldClass` objects.
```typescript -await client.crm.engagementTypes.remoteFieldClassesList(); +await client.ticketing.attachments.create({ + model: {}, +}); ```
@@ -18821,7 +18793,7 @@ await client.crm.engagementTypes.remoteFieldClassesList();
-**request:** `Merge.crm.EngagementTypesRemoteFieldClassesListRequest` +**request:** `Merge.ticketing.TicketingAttachmentEndpointRequest`
@@ -18829,7 +18801,7 @@ await client.crm.engagementTypes.remoteFieldClassesList();
-**requestOptions:** `EngagementTypes.RequestOptions` +**requestOptions:** `Attachments.RequestOptions`
@@ -18840,9 +18812,7 @@ await client.crm.engagementTypes.remoteFieldClassesList();
-## Crm Engagements - -
client.crm.engagements.list({ ...params }) -> Merge.PaginatedEngagementList +
client.ticketing.attachments.retrieve(id, { ...params }) -> Merge.Attachment
@@ -18854,7 +18824,7 @@ await client.crm.engagementTypes.remoteFieldClassesList();
-Returns a list of `Engagement` objects. +Returns an `Attachment` object with the given `id`.
@@ -18870,7 +18840,7 @@ Returns a list of `Engagement` objects.
```typescript -await client.crm.engagements.list(); +await client.ticketing.attachments.retrieve("id"); ```
@@ -18886,7 +18856,7 @@ await client.crm.engagements.list();
-**request:** `Merge.crm.EngagementsListRequest` +**id:** `string`
@@ -18894,7 +18864,15 @@ await client.crm.engagements.list();
-**requestOptions:** `Engagements.RequestOptions` +**request:** `Merge.ticketing.AttachmentsRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Attachments.RequestOptions`
@@ -18905,7 +18883,7 @@ await client.crm.engagements.list();
-
client.crm.engagements.create({ ...params }) -> Merge.EngagementResponse +
client.ticketing.attachments.metaPostRetrieve() -> Merge.MetaResponse
@@ -18917,7 +18895,7 @@ await client.crm.engagements.list();
-Creates an `Engagement` object with the given values. +Returns metadata for `TicketingAttachment` POSTs.
@@ -18933,9 +18911,7 @@ Creates an `Engagement` object with the given values.
```typescript -await client.crm.engagements.create({ - model: {}, -}); +await client.ticketing.attachments.metaPostRetrieve(); ```
@@ -18951,15 +18927,7 @@ await client.crm.engagements.create({
-**request:** `Merge.crm.EngagementEndpointRequest` - -
-
- -
-
- -**requestOptions:** `Engagements.RequestOptions` +**requestOptions:** `Attachments.RequestOptions`
@@ -18970,7 +18938,9 @@ await client.crm.engagements.create({
-
client.crm.engagements.retrieve(id, { ...params }) -> Merge.Engagement +## Ticketing AuditTrail + +
client.ticketing.auditTrail.list({ ...params }) -> Merge.PaginatedAuditLogEventList
@@ -18982,7 +18952,7 @@ await client.crm.engagements.create({
-Returns an `Engagement` object with the given `id`. +Gets a list of audit trail events.
@@ -18998,7 +18968,7 @@ Returns an `Engagement` object with the given `id`.
```typescript -await client.crm.engagements.retrieve("id"); +await client.ticketing.auditTrail.list(); ```
@@ -19014,15 +18984,7 @@ await client.crm.engagements.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.crm.EngagementsRetrieveRequest` +**request:** `Merge.ticketing.AuditTrailListRequest`
@@ -19030,7 +18992,7 @@ await client.crm.engagements.retrieve("id");
-**requestOptions:** `Engagements.RequestOptions` +**requestOptions:** `AuditTrail.RequestOptions`
@@ -19041,7 +19003,9 @@ await client.crm.engagements.retrieve("id");
-
client.crm.engagements.partialUpdate(id, { ...params }) -> Merge.EngagementResponse +## Ticketing AvailableActions + +
client.ticketing.availableActions.retrieve() -> Merge.AvailableActions
@@ -19053,7 +19017,7 @@ await client.crm.engagements.retrieve("id");
-Updates an `Engagement` object with the given `id`. +Returns a list of models and actions available for an account.
@@ -19069,9 +19033,7 @@ Updates an `Engagement` object with the given `id`.
```typescript -await client.crm.engagements.partialUpdate("id", { - model: {}, -}); +await client.ticketing.availableActions.retrieve(); ```
@@ -19087,23 +19049,7 @@ await client.crm.engagements.partialUpdate("id", {
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.crm.PatchedEngagementEndpointRequest` - -
-
- -
-
- -**requestOptions:** `Engagements.RequestOptions` +**requestOptions:** `AvailableActions.RequestOptions`
@@ -19114,7 +19060,9 @@ await client.crm.engagements.partialUpdate("id", {
-
client.crm.engagements.metaPatchRetrieve(id) -> Merge.MetaResponse +## Ticketing Collections + +
client.ticketing.collections.list({ ...params }) -> Merge.PaginatedCollectionList
@@ -19126,7 +19074,7 @@ await client.crm.engagements.partialUpdate("id", {
-Returns metadata for `Engagement` PATCHs. +Returns a list of `Collection` objects.
@@ -19142,7 +19090,7 @@ Returns metadata for `Engagement` PATCHs.
```typescript -await client.crm.engagements.metaPatchRetrieve("id"); +await client.ticketing.collections.list(); ```
@@ -19158,7 +19106,7 @@ await client.crm.engagements.metaPatchRetrieve("id");
-**id:** `string` +**request:** `Merge.ticketing.CollectionsListRequest`
@@ -19166,7 +19114,7 @@ await client.crm.engagements.metaPatchRetrieve("id");
-**requestOptions:** `Engagements.RequestOptions` +**requestOptions:** `Collections.RequestOptions`
@@ -19177,7 +19125,7 @@ await client.crm.engagements.metaPatchRetrieve("id");
-
client.crm.engagements.metaPostRetrieve() -> Merge.MetaResponse +
client.ticketing.collections.viewersList(collectionId, { ...params }) -> Merge.PaginatedViewerList
@@ -19189,7 +19137,7 @@ await client.crm.engagements.metaPatchRetrieve("id");
-Returns metadata for `Engagement` POSTs. +Returns a list of `Viewer` objects that point to a User id or Team id that is either an assignee or viewer on a `Collection` with the given id. [Learn more.](https://help.merge.dev/en/articles/10333658-ticketing-access-control-list-acls)
@@ -19205,7 +19153,7 @@ Returns metadata for `Engagement` POSTs.
```typescript -await client.crm.engagements.metaPostRetrieve(); +await client.ticketing.collections.viewersList("collection_id"); ```
@@ -19221,7 +19169,23 @@ await client.crm.engagements.metaPostRetrieve();
-**requestOptions:** `Engagements.RequestOptions` +**collectionId:** `string` + +
+
+ +
+
+ +**request:** `Merge.ticketing.CollectionsViewersListRequest` + +
+
+ +
+
+ +**requestOptions:** `Collections.RequestOptions`
@@ -19232,7 +19196,7 @@ await client.crm.engagements.metaPostRetrieve();
-
client.crm.engagements.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList +
client.ticketing.collections.retrieve(id, { ...params }) -> Merge.Collection
@@ -19244,7 +19208,7 @@ await client.crm.engagements.metaPostRetrieve();
-Returns a list of `RemoteFieldClass` objects. +Returns a `Collection` object with the given `id`.
@@ -19260,7 +19224,7 @@ Returns a list of `RemoteFieldClass` objects.
```typescript -await client.crm.engagements.remoteFieldClassesList(); +await client.ticketing.collections.retrieve("id"); ```
@@ -19276,7 +19240,7 @@ await client.crm.engagements.remoteFieldClassesList();
-**request:** `Merge.crm.EngagementsRemoteFieldClassesListRequest` +**id:** `string`
@@ -19284,7 +19248,15 @@ await client.crm.engagements.remoteFieldClassesList();
-**requestOptions:** `Engagements.RequestOptions` +**request:** `Merge.ticketing.CollectionsRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Collections.RequestOptions`
@@ -19295,9 +19267,9 @@ await client.crm.engagements.remoteFieldClassesList();
-## Crm FieldMapping +## Ticketing Comments -
client.crm.fieldMapping.fieldMappingsRetrieve({ ...params }) -> Merge.FieldMappingApiInstanceResponse +
client.ticketing.comments.list({ ...params }) -> Merge.PaginatedCommentList
@@ -19309,7 +19281,7 @@ await client.crm.engagements.remoteFieldClassesList();
-Get all Field Mappings for this Linked Account. Field Mappings are mappings between third-party Remote Fields and user defined Merge fields. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). +Returns a list of `Comment` objects.
@@ -19325,7 +19297,7 @@ Get all Field Mappings for this Linked Account. Field Mappings are mappings betw
```typescript -await client.crm.fieldMapping.fieldMappingsRetrieve(); +await client.ticketing.comments.list(); ```
@@ -19341,7 +19313,7 @@ await client.crm.fieldMapping.fieldMappingsRetrieve();
-**request:** `Merge.crm.FieldMappingsRetrieveRequest` +**request:** `Merge.ticketing.CommentsListRequest`
@@ -19349,7 +19321,7 @@ await client.crm.fieldMapping.fieldMappingsRetrieve();
-**requestOptions:** `FieldMapping.RequestOptions` +**requestOptions:** `Comments.RequestOptions`
@@ -19360,7 +19332,7 @@ await client.crm.fieldMapping.fieldMappingsRetrieve();
-
client.crm.fieldMapping.fieldMappingsCreate({ ...params }) -> Merge.FieldMappingInstanceResponse +
client.ticketing.comments.create({ ...params }) -> Merge.CommentResponse
@@ -19372,7 +19344,7 @@ await client.crm.fieldMapping.fieldMappingsRetrieve();
-Create new Field Mappings that will be available after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start. +Creates a `Comment` object with the given values.
@@ -19388,13 +19360,8 @@ Create new Field Mappings that will be available after the next scheduled sync.
```typescript -await client.crm.fieldMapping.fieldMappingsCreate({ - targetFieldName: "example_target_field_name", - targetFieldDescription: "this is a example description of the target field", - remoteFieldTraversalPath: ["example_remote_field"], - remoteMethod: "GET", - remoteUrlPath: "/example-url-path", - commonModelName: "ExampleCommonModel", +await client.ticketing.comments.create({ + model: {}, }); ``` @@ -19411,7 +19378,7 @@ await client.crm.fieldMapping.fieldMappingsCreate({
-**request:** `Merge.crm.CreateFieldMappingRequest` +**request:** `Merge.ticketing.CommentEndpointRequest`
@@ -19419,7 +19386,7 @@ await client.crm.fieldMapping.fieldMappingsCreate({
-**requestOptions:** `FieldMapping.RequestOptions` +**requestOptions:** `Comments.RequestOptions`
@@ -19430,7 +19397,7 @@ await client.crm.fieldMapping.fieldMappingsCreate({
-
client.crm.fieldMapping.fieldMappingsDestroy(fieldMappingId) -> Merge.FieldMappingInstanceResponse +
client.ticketing.comments.retrieve(id, { ...params }) -> Merge.Comment
@@ -19442,7 +19409,7 @@ await client.crm.fieldMapping.fieldMappingsCreate({
-Deletes Field Mappings for a Linked Account. All data related to this Field Mapping will be deleted and these changes will be reflected after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start. +Returns a `Comment` object with the given `id`.
@@ -19458,7 +19425,7 @@ Deletes Field Mappings for a Linked Account. All data related to this Field Mapp
```typescript -await client.crm.fieldMapping.fieldMappingsDestroy("field_mapping_id"); +await client.ticketing.comments.retrieve("id"); ```
@@ -19474,7 +19441,7 @@ await client.crm.fieldMapping.fieldMappingsDestroy("field_mapping_id");
-**fieldMappingId:** `string` +**id:** `string`
@@ -19482,7 +19449,15 @@ await client.crm.fieldMapping.fieldMappingsDestroy("field_mapping_id");
-**requestOptions:** `FieldMapping.RequestOptions` +**request:** `Merge.ticketing.CommentsRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Comments.RequestOptions`
@@ -19493,7 +19468,7 @@ await client.crm.fieldMapping.fieldMappingsDestroy("field_mapping_id");
-
client.crm.fieldMapping.fieldMappingsPartialUpdate(fieldMappingId, { ...params }) -> Merge.FieldMappingInstanceResponse +
client.ticketing.comments.metaPostRetrieve() -> Merge.MetaResponse
@@ -19505,7 +19480,7 @@ await client.crm.fieldMapping.fieldMappingsDestroy("field_mapping_id");
-Create or update existing Field Mappings for a Linked Account. Changes will be reflected after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start. +Returns metadata for `Comment` POSTs.
@@ -19515,45 +19490,29 @@ Create or update existing Field Mappings for a Linked Account. Changes will be r #### 🔌 Usage
-
- -
-
- -```typescript -await client.crm.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id"); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**fieldMappingId:** `string` - -
-
+
-**request:** `Merge.crm.PatchedEditFieldMappingRequest` +```typescript +await client.ticketing.comments.metaPostRetrieve(); +```
+
+
+ +#### ⚙️ Parameters
-**requestOptions:** `FieldMapping.RequestOptions` +
+
+ +**requestOptions:** `Comments.RequestOptions`
@@ -19564,7 +19523,9 @@ await client.crm.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id");
-
client.crm.fieldMapping.remoteFieldsRetrieve({ ...params }) -> Merge.RemoteFieldApiResponse +## Ticketing Contacts + +
client.ticketing.contacts.list({ ...params }) -> Merge.PaginatedContactList
@@ -19576,7 +19537,7 @@ await client.crm.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id");
-Get all remote fields for a Linked Account. Remote fields are third-party fields that are accessible after initial sync if remote_data is enabled. You can use remote fields to override existing Merge fields or map a new Merge field. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). +Returns a list of `Contact` objects.
@@ -19592,7 +19553,7 @@ Get all remote fields for a Linked Account. Remote fields are third-party fields
```typescript -await client.crm.fieldMapping.remoteFieldsRetrieve(); +await client.ticketing.contacts.list(); ```
@@ -19608,7 +19569,7 @@ await client.crm.fieldMapping.remoteFieldsRetrieve();
-**request:** `Merge.crm.RemoteFieldsRetrieveRequest` +**request:** `Merge.ticketing.ContactsListRequest`
@@ -19616,7 +19577,7 @@ await client.crm.fieldMapping.remoteFieldsRetrieve();
-**requestOptions:** `FieldMapping.RequestOptions` +**requestOptions:** `Contacts.RequestOptions`
@@ -19627,7 +19588,7 @@ await client.crm.fieldMapping.remoteFieldsRetrieve();
-
client.crm.fieldMapping.targetFieldsRetrieve() -> Merge.ExternalTargetFieldApiResponse +
client.ticketing.contacts.create({ ...params }) -> Merge.TicketingContactResponse
@@ -19639,7 +19600,7 @@ await client.crm.fieldMapping.remoteFieldsRetrieve();
-Get all organization-wide Target Fields, this will not include any Linked Account specific Target Fields. Organization-wide Target Fields are additional fields appended to the Merge Common Model for all Linked Accounts in a category. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/). +Creates a `Contact` object with the given values.
@@ -19655,7 +19616,9 @@ Get all organization-wide Target Fields, this will not include any Linked Accoun
```typescript -await client.crm.fieldMapping.targetFieldsRetrieve(); +await client.ticketing.contacts.create({ + model: {}, +}); ```
@@ -19671,7 +19634,15 @@ await client.crm.fieldMapping.targetFieldsRetrieve();
-**requestOptions:** `FieldMapping.RequestOptions` +**request:** `Merge.ticketing.TicketingContactEndpointRequest` + +
+
+ +
+
+ +**requestOptions:** `Contacts.RequestOptions`
@@ -19682,9 +19653,7 @@ await client.crm.fieldMapping.targetFieldsRetrieve();
-## Crm GenerateKey - -
client.crm.generateKey.create({ ...params }) -> Merge.RemoteKey +
client.ticketing.contacts.retrieve(id, { ...params }) -> Merge.Contact
@@ -19696,7 +19665,7 @@ await client.crm.fieldMapping.targetFieldsRetrieve();
-Create a remote key. +Returns a `Contact` object with the given `id`.
@@ -19712,9 +19681,7 @@ Create a remote key.
```typescript -await client.crm.generateKey.create({ - name: "Remote Deployment Key 1", -}); +await client.ticketing.contacts.retrieve("id"); ```
@@ -19730,7 +19697,7 @@ await client.crm.generateKey.create({
-**request:** `Merge.crm.GenerateRemoteKeyRequest` +**id:** `string`
@@ -19738,7 +19705,15 @@ await client.crm.generateKey.create({
-**requestOptions:** `GenerateKey.RequestOptions` +**request:** `Merge.ticketing.ContactsRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Contacts.RequestOptions`
@@ -19749,9 +19724,7 @@ await client.crm.generateKey.create({
-## Crm Issues - -
client.crm.issues.list({ ...params }) -> Merge.PaginatedIssueList +
client.ticketing.contacts.metaPostRetrieve() -> Merge.MetaResponse
@@ -19763,7 +19736,7 @@ await client.crm.generateKey.create({
-Gets all issues for Organization. +Returns metadata for `TicketingContact` POSTs.
@@ -19779,7 +19752,7 @@ Gets all issues for Organization.
```typescript -await client.crm.issues.list(); +await client.ticketing.contacts.metaPostRetrieve(); ```
@@ -19795,15 +19768,7 @@ await client.crm.issues.list();
-**request:** `Merge.crm.IssuesListRequest` - -
-
- -
-
- -**requestOptions:** `Issues.RequestOptions` +**requestOptions:** `Contacts.RequestOptions`
@@ -19814,7 +19779,9 @@ await client.crm.issues.list();
-
client.crm.issues.retrieve(id) -> Merge.Issue +## Ticketing Scopes + +
client.ticketing.scopes.defaultScopesRetrieve() -> Merge.CommonModelScopeApi
@@ -19826,7 +19793,7 @@ await client.crm.issues.list();
-Get a specific issue. +Get the default permissions for Merge Common Models and fields across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes).
@@ -19842,7 +19809,7 @@ Get a specific issue.
```typescript -await client.crm.issues.retrieve("id"); +await client.ticketing.scopes.defaultScopesRetrieve(); ```
@@ -19858,15 +19825,7 @@ await client.crm.issues.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**requestOptions:** `Issues.RequestOptions` +**requestOptions:** `Scopes.RequestOptions`
@@ -19877,9 +19836,7 @@ await client.crm.issues.retrieve("id");
-## Crm Leads - -
client.crm.leads.list({ ...params }) -> Merge.PaginatedLeadList +
client.ticketing.scopes.linkedAccountScopesRetrieve() -> Merge.CommonModelScopeApi
@@ -19891,7 +19848,7 @@ await client.crm.issues.retrieve("id");
-Returns a list of `Lead` objects. +Get all available permissions for Merge Common Models and fields for a single Linked Account. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes).
@@ -19907,7 +19864,7 @@ Returns a list of `Lead` objects.
```typescript -await client.crm.leads.list(); +await client.ticketing.scopes.linkedAccountScopesRetrieve(); ```
@@ -19923,15 +19880,7 @@ await client.crm.leads.list();
-**request:** `Merge.crm.LeadsListRequest` - -
-
- -
-
- -**requestOptions:** `Leads.RequestOptions` +**requestOptions:** `Scopes.RequestOptions`
@@ -19942,7 +19891,7 @@ await client.crm.leads.list();
-
client.crm.leads.create({ ...params }) -> Merge.LeadResponse +
client.ticketing.scopes.linkedAccountScopesCreate({ ...params }) -> Merge.CommonModelScopeApi
@@ -19954,7 +19903,7 @@ await client.crm.leads.list();
-Creates a `Lead` object with the given values. +Update permissions for any Common Model or field for a single Linked Account. Any Scopes not set in this POST request will inherit the default Scopes. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes)
@@ -19970,8 +19919,32 @@ Creates a `Lead` object with the given values.
```typescript -await client.crm.leads.create({ - model: {}, +await client.ticketing.scopes.linkedAccountScopesCreate({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: ["avatar", "home_location"], + disabledFields: ["work_location"], + }, + }, + { + modelName: "Benefit", + modelPermissions: { + WRITE: { + isEnabled: false, + }, + }, + }, + ], }); ``` @@ -19988,7 +19961,7 @@ await client.crm.leads.create({
-**request:** `Merge.crm.LeadEndpointRequest` +**request:** `Merge.ticketing.LinkedAccountCommonModelScopeDeserializerRequest`
@@ -19996,7 +19969,7 @@ await client.crm.leads.create({
-**requestOptions:** `Leads.RequestOptions` +**requestOptions:** `Scopes.RequestOptions`
@@ -20007,7 +19980,9 @@ await client.crm.leads.create({
-
client.crm.leads.retrieve(id, { ...params }) -> Merge.Lead +## Ticketing DeleteAccount + +
client.ticketing.deleteAccount.delete() -> void
@@ -20019,7 +19994,7 @@ await client.crm.leads.create({
-Returns a `Lead` object with the given `id`. +Delete a linked account.
@@ -20035,7 +20010,7 @@ Returns a `Lead` object with the given `id`.
```typescript -await client.crm.leads.retrieve("id"); +await client.ticketing.deleteAccount.delete(); ```
@@ -20051,23 +20026,7 @@ await client.crm.leads.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.crm.LeadsRetrieveRequest` - -
-
- -
-
- -**requestOptions:** `Leads.RequestOptions` +**requestOptions:** `DeleteAccount.RequestOptions`
@@ -20078,7 +20037,9 @@ await client.crm.leads.retrieve("id");
-
client.crm.leads.metaPostRetrieve() -> Merge.MetaResponse +## Ticketing FieldMapping + +
client.ticketing.fieldMapping.fieldMappingsRetrieve({ ...params }) -> Merge.FieldMappingApiInstanceResponse
@@ -20090,7 +20051,7 @@ await client.crm.leads.retrieve("id");
-Returns metadata for `Lead` POSTs. +Get all Field Mappings for this Linked Account. Field Mappings are mappings between third-party Remote Fields and user defined Merge fields. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/).
@@ -20106,7 +20067,7 @@ Returns metadata for `Lead` POSTs.
```typescript -await client.crm.leads.metaPostRetrieve(); +await client.ticketing.fieldMapping.fieldMappingsRetrieve(); ```
@@ -20122,7 +20083,15 @@ await client.crm.leads.metaPostRetrieve();
-**requestOptions:** `Leads.RequestOptions` +**request:** `Merge.ticketing.FieldMappingsRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `FieldMapping.RequestOptions`
@@ -20133,7 +20102,7 @@ await client.crm.leads.metaPostRetrieve();
-
client.crm.leads.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList +
client.ticketing.fieldMapping.fieldMappingsCreate({ ...params }) -> Merge.FieldMappingInstanceResponse
@@ -20145,7 +20114,7 @@ await client.crm.leads.metaPostRetrieve();
-Returns a list of `RemoteFieldClass` objects. +Create new Field Mappings that will be available after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start.
@@ -20161,7 +20130,14 @@ Returns a list of `RemoteFieldClass` objects.
```typescript -await client.crm.leads.remoteFieldClassesList(); +await client.ticketing.fieldMapping.fieldMappingsCreate({ + targetFieldName: "example_target_field_name", + targetFieldDescription: "this is a example description of the target field", + remoteFieldTraversalPath: ["example_remote_field"], + remoteMethod: "GET", + remoteUrlPath: "/example-url-path", + commonModelName: "ExampleCommonModel", +}); ```
@@ -20177,7 +20153,7 @@ await client.crm.leads.remoteFieldClassesList();
-**request:** `Merge.crm.LeadsRemoteFieldClassesListRequest` +**request:** `Merge.ticketing.CreateFieldMappingRequest`
@@ -20185,7 +20161,7 @@ await client.crm.leads.remoteFieldClassesList();
-**requestOptions:** `Leads.RequestOptions` +**requestOptions:** `FieldMapping.RequestOptions`
@@ -20196,9 +20172,7 @@ await client.crm.leads.remoteFieldClassesList();
-## Crm LinkToken - -
client.crm.linkToken.create({ ...params }) -> Merge.LinkToken +
client.ticketing.fieldMapping.fieldMappingsDestroy(fieldMappingId) -> Merge.FieldMappingInstanceResponse
@@ -20210,7 +20184,7 @@ await client.crm.leads.remoteFieldClassesList();
-Creates a link token to be used when linking a new end user. +Deletes Field Mappings for a Linked Account. All data related to this Field Mapping will be deleted and these changes will be reflected after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start.
@@ -20226,12 +20200,7 @@ Creates a link token to be used when linking a new end user.
```typescript -await client.crm.linkToken.create({ - endUserEmailAddress: "example@gmail.com", - endUserOrganizationName: "Test Organization", - endUserOriginId: "12345", - categories: ["hris", "ats"], -}); +await client.ticketing.fieldMapping.fieldMappingsDestroy("field_mapping_id"); ```
@@ -20247,7 +20216,7 @@ await client.crm.linkToken.create({
-**request:** `Merge.crm.EndUserDetailsRequest` +**fieldMappingId:** `string`
@@ -20255,7 +20224,7 @@ await client.crm.linkToken.create({
-**requestOptions:** `LinkToken.RequestOptions` +**requestOptions:** `FieldMapping.RequestOptions`
@@ -20266,9 +20235,7 @@ await client.crm.linkToken.create({
-## Crm LinkedAccounts - -
client.crm.linkedAccounts.list({ ...params }) -> Merge.PaginatedAccountDetailsAndActionsList +
client.ticketing.fieldMapping.fieldMappingsPartialUpdate(fieldMappingId, { ...params }) -> Merge.FieldMappingInstanceResponse
@@ -20280,7 +20247,7 @@ await client.crm.linkToken.create({
-List linked accounts for your organization. +Create or update existing Field Mappings for a Linked Account. Changes will be reflected after the next scheduled sync. This will cause the next sync for this Linked Account to sync **ALL** data from start.
@@ -20296,7 +20263,7 @@ List linked accounts for your organization.
```typescript -await client.crm.linkedAccounts.list(); +await client.ticketing.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id"); ```
@@ -20312,7 +20279,7 @@ await client.crm.linkedAccounts.list();
-**request:** `Merge.crm.LinkedAccountsListRequest` +**fieldMappingId:** `string`
@@ -20320,7 +20287,15 @@ await client.crm.linkedAccounts.list();
-**requestOptions:** `LinkedAccounts.RequestOptions` +**request:** `Merge.ticketing.PatchedEditFieldMappingRequest` + +
+
+ +
+
+ +**requestOptions:** `FieldMapping.RequestOptions`
@@ -20331,9 +20306,7 @@ await client.crm.linkedAccounts.list();
-## Crm Notes - -
client.crm.notes.list({ ...params }) -> Merge.PaginatedNoteList +
client.ticketing.fieldMapping.remoteFieldsRetrieve({ ...params }) -> Merge.RemoteFieldApiResponse
@@ -20345,7 +20318,7 @@ await client.crm.linkedAccounts.list();
-Returns a list of `Note` objects. +Get all remote fields for a Linked Account. Remote fields are third-party fields that are accessible after initial sync if remote_data is enabled. You can use remote fields to override existing Merge fields or map a new Merge field. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/).
@@ -20361,7 +20334,7 @@ Returns a list of `Note` objects.
```typescript -await client.crm.notes.list(); +await client.ticketing.fieldMapping.remoteFieldsRetrieve(); ```
@@ -20377,7 +20350,7 @@ await client.crm.notes.list();
-**request:** `Merge.crm.NotesListRequest` +**request:** `Merge.ticketing.RemoteFieldsRetrieveRequest`
@@ -20385,7 +20358,7 @@ await client.crm.notes.list();
-**requestOptions:** `Notes.RequestOptions` +**requestOptions:** `FieldMapping.RequestOptions`
@@ -20396,7 +20369,7 @@ await client.crm.notes.list();
-
client.crm.notes.create({ ...params }) -> Merge.NoteResponse +
client.ticketing.fieldMapping.targetFieldsRetrieve() -> Merge.ExternalTargetFieldApiResponse
@@ -20408,7 +20381,7 @@ await client.crm.notes.list();
-Creates a `Note` object with the given values. +Get all organization-wide Target Fields, this will not include any Linked Account specific Target Fields. Organization-wide Target Fields are additional fields appended to the Merge Common Model for all Linked Accounts in a category. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/target-fields/).
@@ -20424,9 +20397,7 @@ Creates a `Note` object with the given values.
```typescript -await client.crm.notes.create({ - model: {}, -}); +await client.ticketing.fieldMapping.targetFieldsRetrieve(); ```
@@ -20442,15 +20413,7 @@ await client.crm.notes.create({
-**request:** `Merge.crm.NoteEndpointRequest` - -
-
- -
-
- -**requestOptions:** `Notes.RequestOptions` +**requestOptions:** `FieldMapping.RequestOptions`
@@ -20461,7 +20424,9 @@ await client.crm.notes.create({
-
client.crm.notes.retrieve(id, { ...params }) -> Merge.Note +## Ticketing GenerateKey + +
client.ticketing.generateKey.create({ ...params }) -> Merge.RemoteKey
@@ -20473,7 +20438,7 @@ await client.crm.notes.create({
-Returns a `Note` object with the given `id`. +Create a remote key.
@@ -20489,7 +20454,9 @@ Returns a `Note` object with the given `id`.
```typescript -await client.crm.notes.retrieve("id"); +await client.ticketing.generateKey.create({ + name: "Remote Deployment Key 1", +}); ```
@@ -20505,15 +20472,7 @@ await client.crm.notes.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.crm.NotesRetrieveRequest` +**request:** `Merge.ticketing.GenerateRemoteKeyRequest`
@@ -20521,7 +20480,7 @@ await client.crm.notes.retrieve("id");
-**requestOptions:** `Notes.RequestOptions` +**requestOptions:** `GenerateKey.RequestOptions`
@@ -20532,7 +20491,9 @@ await client.crm.notes.retrieve("id");
-
client.crm.notes.metaPostRetrieve() -> Merge.MetaResponse +## Ticketing Issues + +
client.ticketing.issues.list({ ...params }) -> Merge.PaginatedIssueList
@@ -20544,7 +20505,7 @@ await client.crm.notes.retrieve("id");
-Returns metadata for `Note` POSTs. +Gets all issues for Organization.
@@ -20560,7 +20521,7 @@ Returns metadata for `Note` POSTs.
```typescript -await client.crm.notes.metaPostRetrieve(); +await client.ticketing.issues.list(); ```
@@ -20576,7 +20537,15 @@ await client.crm.notes.metaPostRetrieve();
-**requestOptions:** `Notes.RequestOptions` +**request:** `Merge.ticketing.IssuesListRequest` + +
+
+ +
+
+ +**requestOptions:** `Issues.RequestOptions`
@@ -20587,7 +20556,7 @@ await client.crm.notes.metaPostRetrieve();
-
client.crm.notes.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList +
client.ticketing.issues.retrieve(id) -> Merge.Issue
@@ -20599,7 +20568,7 @@ await client.crm.notes.metaPostRetrieve();
-Returns a list of `RemoteFieldClass` objects. +Get a specific issue.
@@ -20615,7 +20584,7 @@ Returns a list of `RemoteFieldClass` objects.
```typescript -await client.crm.notes.remoteFieldClassesList(); +await client.ticketing.issues.retrieve("id"); ```
@@ -20631,7 +20600,7 @@ await client.crm.notes.remoteFieldClassesList();
-**request:** `Merge.crm.NotesRemoteFieldClassesListRequest` +**id:** `string`
@@ -20639,7 +20608,7 @@ await client.crm.notes.remoteFieldClassesList();
-**requestOptions:** `Notes.RequestOptions` +**requestOptions:** `Issues.RequestOptions`
@@ -20650,9 +20619,9 @@ await client.crm.notes.remoteFieldClassesList();
-## Crm Opportunities +## Ticketing LinkToken -
client.crm.opportunities.list({ ...params }) -> Merge.PaginatedOpportunityList +
client.ticketing.linkToken.create({ ...params }) -> Merge.LinkToken
@@ -20664,7 +20633,7 @@ await client.crm.notes.remoteFieldClassesList();
-Returns a list of `Opportunity` objects. +Creates a link token to be used when linking a new end user.
@@ -20680,7 +20649,12 @@ Returns a list of `Opportunity` objects.
```typescript -await client.crm.opportunities.list(); +await client.ticketing.linkToken.create({ + endUserEmailAddress: "example@gmail.com", + endUserOrganizationName: "Test Organization", + endUserOriginId: "12345", + categories: ["hris", "ats"], +}); ```
@@ -20696,7 +20670,7 @@ await client.crm.opportunities.list();
-**request:** `Merge.crm.OpportunitiesListRequest` +**request:** `Merge.ticketing.EndUserDetailsRequest`
@@ -20704,7 +20678,7 @@ await client.crm.opportunities.list();
-**requestOptions:** `Opportunities.RequestOptions` +**requestOptions:** `LinkToken.RequestOptions`
@@ -20715,7 +20689,9 @@ await client.crm.opportunities.list();
-
client.crm.opportunities.create({ ...params }) -> Merge.OpportunityResponse +## Ticketing LinkedAccounts + +
client.ticketing.linkedAccounts.list({ ...params }) -> Merge.PaginatedAccountDetailsAndActionsList
@@ -20727,7 +20703,7 @@ await client.crm.opportunities.list();
-Creates an `Opportunity` object with the given values. +List linked accounts for your organization.
@@ -20743,9 +20719,7 @@ Creates an `Opportunity` object with the given values.
```typescript -await client.crm.opportunities.create({ - model: {}, -}); +await client.ticketing.linkedAccounts.list(); ```
@@ -20761,7 +20735,7 @@ await client.crm.opportunities.create({
-**request:** `Merge.crm.OpportunityEndpointRequest` +**request:** `Merge.ticketing.LinkedAccountsListRequest`
@@ -20769,7 +20743,7 @@ await client.crm.opportunities.create({
-**requestOptions:** `Opportunities.RequestOptions` +**requestOptions:** `LinkedAccounts.RequestOptions`
@@ -20780,7 +20754,9 @@ await client.crm.opportunities.create({
-
client.crm.opportunities.retrieve(id, { ...params }) -> Merge.Opportunity +## Ticketing Passthrough + +
client.ticketing.passthrough.create({ ...params }) -> Merge.RemoteResponse
@@ -20792,7 +20768,7 @@ await client.crm.opportunities.create({
-Returns an `Opportunity` object with the given `id`. +Pull data from an endpoint not currently supported by Merge.
@@ -20808,7 +20784,10 @@ Returns an `Opportunity` object with the given `id`.
```typescript -await client.crm.opportunities.retrieve("id"); +await client.ticketing.passthrough.create({ + method: "GET", + path: "/scooters", +}); ```
@@ -20824,15 +20803,7 @@ await client.crm.opportunities.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.crm.OpportunitiesRetrieveRequest` +**request:** `Merge.DataPassthroughRequest`
@@ -20840,7 +20811,7 @@ await client.crm.opportunities.retrieve("id");
-**requestOptions:** `Opportunities.RequestOptions` +**requestOptions:** `Passthrough.RequestOptions`
@@ -20851,7 +20822,9 @@ await client.crm.opportunities.retrieve("id");
-
client.crm.opportunities.partialUpdate(id, { ...params }) -> Merge.OpportunityResponse +## Ticketing Projects + +
client.ticketing.projects.list({ ...params }) -> Merge.PaginatedProjectList
@@ -20863,7 +20836,7 @@ await client.crm.opportunities.retrieve("id");
-Updates an `Opportunity` object with the given `id`. +Returns a list of `Project` objects.
@@ -20879,9 +20852,7 @@ Updates an `Opportunity` object with the given `id`.
```typescript -await client.crm.opportunities.partialUpdate("id", { - model: {}, -}); +await client.ticketing.projects.list(); ```
@@ -20897,15 +20868,7 @@ await client.crm.opportunities.partialUpdate("id", {
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.crm.PatchedOpportunityEndpointRequest` +**request:** `Merge.ticketing.ProjectsListRequest`
@@ -20913,7 +20876,7 @@ await client.crm.opportunities.partialUpdate("id", {
-**requestOptions:** `Opportunities.RequestOptions` +**requestOptions:** `Projects.RequestOptions`
@@ -20924,7 +20887,7 @@ await client.crm.opportunities.partialUpdate("id", {
-
client.crm.opportunities.metaPatchRetrieve(id) -> Merge.MetaResponse +
client.ticketing.projects.retrieve(id, { ...params }) -> Merge.Project
@@ -20936,7 +20899,7 @@ await client.crm.opportunities.partialUpdate("id", {
-Returns metadata for `Opportunity` PATCHs. +Returns a `Project` object with the given `id`.
@@ -20952,7 +20915,7 @@ Returns metadata for `Opportunity` PATCHs.
```typescript -await client.crm.opportunities.metaPatchRetrieve("id"); +await client.ticketing.projects.retrieve("id"); ```
@@ -20976,7 +20939,15 @@ await client.crm.opportunities.metaPatchRetrieve("id");
-**requestOptions:** `Opportunities.RequestOptions` +**request:** `Merge.ticketing.ProjectsRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Projects.RequestOptions`
@@ -20987,7 +20958,7 @@ await client.crm.opportunities.metaPatchRetrieve("id");
-
client.crm.opportunities.metaPostRetrieve() -> Merge.MetaResponse +
client.ticketing.projects.usersList(parentId, { ...params }) -> Merge.PaginatedUserList
@@ -20999,7 +20970,7 @@ await client.crm.opportunities.metaPatchRetrieve("id");
-Returns metadata for `Opportunity` POSTs. +Returns a list of `User` objects.
@@ -21015,7 +20986,7 @@ Returns metadata for `Opportunity` POSTs.
```typescript -await client.crm.opportunities.metaPostRetrieve(); +await client.ticketing.projects.usersList("parent_id"); ```
@@ -21031,7 +21002,23 @@ await client.crm.opportunities.metaPostRetrieve();
-**requestOptions:** `Opportunities.RequestOptions` +**parentId:** `string` + +
+
+ +
+
+ +**request:** `Merge.ticketing.ProjectsUsersListRequest` + +
+
+ +
+
+ +**requestOptions:** `Projects.RequestOptions`
@@ -21042,7 +21029,9 @@ await client.crm.opportunities.metaPostRetrieve();
-
client.crm.opportunities.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList +## Ticketing RegenerateKey + +
client.ticketing.regenerateKey.create({ ...params }) -> Merge.RemoteKey
@@ -21054,7 +21043,7 @@ await client.crm.opportunities.metaPostRetrieve();
-Returns a list of `RemoteFieldClass` objects. +Exchange remote keys.
@@ -21070,7 +21059,9 @@ Returns a list of `RemoteFieldClass` objects.
```typescript -await client.crm.opportunities.remoteFieldClassesList(); +await client.ticketing.regenerateKey.create({ + name: "Remote Deployment Key 1", +}); ```
@@ -21086,7 +21077,7 @@ await client.crm.opportunities.remoteFieldClassesList();
-**request:** `Merge.crm.OpportunitiesRemoteFieldClassesListRequest` +**request:** `Merge.ticketing.RemoteKeyForRegenerationRequest`
@@ -21094,7 +21085,7 @@ await client.crm.opportunities.remoteFieldClassesList();
-**requestOptions:** `Opportunities.RequestOptions` +**requestOptions:** `RegenerateKey.RequestOptions`
@@ -21105,9 +21096,9 @@ await client.crm.opportunities.remoteFieldClassesList();
-## Crm Passthrough +## Ticketing Roles -
client.crm.passthrough.create({ ...params }) -> Merge.RemoteResponse +
client.ticketing.roles.list({ ...params }) -> Merge.PaginatedRoleList
@@ -21119,7 +21110,7 @@ await client.crm.opportunities.remoteFieldClassesList();
-Pull data from an endpoint not currently supported by Merge. +Returns a list of `Role` objects.
@@ -21135,10 +21126,7 @@ Pull data from an endpoint not currently supported by Merge.
```typescript -await client.crm.passthrough.create({ - method: "GET", - path: "/scooters", -}); +await client.ticketing.roles.list(); ```
@@ -21154,7 +21142,7 @@ await client.crm.passthrough.create({
-**request:** `Merge.DataPassthroughRequest` +**request:** `Merge.ticketing.RolesListRequest`
@@ -21162,7 +21150,7 @@ await client.crm.passthrough.create({
-**requestOptions:** `Passthrough.RequestOptions` +**requestOptions:** `Roles.RequestOptions`
@@ -21173,9 +21161,7 @@ await client.crm.passthrough.create({
-## Crm RegenerateKey - -
client.crm.regenerateKey.create({ ...params }) -> Merge.RemoteKey +
client.ticketing.roles.retrieve(id, { ...params }) -> Merge.Role
@@ -21187,7 +21173,7 @@ await client.crm.passthrough.create({
-Exchange remote keys. +Returns a `Role` object with the given `id`.
@@ -21203,9 +21189,7 @@ Exchange remote keys.
```typescript -await client.crm.regenerateKey.create({ - name: "Remote Deployment Key 1", -}); +await client.ticketing.roles.retrieve("id"); ```
@@ -21221,7 +21205,7 @@ await client.crm.regenerateKey.create({
-**request:** `Merge.crm.RemoteKeyForRegenerationRequest` +**id:** `string`
@@ -21229,7 +21213,15 @@ await client.crm.regenerateKey.create({
-**requestOptions:** `RegenerateKey.RequestOptions` +**request:** `Merge.ticketing.RolesRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Roles.RequestOptions`
@@ -21240,9 +21232,9 @@ await client.crm.regenerateKey.create({
-## Crm Stages +## Ticketing SyncStatus -
client.crm.stages.list({ ...params }) -> Merge.PaginatedStageList +
client.ticketing.syncStatus.list({ ...params }) -> Merge.PaginatedSyncStatusList
@@ -21254,7 +21246,7 @@ await client.crm.regenerateKey.create({
-Returns a list of `Stage` objects. +Get sync status for the current sync and the most recently finished sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` represents the most recent time any sync completed. These timestamps may correspond to different sync instances which may result in a sync start time being later than a separate sync completed time. To ensure you are retrieving the latest available data reference the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses).
@@ -21270,7 +21262,7 @@ Returns a list of `Stage` objects.
```typescript -await client.crm.stages.list(); +await client.ticketing.syncStatus.list(); ```
@@ -21286,7 +21278,7 @@ await client.crm.stages.list();
-**request:** `Merge.crm.StagesListRequest` +**request:** `Merge.ticketing.SyncStatusListRequest`
@@ -21294,7 +21286,7 @@ await client.crm.stages.list();
-**requestOptions:** `Stages.RequestOptions` +**requestOptions:** `SyncStatus.RequestOptions`
@@ -21305,7 +21297,9 @@ await client.crm.stages.list();
-
client.crm.stages.retrieve(id, { ...params }) -> Merge.Stage +## Ticketing ForceResync + +
client.ticketing.forceResync.syncStatusResyncCreate() -> Merge.SyncStatus[]
@@ -21317,7 +21311,7 @@ await client.crm.stages.list();
-Returns a `Stage` object with the given `id`. +Force re-sync of all models. This endpoint is available for monthly, quarterly, and highest sync frequency customers on the Professional or Enterprise plans. Doing so will consume a sync credit for the relevant linked account. Force re-syncs can also be triggered manually in the Merge Dashboard and is available for all customers.
@@ -21333,7 +21327,7 @@ Returns a `Stage` object with the given `id`.
```typescript -await client.crm.stages.retrieve("id"); +await client.ticketing.forceResync.syncStatusResyncCreate(); ```
@@ -21349,23 +21343,7 @@ await client.crm.stages.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.crm.StagesRetrieveRequest` - -
-
- -
-
- -**requestOptions:** `Stages.RequestOptions` +**requestOptions:** `ForceResync.RequestOptions`
@@ -21376,7 +21354,9 @@ await client.crm.stages.retrieve("id");
-
client.crm.stages.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList +## Ticketing Tags + +
client.ticketing.tags.list({ ...params }) -> Merge.PaginatedTagList
@@ -21388,7 +21368,7 @@ await client.crm.stages.retrieve("id");
-Returns a list of `RemoteFieldClass` objects. +Returns a list of `Tag` objects.
@@ -21404,7 +21384,7 @@ Returns a list of `RemoteFieldClass` objects.
```typescript -await client.crm.stages.remoteFieldClassesList(); +await client.ticketing.tags.list(); ```
@@ -21420,7 +21400,7 @@ await client.crm.stages.remoteFieldClassesList();
-**request:** `Merge.crm.StagesRemoteFieldClassesListRequest` +**request:** `Merge.ticketing.TagsListRequest`
@@ -21428,7 +21408,7 @@ await client.crm.stages.remoteFieldClassesList();
-**requestOptions:** `Stages.RequestOptions` +**requestOptions:** `Tags.RequestOptions`
@@ -21439,9 +21419,7 @@ await client.crm.stages.remoteFieldClassesList();
-## Crm SyncStatus - -
client.crm.syncStatus.list({ ...params }) -> Merge.PaginatedSyncStatusList +
client.ticketing.tags.retrieve(id, { ...params }) -> Merge.Tag
@@ -21453,7 +21431,7 @@ await client.crm.stages.remoteFieldClassesList();
-Get syncing status. Possible values: `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). +Returns a `Tag` object with the given `id`.
@@ -21469,7 +21447,7 @@ Get syncing status. Possible values: `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SY
```typescript -await client.crm.syncStatus.list(); +await client.ticketing.tags.retrieve("id"); ```
@@ -21485,7 +21463,7 @@ await client.crm.syncStatus.list();
-**request:** `Merge.crm.SyncStatusListRequest` +**id:** `string`
@@ -21493,7 +21471,15 @@ await client.crm.syncStatus.list();
-**requestOptions:** `SyncStatus.RequestOptions` +**request:** `Merge.ticketing.TagsRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Tags.RequestOptions`
@@ -21504,9 +21490,9 @@ await client.crm.syncStatus.list();
-## Crm ForceResync +## Ticketing Teams -
client.crm.forceResync.syncStatusResyncCreate() -> Merge.SyncStatus[] +
client.ticketing.teams.list({ ...params }) -> Merge.PaginatedTeamList
@@ -21518,7 +21504,7 @@ await client.crm.syncStatus.list();
-Force re-sync of all models. This endpoint is available for monthly, quarterly, and highest sync frequency customers on the Professional or Enterprise plans. Doing so will consume a sync credit for the relevant linked account. Force re-syncs can also be triggered manually in the Merge Dashboard and is available for all customers. +Returns a list of `Team` objects.
@@ -21534,7 +21520,7 @@ Force re-sync of all models. This endpoint is available for monthly, quarterly,
```typescript -await client.crm.forceResync.syncStatusResyncCreate(); +await client.ticketing.teams.list(); ```
@@ -21550,7 +21536,15 @@ await client.crm.forceResync.syncStatusResyncCreate();
-**requestOptions:** `ForceResync.RequestOptions` +**request:** `Merge.ticketing.TeamsListRequest` + +
+
+ +
+
+ +**requestOptions:** `Teams.RequestOptions`
@@ -21561,9 +21555,7 @@ await client.crm.forceResync.syncStatusResyncCreate();
-## Crm Tasks - -
client.crm.tasks.list({ ...params }) -> Merge.PaginatedTaskList +
client.ticketing.teams.retrieve(id, { ...params }) -> Merge.Team
@@ -21575,7 +21567,7 @@ await client.crm.forceResync.syncStatusResyncCreate();
-Returns a list of `Task` objects. +Returns a `Team` object with the given `id`.
@@ -21591,7 +21583,7 @@ Returns a list of `Task` objects.
```typescript -await client.crm.tasks.list(); +await client.ticketing.teams.retrieve("id"); ```
@@ -21607,7 +21599,7 @@ await client.crm.tasks.list();
-**request:** `Merge.crm.TasksListRequest` +**id:** `string`
@@ -21615,7 +21607,15 @@ await client.crm.tasks.list();
-**requestOptions:** `Tasks.RequestOptions` +**request:** `Merge.ticketing.TeamsRetrieveRequest` + +
+
+ +
+
+ +**requestOptions:** `Teams.RequestOptions`
@@ -21626,7 +21626,9 @@ await client.crm.tasks.list();
-
client.crm.tasks.create({ ...params }) -> Merge.TaskResponse +## Ticketing Tickets + +
client.ticketing.tickets.list({ ...params }) -> Merge.PaginatedTicketList
@@ -21638,7 +21640,7 @@ await client.crm.tasks.list();
-Creates a `Task` object with the given values. +Returns a list of `Ticket` objects.
@@ -21654,9 +21656,7 @@ Creates a `Task` object with the given values.
```typescript -await client.crm.tasks.create({ - model: {}, -}); +await client.ticketing.tickets.list(); ```
@@ -21672,7 +21672,7 @@ await client.crm.tasks.create({
-**request:** `Merge.crm.TaskEndpointRequest` +**request:** `Merge.ticketing.TicketsListRequest`
@@ -21680,7 +21680,7 @@ await client.crm.tasks.create({
-**requestOptions:** `Tasks.RequestOptions` +**requestOptions:** `Tickets.RequestOptions`
@@ -21691,7 +21691,7 @@ await client.crm.tasks.create({
-
client.crm.tasks.retrieve(id, { ...params }) -> Merge.Task +
client.ticketing.tickets.create({ ...params }) -> Merge.TicketResponse
@@ -21703,7 +21703,7 @@ await client.crm.tasks.create({
-Returns a `Task` object with the given `id`. +Creates a `Ticket` object with the given values.
@@ -21719,7 +21719,9 @@ Returns a `Task` object with the given `id`.
```typescript -await client.crm.tasks.retrieve("id"); +await client.ticketing.tickets.create({ + model: {}, +}); ```
@@ -21735,15 +21737,7 @@ await client.crm.tasks.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.crm.TasksRetrieveRequest` +**request:** `Merge.ticketing.TicketEndpointRequest`
@@ -21751,7 +21745,7 @@ await client.crm.tasks.retrieve("id");
-**requestOptions:** `Tasks.RequestOptions` +**requestOptions:** `Tickets.RequestOptions`
@@ -21762,7 +21756,7 @@ await client.crm.tasks.retrieve("id");
-
client.crm.tasks.partialUpdate(id, { ...params }) -> Merge.TaskResponse +
client.ticketing.tickets.retrieve(id, { ...params }) -> Merge.Ticket
@@ -21774,7 +21768,7 @@ await client.crm.tasks.retrieve("id");
-Updates a `Task` object with the given `id`. +Returns a `Ticket` object with the given `id`.
@@ -21790,9 +21784,7 @@ Updates a `Task` object with the given `id`.
```typescript -await client.crm.tasks.partialUpdate("id", { - model: {}, -}); +await client.ticketing.tickets.retrieve("id"); ```
@@ -21816,7 +21808,7 @@ await client.crm.tasks.partialUpdate("id", {
-**request:** `Merge.crm.PatchedTaskEndpointRequest` +**request:** `Merge.ticketing.TicketsRetrieveRequest`
@@ -21824,7 +21816,7 @@ await client.crm.tasks.partialUpdate("id", {
-**requestOptions:** `Tasks.RequestOptions` +**requestOptions:** `Tickets.RequestOptions`
@@ -21835,7 +21827,7 @@ await client.crm.tasks.partialUpdate("id", {
-
client.crm.tasks.metaPatchRetrieve(id) -> Merge.MetaResponse +
client.ticketing.tickets.partialUpdate(id, { ...params }) -> Merge.TicketResponse
@@ -21847,7 +21839,7 @@ await client.crm.tasks.partialUpdate("id", {
-Returns metadata for `Task` PATCHs. +Updates a `Ticket` object with the given `id`.
@@ -21863,7 +21855,9 @@ Returns metadata for `Task` PATCHs.
```typescript -await client.crm.tasks.metaPatchRetrieve("id"); +await client.ticketing.tickets.partialUpdate("id", { + model: {}, +}); ```
@@ -21887,7 +21881,15 @@ await client.crm.tasks.metaPatchRetrieve("id");
-**requestOptions:** `Tasks.RequestOptions` +**request:** `Merge.ticketing.PatchedTicketEndpointRequest` + +
+
+ +
+
+ +**requestOptions:** `Tickets.RequestOptions`
@@ -21898,7 +21900,7 @@ await client.crm.tasks.metaPatchRetrieve("id");
-
client.crm.tasks.metaPostRetrieve() -> Merge.MetaResponse +
client.ticketing.tickets.viewersList(ticketId, { ...params }) -> Merge.PaginatedViewerList
@@ -21910,7 +21912,7 @@ await client.crm.tasks.metaPatchRetrieve("id");
-Returns metadata for `Task` POSTs. +Returns a list of `Viewer` objects that point to a User id or Team id that is either an assignee or viewer on a `Ticket` with the given id. [Learn more.](https://help.merge.dev/en/articles/10333658-ticketing-access-control-list-acls)
@@ -21926,7 +21928,7 @@ Returns metadata for `Task` POSTs.
```typescript -await client.crm.tasks.metaPostRetrieve(); +await client.ticketing.tickets.viewersList("ticket_id"); ```
@@ -21942,7 +21944,23 @@ await client.crm.tasks.metaPostRetrieve();
-**requestOptions:** `Tasks.RequestOptions` +**ticketId:** `string` + +
+
+ +
+
+ +**request:** `Merge.ticketing.TicketsViewersListRequest` + +
+
+ +
+
+ +**requestOptions:** `Tickets.RequestOptions`
@@ -21953,7 +21971,7 @@ await client.crm.tasks.metaPostRetrieve();
-
client.crm.tasks.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList +
client.ticketing.tickets.metaPatchRetrieve(id) -> Merge.MetaResponse
@@ -21965,7 +21983,7 @@ await client.crm.tasks.metaPostRetrieve();
-Returns a list of `RemoteFieldClass` objects. +Returns metadata for `Ticket` PATCHs.
@@ -21981,7 +21999,7 @@ Returns a list of `RemoteFieldClass` objects.
```typescript -await client.crm.tasks.remoteFieldClassesList(); +await client.ticketing.tickets.metaPatchRetrieve("id"); ```
@@ -21997,7 +22015,7 @@ await client.crm.tasks.remoteFieldClassesList();
-**request:** `Merge.crm.TasksRemoteFieldClassesListRequest` +**id:** `string`
@@ -22005,7 +22023,7 @@ await client.crm.tasks.remoteFieldClassesList();
-**requestOptions:** `Tasks.RequestOptions` +**requestOptions:** `Tickets.RequestOptions`
@@ -22016,9 +22034,7 @@ await client.crm.tasks.remoteFieldClassesList();
-## Crm Users - -
client.crm.users.list({ ...params }) -> Merge.PaginatedUserList +
client.ticketing.tickets.metaPostRetrieve({ ...params }) -> Merge.MetaResponse
@@ -22030,7 +22046,7 @@ await client.crm.tasks.remoteFieldClassesList();
-Returns a list of `User` objects. +Returns metadata for `Ticket` POSTs.
@@ -22046,7 +22062,7 @@ Returns a list of `User` objects.
```typescript -await client.crm.users.list(); +await client.ticketing.tickets.metaPostRetrieve(); ```
@@ -22062,7 +22078,7 @@ await client.crm.users.list();
-**request:** `Merge.crm.UsersListRequest` +**request:** `Merge.ticketing.TicketsMetaPostRetrieveRequest`
@@ -22070,7 +22086,7 @@ await client.crm.users.list();
-**requestOptions:** `Users.RequestOptions` +**requestOptions:** `Tickets.RequestOptions`
@@ -22081,7 +22097,7 @@ await client.crm.users.list();
-
client.crm.users.retrieve(id, { ...params }) -> Merge.User +
client.ticketing.tickets.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList
@@ -22093,7 +22109,7 @@ await client.crm.users.list();
-Returns a `User` object with the given `id`. +Returns a list of `RemoteFieldClass` objects.
@@ -22109,7 +22125,7 @@ Returns a `User` object with the given `id`.
```typescript -await client.crm.users.retrieve("id"); +await client.ticketing.tickets.remoteFieldClassesList(); ```
@@ -22125,15 +22141,7 @@ await client.crm.users.retrieve("id");
-**id:** `string` - -
-
- -
-
- -**request:** `Merge.crm.UsersRetrieveRequest` +**request:** `Merge.ticketing.TicketsRemoteFieldClassesListRequest`
@@ -22141,7 +22149,7 @@ await client.crm.users.retrieve("id");
-**requestOptions:** `Users.RequestOptions` +**requestOptions:** `Tickets.RequestOptions`
@@ -22152,7 +22160,9 @@ await client.crm.users.retrieve("id");
-
client.crm.users.ignoreCreate(modelId, { ...params }) -> void +## Ticketing Users + +
client.ticketing.users.list({ ...params }) -> Merge.PaginatedUserList
@@ -22164,7 +22174,7 @@ await client.crm.users.retrieve("id");
-Ignores a specific row based on the `model_id` in the url. These records will have their properties set to null, and will not be updated in future syncs. The "reason" and "message" fields in the request body will be stored for audit purposes. +Returns a list of `User` objects.
@@ -22180,9 +22190,7 @@ Ignores a specific row based on the `model_id` in the url. These records will ha
```typescript -await client.crm.users.ignoreCreate("model_id", { - reason: "GENERAL_CUSTOMER_REQUEST", -}); +await client.ticketing.users.list(); ```
@@ -22198,15 +22206,7 @@ await client.crm.users.ignoreCreate("model_id", {
-**modelId:** `string` - -
-
- -
-
- -**request:** `Merge.IgnoreCommonModelRequest` +**request:** `Merge.ticketing.UsersListRequest`
@@ -22225,7 +22225,7 @@ await client.crm.users.ignoreCreate("model_id", {
-
client.crm.users.remoteFieldClassesList({ ...params }) -> Merge.PaginatedRemoteFieldClassList +
client.ticketing.users.retrieve(id, { ...params }) -> Merge.User
@@ -22237,7 +22237,7 @@ await client.crm.users.ignoreCreate("model_id", {
-Returns a list of `RemoteFieldClass` objects. +Returns a `User` object with the given `id`.
@@ -22253,7 +22253,7 @@ Returns a list of `RemoteFieldClass` objects.
```typescript -await client.crm.users.remoteFieldClassesList(); +await client.ticketing.users.retrieve("id"); ```
@@ -22269,7 +22269,15 @@ await client.crm.users.remoteFieldClassesList();
-**request:** `Merge.crm.UsersRemoteFieldClassesListRequest` +**id:** `string` + +
+
+ +
+
+ +**request:** `Merge.ticketing.UsersRetrieveRequest`
@@ -22288,9 +22296,9 @@ await client.crm.users.remoteFieldClassesList();
-## Crm WebhookReceivers +## Ticketing WebhookReceivers -
client.crm.webhookReceivers.list() -> Merge.WebhookReceiver[] +
client.ticketing.webhookReceivers.list() -> Merge.WebhookReceiver[]
@@ -22318,7 +22326,7 @@ Returns a list of `WebhookReceiver` objects.
```typescript -await client.crm.webhookReceivers.list(); +await client.ticketing.webhookReceivers.list(); ```
@@ -22345,7 +22353,7 @@ await client.crm.webhookReceivers.list();
-
client.crm.webhookReceivers.create({ ...params }) -> Merge.WebhookReceiver +
client.ticketing.webhookReceivers.create({ ...params }) -> Merge.WebhookReceiver
@@ -22373,7 +22381,7 @@ Creates a `WebhookReceiver` object with the given values.
```typescript -await client.crm.webhookReceivers.create({ +await client.ticketing.webhookReceivers.create({ event: "event", isActive: true, }); @@ -22392,7 +22400,7 @@ await client.crm.webhookReceivers.create({
-**request:** `Merge.crm.WebhookReceiverRequest` +**request:** `Merge.ticketing.WebhookReceiverRequest`
@@ -27281,6 +27289,71 @@ await client.accounting.items.list();
+
client.accounting.items.create({ ...params }) -> Merge.ItemResponse +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Creates an `Item` object with the given values. + +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```typescript +await client.accounting.items.create({ + model: {}, +}); +``` + +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**request:** `Merge.accounting.ItemEndpointRequest` + +
+
+ +
+
+ +**requestOptions:** `Items.RequestOptions` + +
+
+
+
+ +
+
+
+
client.accounting.items.retrieve(id, { ...params }) -> Merge.Item
@@ -27352,6 +27425,197 @@ await client.accounting.items.retrieve("id");
+
client.accounting.items.partialUpdate(id, { ...params }) -> Merge.ItemResponse +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Updates an `Item` object with the given `id`. + +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```typescript +await client.accounting.items.partialUpdate("id", { + model: {}, +}); +``` + +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**id:** `string` + +
+
+ +
+
+ +**request:** `Merge.accounting.PatchedItemEndpointRequest` + +
+
+ +
+
+ +**requestOptions:** `Items.RequestOptions` + +
+
+
+
+ +
+
+
+ +
client.accounting.items.metaPatchRetrieve(id) -> Merge.MetaResponse +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Returns metadata for `Item` PATCHs. + +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```typescript +await client.accounting.items.metaPatchRetrieve("id"); +``` + +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**id:** `string` + +
+
+ +
+
+ +**requestOptions:** `Items.RequestOptions` + +
+
+
+
+ +
+
+
+ +
client.accounting.items.metaPostRetrieve() -> Merge.MetaResponse +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Returns metadata for `Item` POSTs. + +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```typescript +await client.accounting.items.metaPostRetrieve(); +``` + +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**requestOptions:** `Items.RequestOptions` + +
+
+
+
+ +
+
+
+ ## Accounting JournalEntries
client.accounting.journalEntries.list({ ...params }) -> Merge.PaginatedJournalEntryList diff --git a/scripts/rename-to-esm-files.js b/scripts/rename-to-esm-files.js index 81dac6a75..dc1df1cbb 100644 --- a/scripts/rename-to-esm-files.js +++ b/scripts/rename-to-esm-files.js @@ -50,8 +50,16 @@ async function updateFileContents(file) { let newContent = content; // Update each extension type defined in the map for (const [oldExt, newExt] of Object.entries(extensionMap)) { - const regex = new RegExp(`(import|export)(.+from\\s+['"])(\\.\\.?\\/[^'"]+)(\\${oldExt})(['"])`, "g"); - newContent = newContent.replace(regex, `$1$2$3${newExt}$5`); + // Handle static imports/exports + const staticRegex = new RegExp(`(import|export)(.+from\\s+['"])(\\.\\.?\\/[^'"]+)(\\${oldExt})(['"])`, "g"); + newContent = newContent.replace(staticRegex, `$1$2$3${newExt}$5`); + + // Handle dynamic imports (yield import, await import, regular import()) + const dynamicRegex = new RegExp( + `(yield\\s+import|await\\s+import|import)\\s*\\(\\s*['"](\\.\\.\?\\/[^'"]+)(\\${oldExt})['"]\\s*\\)`, + "g", + ); + newContent = newContent.replace(dynamicRegex, `$1("$2${newExt}")`); } if (content !== newContent) { diff --git a/src/Client.ts b/src/Client.ts index de08da77b..aa561cad6 100644 --- a/src/Client.ts +++ b/src/Client.ts @@ -4,11 +4,12 @@ import * as environments from "./environments"; import * as core from "./core"; +import { mergeHeaders } from "./core/headers.js"; import { Ats } from "./api/resources/ats/client/Client"; +import { Crm } from "./api/resources/crm/client/Client"; import { Filestorage } from "./api/resources/filestorage/client/Client"; import { Hris } from "./api/resources/hris/client/Client"; import { Ticketing } from "./api/resources/ticketing/client/Client"; -import { Crm } from "./api/resources/crm/client/Client"; import { Accounting } from "./api/resources/accounting/client/Client"; export declare namespace MergeClient { @@ -19,6 +20,8 @@ export declare namespace MergeClient { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -32,24 +35,45 @@ export declare namespace MergeClient { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class MergeClient { + protected readonly _options: MergeClient.Options; protected _ats: Ats | undefined; + protected _crm: Crm | undefined; protected _filestorage: Filestorage | undefined; protected _hris: Hris | undefined; protected _ticketing: Ticketing | undefined; - protected _crm: Crm | undefined; protected _accounting: Accounting | undefined; - constructor(protected readonly _options: MergeClient.Options) {} + constructor(_options: MergeClient.Options) { + this._options = { + ..._options, + headers: mergeHeaders( + { + "X-Account-Token": _options?.accountToken, + "X-Fern-Language": "JavaScript", + "X-Fern-SDK-Name": "@mergeapi/merge-node-client", + "X-Fern-SDK-Version": "2.0.0", + "User-Agent": "@mergeapi/merge-node-client/2.0.0", + "X-Fern-Runtime": core.RUNTIME.type, + "X-Fern-Runtime-Version": core.RUNTIME.version, + }, + _options?.headers, + ), + }; + } public get ats(): Ats { return (this._ats ??= new Ats(this._options)); } + public get crm(): Crm { + return (this._crm ??= new Crm(this._options)); + } + public get filestorage(): Filestorage { return (this._filestorage ??= new Filestorage(this._options)); } @@ -62,10 +86,6 @@ export class MergeClient { return (this._ticketing ??= new Ticketing(this._options)); } - public get crm(): Crm { - return (this._crm ??= new Crm(this._options)); - } - public get accounting(): Accounting { return (this._accounting ??= new Accounting(this._options)); } diff --git a/src/api/resources/accounting/client/Client.ts b/src/api/resources/accounting/client/Client.ts index c78a3983a..24e12967b 100644 --- a/src/api/resources/accounting/client/Client.ts +++ b/src/api/resources/accounting/client/Client.ts @@ -59,11 +59,14 @@ export declare namespace Accounting { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } } export class Accounting { + protected readonly _options: Accounting.Options; protected _accountDetails: AccountDetails | undefined; protected _accountToken: AccountToken | undefined; protected _accountingPeriods: AccountingPeriods | undefined; @@ -111,7 +114,9 @@ export class Accounting { protected _vendorCredits: VendorCredits | undefined; protected _webhookReceivers: WebhookReceivers | undefined; - constructor(protected readonly _options: Accounting.Options) {} + constructor(_options: Accounting.Options) { + this._options = _options; + } public get accountDetails(): AccountDetails { return (this._accountDetails ??= new AccountDetails(this._options)); diff --git a/src/api/resources/accounting/resources/accountDetails/client/Client.ts b/src/api/resources/accounting/resources/accountDetails/client/Client.ts index 9cc1fac03..7fedf9e9f 100644 --- a/src/api/resources/accounting/resources/accountDetails/client/Client.ts +++ b/src/api/resources/accounting/resources/accountDetails/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AccountDetails { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AccountDetails { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AccountDetails { - constructor(protected readonly _options: AccountDetails.Options) {} + protected readonly _options: AccountDetails.Options; + + constructor(_options: AccountDetails.Options) { + this._options = _options; + } /** * Get details for a linked account. @@ -62,22 +69,14 @@ export class AccountDetails { "accounting/v1/account-details", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class AccountDetails { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class AccountDetails { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/account-details."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/accountToken/client/Client.ts b/src/api/resources/accounting/resources/accountToken/client/Client.ts index 050f8971d..ebb69a336 100644 --- a/src/api/resources/accounting/resources/accountToken/client/Client.ts +++ b/src/api/resources/accounting/resources/accountToken/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AccountToken { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AccountToken { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AccountToken { - constructor(protected readonly _options: AccountToken.Options) {} + protected readonly _options: AccountToken.Options; + + constructor(_options: AccountToken.Options) { + this._options = _options; + } /** * Returns the account token for the end user with the provided public token. @@ -65,22 +72,14 @@ export class AccountToken { `accounting/v1/account-token/${encodeURIComponent(publicToken)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -102,6 +101,7 @@ export class AccountToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -110,6 +110,7 @@ export class AccountToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -118,6 +119,7 @@ export class AccountToken { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/accountingPeriods/client/Client.ts b/src/api/resources/accounting/resources/accountingPeriods/client/Client.ts index b3d7e2950..0e374e94d 100644 --- a/src/api/resources/accounting/resources/accountingPeriods/client/Client.ts +++ b/src/api/resources/accounting/resources/accountingPeriods/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AccountingPeriods { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AccountingPeriods { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AccountingPeriods { - constructor(protected readonly _options: AccountingPeriods.Options) {} + protected readonly _options: AccountingPeriods.Options; + + constructor(_options: AccountingPeriods.Options) { + this._options = _options; + } /** * Returns a list of `AccountingPeriod` objects. @@ -87,23 +94,15 @@ export class AccountingPeriods { "accounting/v1/accounting-periods", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -125,6 +124,7 @@ export class AccountingPeriods { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -133,6 +133,7 @@ export class AccountingPeriods { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -141,6 +142,7 @@ export class AccountingPeriods { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -186,23 +188,15 @@ export class AccountingPeriods { `accounting/v1/accounting-periods/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -224,6 +218,7 @@ export class AccountingPeriods { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -232,6 +227,7 @@ export class AccountingPeriods { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -240,6 +236,7 @@ export class AccountingPeriods { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/accounts/client/Client.ts b/src/api/resources/accounting/resources/accounts/client/Client.ts index 6c7e8e75c..d781d34b8 100644 --- a/src/api/resources/accounting/resources/accounts/client/Client.ts +++ b/src/api/resources/accounting/resources/accounts/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Accounts { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Accounts { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Accounts { - constructor(protected readonly _options: Accounts.Options) {} + protected readonly _options: Accounts.Options; + + constructor(_options: Accounts.Options) { + this._options = _options; + } /** * Returns a list of `Account` objects. @@ -59,6 +66,7 @@ export class Accounts { ): Promise> { const { accountType, + classification, companyId, createdAfter, createdBefore, @@ -81,6 +89,10 @@ export class Accounts { _queryParams["account_type"] = accountType; } + if (classification != null) { + _queryParams["classification"] = classification; + } + if (companyId != null) { _queryParams["company_id"] = companyId; } @@ -159,23 +171,15 @@ export class Accounts { "accounting/v1/accounts", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -197,6 +201,7 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -205,12 +210,14 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/accounts."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -255,20 +262,14 @@ export class Accounts { "accounting/v1/accounts", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -294,6 +295,7 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -302,12 +304,14 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /accounting/v1/accounts."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -371,23 +375,15 @@ export class Accounts { `accounting/v1/accounts/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -409,6 +405,7 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -417,12 +414,14 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/accounts/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -452,22 +451,14 @@ export class Accounts { "accounting/v1/accounts/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -489,6 +480,7 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -497,6 +489,7 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -505,6 +498,7 @@ export class Accounts { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/accounts/client/requests/AccountsListRequest.ts b/src/api/resources/accounting/resources/accounts/client/requests/AccountsListRequest.ts index 012c84439..d64151695 100644 --- a/src/api/resources/accounting/resources/accounts/client/requests/AccountsListRequest.ts +++ b/src/api/resources/accounting/resources/accounts/client/requests/AccountsListRequest.ts @@ -10,9 +10,13 @@ import * as Merge from "../../../../../../index"; */ export interface AccountsListRequest { /** - * If provided, will only provide accounts with the passed in enum. + * If provided, will only return accounts with the passed in enum. */ accountType?: string; + /** + * If provided, will only return accounts with this classification. + */ + classification?: string; /** * If provided, will only return accounts for this company. */ diff --git a/src/api/resources/accounting/resources/addresses/client/Client.ts b/src/api/resources/accounting/resources/addresses/client/Client.ts index 9852459e2..0d1f5c89c 100644 --- a/src/api/resources/accounting/resources/addresses/client/Client.ts +++ b/src/api/resources/accounting/resources/addresses/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Addresses { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Addresses { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Addresses { - constructor(protected readonly _options: Addresses.Options) {} + protected readonly _options: Addresses.Options; + + constructor(_options: Addresses.Options) { + this._options = _options; + } /** * Returns an `Address` object with the given `id`. @@ -86,23 +93,15 @@ export class Addresses { `accounting/v1/addresses/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -124,6 +123,7 @@ export class Addresses { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -132,12 +132,14 @@ export class Addresses { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/addresses/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/asyncPassthrough/client/Client.ts b/src/api/resources/accounting/resources/asyncPassthrough/client/Client.ts index 0852b800a..4e574b3f1 100644 --- a/src/api/resources/accounting/resources/asyncPassthrough/client/Client.ts +++ b/src/api/resources/accounting/resources/asyncPassthrough/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AsyncPassthrough { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AsyncPassthrough { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AsyncPassthrough { - constructor(protected readonly _options: AsyncPassthrough.Options) {} + protected readonly _options: AsyncPassthrough.Options; + + constructor(_options: AsyncPassthrough.Options) { + this._options = _options; + } /** * Asynchronously pull data from an endpoint not currently supported by Merge. @@ -68,20 +75,14 @@ export class AsyncPassthrough { "accounting/v1/async-passthrough", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.accounting.DataPassthroughRequest.jsonOrThrow(request, { @@ -108,6 +109,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -116,6 +118,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -124,6 +127,7 @@ export class AsyncPassthrough { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -156,22 +160,14 @@ export class AsyncPassthrough { `accounting/v1/async-passthrough/${encodeURIComponent(asyncPassthroughReceiptId)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -193,6 +189,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -201,6 +198,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -209,6 +207,7 @@ export class AsyncPassthrough { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/asyncTasks/client/Client.ts b/src/api/resources/accounting/resources/asyncTasks/client/Client.ts index 5af613ba2..d96931f49 100644 --- a/src/api/resources/accounting/resources/asyncTasks/client/Client.ts +++ b/src/api/resources/accounting/resources/asyncTasks/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AsyncTasks { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AsyncTasks { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AsyncTasks { - constructor(protected readonly _options: AsyncTasks.Options) {} + protected readonly _options: AsyncTasks.Options; + + constructor(_options: AsyncTasks.Options) { + this._options = _options; + } /** * Returns an `AsyncPostTask` object with the given `id`. @@ -65,22 +72,14 @@ export class AsyncTasks { `accounting/v1/async-tasks/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -102,6 +101,7 @@ export class AsyncTasks { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -110,6 +110,7 @@ export class AsyncTasks { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -118,6 +119,7 @@ export class AsyncTasks { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/attachments/client/Client.ts b/src/api/resources/accounting/resources/attachments/client/Client.ts index 11f6d5d7d..f7fda4e80 100644 --- a/src/api/resources/accounting/resources/attachments/client/Client.ts +++ b/src/api/resources/accounting/resources/attachments/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Attachments { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Attachments { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Attachments { - constructor(protected readonly _options: Attachments.Options) {} + protected readonly _options: Attachments.Options; + + constructor(_options: Attachments.Options) { + this._options = _options; + } /** * Returns a list of `AccountingAttachment` objects. @@ -123,23 +130,15 @@ export class Attachments { "accounting/v1/attachments", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -161,6 +160,7 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -169,12 +169,14 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/attachments."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -219,20 +221,14 @@ export class Attachments { "accounting/v1/attachments", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -260,6 +256,7 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -268,12 +265,14 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /accounting/v1/attachments."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -319,23 +318,15 @@ export class Attachments { `accounting/v1/attachments/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -357,6 +348,7 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -365,6 +357,7 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -373,6 +366,7 @@ export class Attachments { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -402,22 +396,14 @@ export class Attachments { "accounting/v1/attachments/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -439,6 +425,7 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -447,6 +434,7 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -455,6 +443,7 @@ export class Attachments { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/auditTrail/client/Client.ts b/src/api/resources/accounting/resources/auditTrail/client/Client.ts index 802132284..d5f61e70d 100644 --- a/src/api/resources/accounting/resources/auditTrail/client/Client.ts +++ b/src/api/resources/accounting/resources/auditTrail/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AuditTrail { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AuditTrail { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AuditTrail { - constructor(protected readonly _options: AuditTrail.Options) {} + protected readonly _options: AuditTrail.Options; + + constructor(_options: AuditTrail.Options) { + this._options = _options; + } /** * Gets a list of audit trail events. @@ -91,23 +98,15 @@ export class AuditTrail { "accounting/v1/audit-trail", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -129,6 +128,7 @@ export class AuditTrail { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -137,12 +137,14 @@ export class AuditTrail { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/audit-trail."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/auditTrail/client/requests/AuditTrailListRequest.ts b/src/api/resources/accounting/resources/auditTrail/client/requests/AuditTrailListRequest.ts index b3187c0db..99ee8b1ad 100644 --- a/src/api/resources/accounting/resources/auditTrail/client/requests/AuditTrailListRequest.ts +++ b/src/api/resources/accounting/resources/auditTrail/client/requests/AuditTrailListRequest.ts @@ -16,7 +16,7 @@ export interface AuditTrailListRequest { */ endDate?: string; /** - * If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` + * If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` */ eventType?: string; /** diff --git a/src/api/resources/accounting/resources/availableActions/client/Client.ts b/src/api/resources/accounting/resources/availableActions/client/Client.ts index de24e80c8..f7cef6e68 100644 --- a/src/api/resources/accounting/resources/availableActions/client/Client.ts +++ b/src/api/resources/accounting/resources/availableActions/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AvailableActions { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AvailableActions { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AvailableActions { - constructor(protected readonly _options: AvailableActions.Options) {} + protected readonly _options: AvailableActions.Options; + + constructor(_options: AvailableActions.Options) { + this._options = _options; + } /** * Returns a list of models and actions available for an account. @@ -62,22 +69,14 @@ export class AvailableActions { "accounting/v1/available-actions", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class AvailableActions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,6 +107,7 @@ export class AvailableActions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -115,6 +116,7 @@ export class AvailableActions { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/balanceSheets/client/Client.ts b/src/api/resources/accounting/resources/balanceSheets/client/Client.ts index b369366fe..5196db60e 100644 --- a/src/api/resources/accounting/resources/balanceSheets/client/Client.ts +++ b/src/api/resources/accounting/resources/balanceSheets/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace BalanceSheets { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace BalanceSheets { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class BalanceSheets { - constructor(protected readonly _options: BalanceSheets.Options) {} + protected readonly _options: BalanceSheets.Options; + + constructor(_options: BalanceSheets.Options) { + this._options = _options; + } /** * Returns a list of `BalanceSheet` objects. @@ -128,23 +135,15 @@ export class BalanceSheets { "accounting/v1/balance-sheets", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -166,6 +165,7 @@ export class BalanceSheets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -174,12 +174,14 @@ export class BalanceSheets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/balance-sheets."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -229,23 +231,15 @@ export class BalanceSheets { `accounting/v1/balance-sheets/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -267,6 +261,7 @@ export class BalanceSheets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -275,6 +270,7 @@ export class BalanceSheets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -283,6 +279,7 @@ export class BalanceSheets { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/bankFeedAccounts/client/Client.ts b/src/api/resources/accounting/resources/bankFeedAccounts/client/Client.ts index 5140540d0..2850cf44e 100644 --- a/src/api/resources/accounting/resources/bankFeedAccounts/client/Client.ts +++ b/src/api/resources/accounting/resources/bankFeedAccounts/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace BankFeedAccounts { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace BankFeedAccounts { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class BankFeedAccounts { - constructor(protected readonly _options: BankFeedAccounts.Options) {} + protected readonly _options: BankFeedAccounts.Options; + + constructor(_options: BankFeedAccounts.Options) { + this._options = _options; + } /** * Returns a list of `BankFeedAccount` objects. @@ -87,23 +94,15 @@ export class BankFeedAccounts { "accounting/v1/bank-feed-accounts", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -125,6 +124,7 @@ export class BankFeedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -133,6 +133,7 @@ export class BankFeedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -141,6 +142,7 @@ export class BankFeedAccounts { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -185,20 +187,14 @@ export class BankFeedAccounts { "accounting/v1/bank-feed-accounts", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -226,6 +222,7 @@ export class BankFeedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -234,6 +231,7 @@ export class BankFeedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -242,6 +240,7 @@ export class BankFeedAccounts { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -287,23 +286,15 @@ export class BankFeedAccounts { `accounting/v1/bank-feed-accounts/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -325,6 +316,7 @@ export class BankFeedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -333,6 +325,7 @@ export class BankFeedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -341,6 +334,7 @@ export class BankFeedAccounts { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -370,22 +364,14 @@ export class BankFeedAccounts { "accounting/v1/bank-feed-accounts/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -407,6 +393,7 @@ export class BankFeedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -415,6 +402,7 @@ export class BankFeedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -423,6 +411,7 @@ export class BankFeedAccounts { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/bankFeedTransactions/client/Client.ts b/src/api/resources/accounting/resources/bankFeedTransactions/client/Client.ts index b4c4dfbd0..02178e4a0 100644 --- a/src/api/resources/accounting/resources/bankFeedTransactions/client/Client.ts +++ b/src/api/resources/accounting/resources/bankFeedTransactions/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace BankFeedTransactions { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace BankFeedTransactions { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class BankFeedTransactions { - constructor(protected readonly _options: BankFeedTransactions.Options) {} + protected readonly _options: BankFeedTransactions.Options; + + constructor(_options: BankFeedTransactions.Options) { + this._options = _options; + } /** * Returns a list of `BankFeedTransaction` objects. @@ -128,23 +135,15 @@ export class BankFeedTransactions { "accounting/v1/bank-feed-transactions", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -166,6 +165,7 @@ export class BankFeedTransactions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -174,6 +174,7 @@ export class BankFeedTransactions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -182,6 +183,7 @@ export class BankFeedTransactions { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -226,20 +228,14 @@ export class BankFeedTransactions { "accounting/v1/bank-feed-transactions", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -267,6 +263,7 @@ export class BankFeedTransactions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -275,6 +272,7 @@ export class BankFeedTransactions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -283,6 +281,7 @@ export class BankFeedTransactions { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -332,23 +331,15 @@ export class BankFeedTransactions { `accounting/v1/bank-feed-transactions/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -370,6 +361,7 @@ export class BankFeedTransactions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -378,6 +370,7 @@ export class BankFeedTransactions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -386,6 +379,7 @@ export class BankFeedTransactions { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -415,22 +409,14 @@ export class BankFeedTransactions { "accounting/v1/bank-feed-transactions/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -452,6 +438,7 @@ export class BankFeedTransactions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -460,6 +447,7 @@ export class BankFeedTransactions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -468,6 +456,7 @@ export class BankFeedTransactions { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/cashFlowStatements/client/Client.ts b/src/api/resources/accounting/resources/cashFlowStatements/client/Client.ts index e9cca612a..d931d1680 100644 --- a/src/api/resources/accounting/resources/cashFlowStatements/client/Client.ts +++ b/src/api/resources/accounting/resources/cashFlowStatements/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace CashFlowStatements { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace CashFlowStatements { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class CashFlowStatements { - constructor(protected readonly _options: CashFlowStatements.Options) {} + protected readonly _options: CashFlowStatements.Options; + + constructor(_options: CashFlowStatements.Options) { + this._options = _options; + } /** * Returns a list of `CashFlowStatement` objects. @@ -128,23 +135,15 @@ export class CashFlowStatements { "accounting/v1/cash-flow-statements", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -166,6 +165,7 @@ export class CashFlowStatements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -174,6 +174,7 @@ export class CashFlowStatements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -182,6 +183,7 @@ export class CashFlowStatements { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -231,23 +233,15 @@ export class CashFlowStatements { `accounting/v1/cash-flow-statements/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -269,6 +263,7 @@ export class CashFlowStatements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -277,6 +272,7 @@ export class CashFlowStatements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -285,6 +281,7 @@ export class CashFlowStatements { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/companyInfo/client/Client.ts b/src/api/resources/accounting/resources/companyInfo/client/Client.ts index ff0ade5dc..76c9e3510 100644 --- a/src/api/resources/accounting/resources/companyInfo/client/Client.ts +++ b/src/api/resources/accounting/resources/companyInfo/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace CompanyInfo { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace CompanyInfo { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class CompanyInfo { - constructor(protected readonly _options: CompanyInfo.Options) {} + protected readonly _options: CompanyInfo.Options; + + constructor(_options: CompanyInfo.Options) { + this._options = _options; + } /** * Returns a list of `CompanyInfo` objects. @@ -125,23 +132,15 @@ export class CompanyInfo { "accounting/v1/company-info", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -163,6 +162,7 @@ export class CompanyInfo { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -171,12 +171,14 @@ export class CompanyInfo { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/company-info."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -228,23 +230,15 @@ export class CompanyInfo { `accounting/v1/company-info/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -266,6 +260,7 @@ export class CompanyInfo { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -274,6 +269,7 @@ export class CompanyInfo { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -282,6 +278,7 @@ export class CompanyInfo { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/contacts/client/Client.ts b/src/api/resources/accounting/resources/contacts/client/Client.ts index a087141dd..fc0deb068 100644 --- a/src/api/resources/accounting/resources/contacts/client/Client.ts +++ b/src/api/resources/accounting/resources/contacts/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Contacts { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Contacts { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Contacts { - constructor(protected readonly _options: Contacts.Options) {} + protected readonly _options: Contacts.Options; + + constructor(_options: Contacts.Options) { + this._options = _options; + } /** * Returns a list of `Contact` objects. @@ -170,23 +177,15 @@ export class Contacts { "accounting/v1/contacts", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -208,6 +207,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -216,12 +216,14 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/contacts."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -266,20 +268,14 @@ export class Contacts { "accounting/v1/contacts", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -305,6 +301,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -313,12 +310,14 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /accounting/v1/contacts."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -383,23 +382,15 @@ export class Contacts { `accounting/v1/contacts/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -421,6 +412,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -429,12 +421,14 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/contacts/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -464,22 +458,14 @@ export class Contacts { "accounting/v1/contacts/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -501,6 +487,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -509,6 +496,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -517,6 +505,7 @@ export class Contacts { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -541,8 +530,15 @@ export class Contacts { request: Merge.accounting.ContactsRemoteFieldClassesListRequest = {}, requestOptions?: Contacts.RequestOptions, ): Promise> { - const { cursor, includeDeletedData, includeRemoteData, includeShellData, isCommonModelField, pageSize } = - request; + const { + cursor, + includeDeletedData, + includeRemoteData, + includeShellData, + isCommonModelField, + isCustom, + pageSize, + } = request; const _queryParams: Record = {}; if (cursor != null) { _queryParams["cursor"] = cursor; @@ -564,6 +560,10 @@ export class Contacts { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -576,23 +576,15 @@ export class Contacts { "accounting/v1/contacts/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -614,6 +606,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -622,6 +615,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -630,6 +624,7 @@ export class Contacts { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/contacts/client/requests/ContactsRemoteFieldClassesListRequest.ts b/src/api/resources/accounting/resources/contacts/client/requests/ContactsRemoteFieldClassesListRequest.ts index 377fa9238..757600f0e 100644 --- a/src/api/resources/accounting/resources/contacts/client/requests/ContactsRemoteFieldClassesListRequest.ts +++ b/src/api/resources/accounting/resources/contacts/client/requests/ContactsRemoteFieldClassesListRequest.ts @@ -27,6 +27,10 @@ export interface ContactsRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/accounting/resources/creditNotes/client/Client.ts b/src/api/resources/accounting/resources/creditNotes/client/Client.ts index 144d1b720..9d387213c 100644 --- a/src/api/resources/accounting/resources/creditNotes/client/Client.ts +++ b/src/api/resources/accounting/resources/creditNotes/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace CreditNotes { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace CreditNotes { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class CreditNotes { - constructor(protected readonly _options: CreditNotes.Options) {} + protected readonly _options: CreditNotes.Options; + + constructor(_options: CreditNotes.Options) { + this._options = _options; + } /** * Returns a list of `CreditNote` objects. @@ -156,23 +163,15 @@ export class CreditNotes { "accounting/v1/credit-notes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -194,6 +193,7 @@ export class CreditNotes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -202,12 +202,14 @@ export class CreditNotes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/credit-notes."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -252,20 +254,14 @@ export class CreditNotes { "accounting/v1/credit-notes", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -293,6 +289,7 @@ export class CreditNotes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -301,12 +298,14 @@ export class CreditNotes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /accounting/v1/credit-notes."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -372,23 +371,15 @@ export class CreditNotes { `accounting/v1/credit-notes/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -410,6 +401,7 @@ export class CreditNotes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -418,6 +410,7 @@ export class CreditNotes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -426,6 +419,7 @@ export class CreditNotes { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -455,22 +449,14 @@ export class CreditNotes { "accounting/v1/credit-notes/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -492,6 +478,7 @@ export class CreditNotes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -500,6 +487,7 @@ export class CreditNotes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -508,6 +496,7 @@ export class CreditNotes { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/deleteAccount/client/Client.ts b/src/api/resources/accounting/resources/deleteAccount/client/Client.ts index dc0f6775b..b1fed5240 100644 --- a/src/api/resources/accounting/resources/deleteAccount/client/Client.ts +++ b/src/api/resources/accounting/resources/deleteAccount/client/Client.ts @@ -4,6 +4,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -15,6 +16,8 @@ export declare namespace DeleteAccount { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -28,12 +31,16 @@ export declare namespace DeleteAccount { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class DeleteAccount { - constructor(protected readonly _options: DeleteAccount.Options) {} + protected readonly _options: DeleteAccount.Options; + + constructor(_options: DeleteAccount.Options) { + this._options = _options; + } /** * Delete a linked account. @@ -56,22 +63,14 @@ export class DeleteAccount { "accounting/v1/delete-account", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -84,6 +83,7 @@ export class DeleteAccount { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -92,12 +92,14 @@ export class DeleteAccount { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /accounting/v1/delete-account."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/employees/client/Client.ts b/src/api/resources/accounting/resources/employees/client/Client.ts index 6b0ee251a..0371801c9 100644 --- a/src/api/resources/accounting/resources/employees/client/Client.ts +++ b/src/api/resources/accounting/resources/employees/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Employees { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Employees { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Employees { - constructor(protected readonly _options: Employees.Options) {} + protected readonly _options: Employees.Options; + + constructor(_options: Employees.Options) { + this._options = _options; + } /** * Returns a list of `Employee` objects. @@ -91,23 +98,15 @@ export class Employees { "accounting/v1/employees", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -129,6 +128,7 @@ export class Employees { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -137,12 +137,14 @@ export class Employees { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/employees."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -192,23 +194,15 @@ export class Employees { `accounting/v1/employees/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -230,6 +224,7 @@ export class Employees { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -238,12 +233,14 @@ export class Employees { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/employees/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/expenses/client/Client.ts b/src/api/resources/accounting/resources/expenses/client/Client.ts index 2616d3def..e1ad95f6b 100644 --- a/src/api/resources/accounting/resources/expenses/client/Client.ts +++ b/src/api/resources/accounting/resources/expenses/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Expenses { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Expenses { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Expenses { - constructor(protected readonly _options: Expenses.Options) {} + protected readonly _options: Expenses.Options; + + constructor(_options: Expenses.Options) { + this._options = _options; + } /** * Returns a list of `Expense` objects. @@ -145,23 +152,15 @@ export class Expenses { "accounting/v1/expenses", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -183,6 +182,7 @@ export class Expenses { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -191,12 +191,14 @@ export class Expenses { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/expenses."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -241,20 +243,14 @@ export class Expenses { "accounting/v1/expenses", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -280,6 +276,7 @@ export class Expenses { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -288,12 +285,14 @@ export class Expenses { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /accounting/v1/expenses."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -349,23 +348,15 @@ export class Expenses { `accounting/v1/expenses/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -387,6 +378,7 @@ export class Expenses { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -395,12 +387,14 @@ export class Expenses { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/expenses/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -425,8 +419,15 @@ export class Expenses { request: Merge.accounting.ExpensesLinesRemoteFieldClassesListRequest = {}, requestOptions?: Expenses.RequestOptions, ): Promise> { - const { cursor, includeDeletedData, includeRemoteData, includeShellData, isCommonModelField, pageSize } = - request; + const { + cursor, + includeDeletedData, + includeRemoteData, + includeShellData, + isCommonModelField, + isCustom, + pageSize, + } = request; const _queryParams: Record = {}; if (cursor != null) { _queryParams["cursor"] = cursor; @@ -448,6 +449,10 @@ export class Expenses { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -460,23 +465,15 @@ export class Expenses { "accounting/v1/expenses/lines/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -498,6 +495,7 @@ export class Expenses { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -506,6 +504,7 @@ export class Expenses { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -514,6 +513,7 @@ export class Expenses { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -543,22 +543,14 @@ export class Expenses { "accounting/v1/expenses/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -580,6 +572,7 @@ export class Expenses { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -588,6 +581,7 @@ export class Expenses { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -596,6 +590,7 @@ export class Expenses { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -620,8 +615,15 @@ export class Expenses { request: Merge.accounting.ExpensesRemoteFieldClassesListRequest = {}, requestOptions?: Expenses.RequestOptions, ): Promise> { - const { cursor, includeDeletedData, includeRemoteData, includeShellData, isCommonModelField, pageSize } = - request; + const { + cursor, + includeDeletedData, + includeRemoteData, + includeShellData, + isCommonModelField, + isCustom, + pageSize, + } = request; const _queryParams: Record = {}; if (cursor != null) { _queryParams["cursor"] = cursor; @@ -643,6 +645,10 @@ export class Expenses { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -655,23 +661,15 @@ export class Expenses { "accounting/v1/expenses/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -693,6 +691,7 @@ export class Expenses { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -701,6 +700,7 @@ export class Expenses { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -709,6 +709,7 @@ export class Expenses { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/expenses/client/requests/ExpensesLinesRemoteFieldClassesListRequest.ts b/src/api/resources/accounting/resources/expenses/client/requests/ExpensesLinesRemoteFieldClassesListRequest.ts index 2e0f80ac5..a6604d145 100644 --- a/src/api/resources/accounting/resources/expenses/client/requests/ExpensesLinesRemoteFieldClassesListRequest.ts +++ b/src/api/resources/accounting/resources/expenses/client/requests/ExpensesLinesRemoteFieldClassesListRequest.ts @@ -27,6 +27,10 @@ export interface ExpensesLinesRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/accounting/resources/expenses/client/requests/ExpensesRemoteFieldClassesListRequest.ts b/src/api/resources/accounting/resources/expenses/client/requests/ExpensesRemoteFieldClassesListRequest.ts index 09008e5c9..d7104f6b4 100644 --- a/src/api/resources/accounting/resources/expenses/client/requests/ExpensesRemoteFieldClassesListRequest.ts +++ b/src/api/resources/accounting/resources/expenses/client/requests/ExpensesRemoteFieldClassesListRequest.ts @@ -27,6 +27,10 @@ export interface ExpensesRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/accounting/resources/fieldMapping/client/Client.ts b/src/api/resources/accounting/resources/fieldMapping/client/Client.ts index 2c963bb2a..c220b6624 100644 --- a/src/api/resources/accounting/resources/fieldMapping/client/Client.ts +++ b/src/api/resources/accounting/resources/fieldMapping/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace FieldMapping { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace FieldMapping { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class FieldMapping { - constructor(protected readonly _options: FieldMapping.Options) {} + protected readonly _options: FieldMapping.Options; + + constructor(_options: FieldMapping.Options) { + this._options = _options; + } /** * Get all Field Mappings for this Linked Account. Field Mappings are mappings between third-party Remote Fields and user defined Merge fields. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). @@ -71,23 +78,15 @@ export class FieldMapping { "accounting/v1/field-mappings", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -109,6 +108,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -117,12 +117,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/field-mappings."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -168,20 +170,14 @@ export class FieldMapping { "accounting/v1/field-mappings", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -209,6 +205,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -217,12 +214,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /accounting/v1/field-mappings."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -255,22 +254,14 @@ export class FieldMapping { `accounting/v1/field-mappings/${encodeURIComponent(fieldMappingId)}`, ), method: "DELETE", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -292,6 +283,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -300,6 +292,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -308,6 +301,7 @@ export class FieldMapping { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -345,20 +339,14 @@ export class FieldMapping { `accounting/v1/field-mappings/${encodeURIComponent(fieldMappingId)}`, ), method: "PATCH", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.accounting.PatchedEditFieldMappingRequest.jsonOrThrow(request, { @@ -385,6 +373,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -393,6 +382,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -401,6 +391,7 @@ export class FieldMapping { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -443,23 +434,15 @@ export class FieldMapping { "accounting/v1/remote-fields", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -481,6 +464,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -489,12 +473,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/remote-fields."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -524,22 +510,14 @@ export class FieldMapping { "accounting/v1/target-fields", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -561,6 +539,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -569,12 +548,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/target-fields."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/forceResync/client/Client.ts b/src/api/resources/accounting/resources/forceResync/client/Client.ts index dfd176600..017aedd3a 100644 --- a/src/api/resources/accounting/resources/forceResync/client/Client.ts +++ b/src/api/resources/accounting/resources/forceResync/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace ForceResync { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace ForceResync { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class ForceResync { - constructor(protected readonly _options: ForceResync.Options) {} + protected readonly _options: ForceResync.Options; + + constructor(_options: ForceResync.Options) { + this._options = _options; + } /** * Force re-sync of all models. This endpoint is available for monthly, quarterly, and highest sync frequency customers on the Professional or Enterprise plans. Doing so will consume a sync credit for the relevant linked account. Force re-syncs can also be triggered manually in the Merge Dashboard and is available for all customers. @@ -62,22 +69,14 @@ export class ForceResync { "accounting/v1/sync-status/resync", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class ForceResync { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,6 +107,7 @@ export class ForceResync { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -115,6 +116,7 @@ export class ForceResync { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/generalLedgerTransactions/client/Client.ts b/src/api/resources/accounting/resources/generalLedgerTransactions/client/Client.ts index 1e7f101a5..b40da477a 100644 --- a/src/api/resources/accounting/resources/generalLedgerTransactions/client/Client.ts +++ b/src/api/resources/accounting/resources/generalLedgerTransactions/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace GeneralLedgerTransactions { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace GeneralLedgerTransactions { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class GeneralLedgerTransactions { - constructor(protected readonly _options: GeneralLedgerTransactions.Options) {} + protected readonly _options: GeneralLedgerTransactions.Options; + + constructor(_options: GeneralLedgerTransactions.Options) { + this._options = _options; + } /** * Returns a list of `GeneralLedgerTransaction` objects. @@ -141,23 +148,15 @@ export class GeneralLedgerTransactions { "accounting/v1/general-ledger-transactions", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -179,6 +178,7 @@ export class GeneralLedgerTransactions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -187,6 +187,7 @@ export class GeneralLedgerTransactions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -195,6 +196,7 @@ export class GeneralLedgerTransactions { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -247,23 +249,15 @@ export class GeneralLedgerTransactions { `accounting/v1/general-ledger-transactions/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -285,6 +279,7 @@ export class GeneralLedgerTransactions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -293,6 +288,7 @@ export class GeneralLedgerTransactions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -301,6 +297,7 @@ export class GeneralLedgerTransactions { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/generateKey/client/Client.ts b/src/api/resources/accounting/resources/generateKey/client/Client.ts index c7b263d7d..ce0d60d9a 100644 --- a/src/api/resources/accounting/resources/generateKey/client/Client.ts +++ b/src/api/resources/accounting/resources/generateKey/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace GenerateKey { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace GenerateKey { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class GenerateKey { - constructor(protected readonly _options: GenerateKey.Options) {} + protected readonly _options: GenerateKey.Options; + + constructor(_options: GenerateKey.Options) { + this._options = _options; + } /** * Create a remote key. @@ -67,20 +74,14 @@ export class GenerateKey { "accounting/v1/generate-key", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.accounting.GenerateRemoteKeyRequest.jsonOrThrow(request, { @@ -107,6 +108,7 @@ export class GenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -115,12 +117,14 @@ export class GenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /accounting/v1/generate-key."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/incomeStatements/client/Client.ts b/src/api/resources/accounting/resources/incomeStatements/client/Client.ts index e9adb8646..e828213e9 100644 --- a/src/api/resources/accounting/resources/incomeStatements/client/Client.ts +++ b/src/api/resources/accounting/resources/incomeStatements/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace IncomeStatements { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace IncomeStatements { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class IncomeStatements { - constructor(protected readonly _options: IncomeStatements.Options) {} + protected readonly _options: IncomeStatements.Options; + + constructor(_options: IncomeStatements.Options) { + this._options = _options; + } /** * Returns a list of `IncomeStatement` objects. @@ -128,23 +135,15 @@ export class IncomeStatements { "accounting/v1/income-statements", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -166,6 +165,7 @@ export class IncomeStatements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -174,6 +174,7 @@ export class IncomeStatements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -182,6 +183,7 @@ export class IncomeStatements { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -231,23 +233,15 @@ export class IncomeStatements { `accounting/v1/income-statements/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -269,6 +263,7 @@ export class IncomeStatements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -277,6 +272,7 @@ export class IncomeStatements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -285,6 +281,7 @@ export class IncomeStatements { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/index.ts b/src/api/resources/accounting/resources/index.ts index 19dc2e0b1..20fb035e2 100644 --- a/src/api/resources/accounting/resources/index.ts +++ b/src/api/resources/accounting/resources/index.ts @@ -20,6 +20,8 @@ export * as items from "./items"; export * from "./items/types"; export * as journalEntries from "./journalEntries"; export * from "./journalEntries/types"; +export * as linkToken from "./linkToken"; +export * from "./linkToken/types"; export * as linkedAccounts from "./linkedAccounts"; export * from "./linkedAccounts/types"; export * as payments from "./payments"; @@ -50,7 +52,6 @@ export * as employees from "./employees"; export * as fieldMapping from "./fieldMapping"; export * as generateKey from "./generateKey"; export * as incomeStatements from "./incomeStatements"; -export * as linkToken from "./linkToken"; export * as passthrough from "./passthrough"; export * as paymentMethods from "./paymentMethods"; export * as paymentTerms from "./paymentTerms"; diff --git a/src/api/resources/accounting/resources/invoices/client/Client.ts b/src/api/resources/accounting/resources/invoices/client/Client.ts index c0795abb7..71b07e7c3 100644 --- a/src/api/resources/accounting/resources/invoices/client/Client.ts +++ b/src/api/resources/accounting/resources/invoices/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Invoices { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Invoices { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Invoices { - constructor(protected readonly _options: Invoices.Options) {} + protected readonly _options: Invoices.Options; + + constructor(_options: Invoices.Options) { + this._options = _options; + } /** * Returns a list of `Invoice` objects. @@ -179,23 +186,15 @@ export class Invoices { "accounting/v1/invoices", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -217,6 +216,7 @@ export class Invoices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -225,12 +225,14 @@ export class Invoices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/invoices."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -277,20 +279,14 @@ export class Invoices { "accounting/v1/invoices", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -316,6 +312,7 @@ export class Invoices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -324,12 +321,14 @@ export class Invoices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /accounting/v1/invoices."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -394,23 +393,15 @@ export class Invoices { `accounting/v1/invoices/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -432,6 +423,7 @@ export class Invoices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -440,12 +432,14 @@ export class Invoices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/invoices/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -493,20 +487,14 @@ export class Invoices { `accounting/v1/invoices/${encodeURIComponent(id)}`, ), method: "PATCH", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -534,6 +522,7 @@ export class Invoices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -542,12 +531,14 @@ export class Invoices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling PATCH /accounting/v1/invoices/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -572,8 +563,15 @@ export class Invoices { request: Merge.accounting.InvoicesLineItemsRemoteFieldClassesListRequest = {}, requestOptions?: Invoices.RequestOptions, ): Promise> { - const { cursor, includeDeletedData, includeRemoteData, includeShellData, isCommonModelField, pageSize } = - request; + const { + cursor, + includeDeletedData, + includeRemoteData, + includeShellData, + isCommonModelField, + isCustom, + pageSize, + } = request; const _queryParams: Record = {}; if (cursor != null) { _queryParams["cursor"] = cursor; @@ -595,6 +593,10 @@ export class Invoices { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -607,23 +609,15 @@ export class Invoices { "accounting/v1/invoices/line-items/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -645,6 +639,7 @@ export class Invoices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -653,6 +648,7 @@ export class Invoices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -661,6 +657,7 @@ export class Invoices { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -693,22 +690,14 @@ export class Invoices { `accounting/v1/invoices/meta/patch/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -730,6 +719,7 @@ export class Invoices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -738,6 +728,7 @@ export class Invoices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -746,6 +737,7 @@ export class Invoices { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -775,22 +767,14 @@ export class Invoices { "accounting/v1/invoices/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -812,6 +796,7 @@ export class Invoices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -820,6 +805,7 @@ export class Invoices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -828,6 +814,7 @@ export class Invoices { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -852,8 +839,15 @@ export class Invoices { request: Merge.accounting.InvoicesRemoteFieldClassesListRequest = {}, requestOptions?: Invoices.RequestOptions, ): Promise> { - const { cursor, includeDeletedData, includeRemoteData, includeShellData, isCommonModelField, pageSize } = - request; + const { + cursor, + includeDeletedData, + includeRemoteData, + includeShellData, + isCommonModelField, + isCustom, + pageSize, + } = request; const _queryParams: Record = {}; if (cursor != null) { _queryParams["cursor"] = cursor; @@ -875,6 +869,10 @@ export class Invoices { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -887,23 +885,15 @@ export class Invoices { "accounting/v1/invoices/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -925,6 +915,7 @@ export class Invoices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -933,6 +924,7 @@ export class Invoices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -941,6 +933,7 @@ export class Invoices { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/invoices/client/requests/InvoicesLineItemsRemoteFieldClassesListRequest.ts b/src/api/resources/accounting/resources/invoices/client/requests/InvoicesLineItemsRemoteFieldClassesListRequest.ts index f03402e2a..f92a5e114 100644 --- a/src/api/resources/accounting/resources/invoices/client/requests/InvoicesLineItemsRemoteFieldClassesListRequest.ts +++ b/src/api/resources/accounting/resources/invoices/client/requests/InvoicesLineItemsRemoteFieldClassesListRequest.ts @@ -27,6 +27,10 @@ export interface InvoicesLineItemsRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/accounting/resources/invoices/client/requests/InvoicesRemoteFieldClassesListRequest.ts b/src/api/resources/accounting/resources/invoices/client/requests/InvoicesRemoteFieldClassesListRequest.ts index 3cc13bba8..716d2e3c6 100644 --- a/src/api/resources/accounting/resources/invoices/client/requests/InvoicesRemoteFieldClassesListRequest.ts +++ b/src/api/resources/accounting/resources/invoices/client/requests/InvoicesRemoteFieldClassesListRequest.ts @@ -27,6 +27,10 @@ export interface InvoicesRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/accounting/resources/issues/client/Client.ts b/src/api/resources/accounting/resources/issues/client/Client.ts index 4aa2e4677..3148eca8d 100644 --- a/src/api/resources/accounting/resources/issues/client/Client.ts +++ b/src/api/resources/accounting/resources/issues/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Issues { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Issues { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Issues { - constructor(protected readonly _options: Issues.Options) {} + protected readonly _options: Issues.Options; + + constructor(_options: Issues.Options) { + this._options = _options; + } /** * Gets all issues for Organization. @@ -140,23 +147,15 @@ export class Issues { "accounting/v1/issues", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -178,6 +177,7 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -186,12 +186,14 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/issues."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -224,22 +226,14 @@ export class Issues { `accounting/v1/issues/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -261,6 +255,7 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -269,12 +264,14 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/issues/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/items/client/Client.ts b/src/api/resources/accounting/resources/items/client/Client.ts index 1d2167322..176ebd9f4 100644 --- a/src/api/resources/accounting/resources/items/client/Client.ts +++ b/src/api/resources/accounting/resources/items/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Items { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Items { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Items { - constructor(protected readonly _options: Items.Options) {} + protected readonly _options: Items.Options; + + constructor(_options: Items.Options) { + this._options = _options; + } /** * Returns a list of `Item` objects. @@ -140,23 +147,15 @@ export class Items { "accounting/v1/items", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -178,6 +177,7 @@ export class Items { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -186,12 +186,108 @@ export class Items { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/items."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, + }); + } + } + + /** + * Creates an `Item` object with the given values. + * + * @param {Merge.accounting.ItemEndpointRequest} request + * @param {Items.RequestOptions} requestOptions - Request-specific configuration. + * + * @example + * await client.accounting.items.create({ + * model: {} + * }) + */ + public create( + request: Merge.accounting.ItemEndpointRequest, + requestOptions?: Items.RequestOptions, + ): core.HttpResponsePromise { + return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); + } + + private async __create( + request: Merge.accounting.ItemEndpointRequest, + requestOptions?: Items.RequestOptions, + ): Promise> { + const { isDebugMode, runAsync, ..._body } = request; + const _queryParams: Record = {}; + if (isDebugMode != null) { + _queryParams["is_debug_mode"] = isDebugMode.toString(); + } + + if (runAsync != null) { + _queryParams["run_async"] = runAsync.toString(); + } + + const _response = await (this._options.fetcher ?? core.fetcher)({ + url: urlJoin( + (await core.Supplier.get(this._options.baseUrl)) ?? + (await core.Supplier.get(this._options.environment)) ?? + environments.MergeEnvironment.Production, + "accounting/v1/items", + ), + method: "POST", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), + contentType: "application/json", + queryParameters: _queryParams, + requestType: "json", + body: serializers.accounting.ItemEndpointRequest.jsonOrThrow(_body, { unrecognizedObjectKeys: "strip" }), + timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, + maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, + }); + if (_response.ok) { + return { + data: serializers.accounting.ItemResponse.parseOrThrow(_response.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + rawResponse: _response.rawResponse, + }; + } + + if (_response.error.reason === "status-code") { + throw new errors.MergeError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + rawResponse: _response.rawResponse, + }); + } + + switch (_response.error.reason) { + case "non-json": + throw new errors.MergeError({ + statusCode: _response.error.statusCode, + body: _response.error.rawBody, + rawResponse: _response.rawResponse, + }); + case "timeout": + throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /accounting/v1/items."); + case "unknown": + throw new errors.MergeError({ + message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -251,23 +347,15 @@ export class Items { `accounting/v1/items/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -289,6 +377,7 @@ export class Items { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -297,12 +386,268 @@ export class Items { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/items/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, + }); + } + } + + /** + * Updates an `Item` object with the given `id`. + * + * @param {string} id + * @param {Merge.accounting.PatchedItemEndpointRequest} request + * @param {Items.RequestOptions} requestOptions - Request-specific configuration. + * + * @example + * await client.accounting.items.partialUpdate("id", { + * model: {} + * }) + */ + public partialUpdate( + id: string, + request: Merge.accounting.PatchedItemEndpointRequest, + requestOptions?: Items.RequestOptions, + ): core.HttpResponsePromise { + return core.HttpResponsePromise.fromPromise(this.__partialUpdate(id, request, requestOptions)); + } + + private async __partialUpdate( + id: string, + request: Merge.accounting.PatchedItemEndpointRequest, + requestOptions?: Items.RequestOptions, + ): Promise> { + const { isDebugMode, runAsync, ..._body } = request; + const _queryParams: Record = {}; + if (isDebugMode != null) { + _queryParams["is_debug_mode"] = isDebugMode.toString(); + } + + if (runAsync != null) { + _queryParams["run_async"] = runAsync.toString(); + } + + const _response = await (this._options.fetcher ?? core.fetcher)({ + url: urlJoin( + (await core.Supplier.get(this._options.baseUrl)) ?? + (await core.Supplier.get(this._options.environment)) ?? + environments.MergeEnvironment.Production, + `accounting/v1/items/${encodeURIComponent(id)}`, + ), + method: "PATCH", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), + contentType: "application/json", + queryParameters: _queryParams, + requestType: "json", + body: serializers.accounting.PatchedItemEndpointRequest.jsonOrThrow(_body, { + unrecognizedObjectKeys: "strip", + }), + timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, + maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, + }); + if (_response.ok) { + return { + data: serializers.accounting.ItemResponse.parseOrThrow(_response.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + rawResponse: _response.rawResponse, + }; + } + + if (_response.error.reason === "status-code") { + throw new errors.MergeError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + rawResponse: _response.rawResponse, + }); + } + + switch (_response.error.reason) { + case "non-json": + throw new errors.MergeError({ + statusCode: _response.error.statusCode, + body: _response.error.rawBody, + rawResponse: _response.rawResponse, + }); + case "timeout": + throw new errors.MergeTimeoutError("Timeout exceeded when calling PATCH /accounting/v1/items/{id}."); + case "unknown": + throw new errors.MergeError({ + message: _response.error.errorMessage, + rawResponse: _response.rawResponse, + }); + } + } + + /** + * Returns metadata for `Item` PATCHs. + * + * @param {string} id + * @param {Items.RequestOptions} requestOptions - Request-specific configuration. + * + * @example + * await client.accounting.items.metaPatchRetrieve("id") + */ + public metaPatchRetrieve( + id: string, + requestOptions?: Items.RequestOptions, + ): core.HttpResponsePromise { + return core.HttpResponsePromise.fromPromise(this.__metaPatchRetrieve(id, requestOptions)); + } + + private async __metaPatchRetrieve( + id: string, + requestOptions?: Items.RequestOptions, + ): Promise> { + const _response = await (this._options.fetcher ?? core.fetcher)({ + url: urlJoin( + (await core.Supplier.get(this._options.baseUrl)) ?? + (await core.Supplier.get(this._options.environment)) ?? + environments.MergeEnvironment.Production, + `accounting/v1/items/meta/patch/${encodeURIComponent(id)}`, + ), + method: "GET", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), + timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, + maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, + }); + if (_response.ok) { + return { + data: serializers.accounting.MetaResponse.parseOrThrow(_response.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + rawResponse: _response.rawResponse, + }; + } + + if (_response.error.reason === "status-code") { + throw new errors.MergeError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + rawResponse: _response.rawResponse, + }); + } + + switch (_response.error.reason) { + case "non-json": + throw new errors.MergeError({ + statusCode: _response.error.statusCode, + body: _response.error.rawBody, + rawResponse: _response.rawResponse, + }); + case "timeout": + throw new errors.MergeTimeoutError( + "Timeout exceeded when calling GET /accounting/v1/items/meta/patch/{id}.", + ); + case "unknown": + throw new errors.MergeError({ + message: _response.error.errorMessage, + rawResponse: _response.rawResponse, + }); + } + } + + /** + * Returns metadata for `Item` POSTs. + * + * @param {Items.RequestOptions} requestOptions - Request-specific configuration. + * + * @example + * await client.accounting.items.metaPostRetrieve() + */ + public metaPostRetrieve( + requestOptions?: Items.RequestOptions, + ): core.HttpResponsePromise { + return core.HttpResponsePromise.fromPromise(this.__metaPostRetrieve(requestOptions)); + } + + private async __metaPostRetrieve( + requestOptions?: Items.RequestOptions, + ): Promise> { + const _response = await (this._options.fetcher ?? core.fetcher)({ + url: urlJoin( + (await core.Supplier.get(this._options.baseUrl)) ?? + (await core.Supplier.get(this._options.environment)) ?? + environments.MergeEnvironment.Production, + "accounting/v1/items/meta/post", + ), + method: "GET", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), + timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, + maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, + }); + if (_response.ok) { + return { + data: serializers.accounting.MetaResponse.parseOrThrow(_response.body, { + unrecognizedObjectKeys: "passthrough", + allowUnrecognizedUnionMembers: true, + allowUnrecognizedEnumValues: true, + skipValidation: true, + breadcrumbsPrefix: ["response"], + }), + rawResponse: _response.rawResponse, + }; + } + + if (_response.error.reason === "status-code") { + throw new errors.MergeError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + rawResponse: _response.rawResponse, + }); + } + + switch (_response.error.reason) { + case "non-json": + throw new errors.MergeError({ + statusCode: _response.error.statusCode, + body: _response.error.rawBody, + rawResponse: _response.rawResponse, + }); + case "timeout": + throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/items/meta/post."); + case "unknown": + throw new errors.MergeError({ + message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/items/client/requests/ItemEndpointRequest.ts b/src/api/resources/accounting/resources/items/client/requests/ItemEndpointRequest.ts new file mode 100644 index 000000000..ab6de9f00 --- /dev/null +++ b/src/api/resources/accounting/resources/items/client/requests/ItemEndpointRequest.ts @@ -0,0 +1,23 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../../../../index"; + +/** + * @example + * { + * model: {} + * } + */ +export interface ItemEndpointRequest { + /** + * Whether to include debug fields (such as log file links) in the response. + */ + isDebugMode?: boolean; + /** + * Whether or not third-party updates should be run asynchronously. + */ + runAsync?: boolean; + model: Merge.accounting.ItemRequestRequest; +} diff --git a/src/api/resources/accounting/resources/items/client/requests/PatchedItemEndpointRequest.ts b/src/api/resources/accounting/resources/items/client/requests/PatchedItemEndpointRequest.ts new file mode 100644 index 000000000..a94be70e9 --- /dev/null +++ b/src/api/resources/accounting/resources/items/client/requests/PatchedItemEndpointRequest.ts @@ -0,0 +1,23 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../../../../index"; + +/** + * @example + * { + * model: {} + * } + */ +export interface PatchedItemEndpointRequest { + /** + * Whether to include debug fields (such as log file links) in the response. + */ + isDebugMode?: boolean; + /** + * Whether or not third-party updates should be run asynchronously. + */ + runAsync?: boolean; + model: Merge.accounting.PatchedItemRequestRequest; +} diff --git a/src/api/resources/accounting/resources/items/client/requests/index.ts b/src/api/resources/accounting/resources/items/client/requests/index.ts index 4be5a72cf..f5500a228 100644 --- a/src/api/resources/accounting/resources/items/client/requests/index.ts +++ b/src/api/resources/accounting/resources/items/client/requests/index.ts @@ -1,2 +1,4 @@ export { type ItemsListRequest } from "./ItemsListRequest"; +export { type ItemEndpointRequest } from "./ItemEndpointRequest"; export { type ItemsRetrieveRequest } from "./ItemsRetrieveRequest"; +export { type PatchedItemEndpointRequest } from "./PatchedItemEndpointRequest"; diff --git a/src/api/resources/accounting/resources/journalEntries/client/Client.ts b/src/api/resources/accounting/resources/journalEntries/client/Client.ts index d78af2ede..84178e7f0 100644 --- a/src/api/resources/accounting/resources/journalEntries/client/Client.ts +++ b/src/api/resources/accounting/resources/journalEntries/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace JournalEntries { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace JournalEntries { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class JournalEntries { - constructor(protected readonly _options: JournalEntries.Options) {} + protected readonly _options: JournalEntries.Options; + + constructor(_options: JournalEntries.Options) { + this._options = _options; + } /** * Returns a list of `JournalEntry` objects. @@ -145,23 +152,15 @@ export class JournalEntries { "accounting/v1/journal-entries", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -183,6 +182,7 @@ export class JournalEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -191,12 +191,14 @@ export class JournalEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/journal-entries."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -241,20 +243,14 @@ export class JournalEntries { "accounting/v1/journal-entries", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -282,6 +278,7 @@ export class JournalEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -290,6 +287,7 @@ export class JournalEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -298,6 +296,7 @@ export class JournalEntries { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -353,23 +352,15 @@ export class JournalEntries { `accounting/v1/journal-entries/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -391,6 +382,7 @@ export class JournalEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -399,6 +391,7 @@ export class JournalEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -407,6 +400,7 @@ export class JournalEntries { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -431,8 +425,15 @@ export class JournalEntries { request: Merge.accounting.JournalEntriesLinesRemoteFieldClassesListRequest = {}, requestOptions?: JournalEntries.RequestOptions, ): Promise> { - const { cursor, includeDeletedData, includeRemoteData, includeShellData, isCommonModelField, pageSize } = - request; + const { + cursor, + includeDeletedData, + includeRemoteData, + includeShellData, + isCommonModelField, + isCustom, + pageSize, + } = request; const _queryParams: Record = {}; if (cursor != null) { _queryParams["cursor"] = cursor; @@ -454,6 +455,10 @@ export class JournalEntries { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -466,23 +471,15 @@ export class JournalEntries { "accounting/v1/journal-entries/lines/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -504,6 +501,7 @@ export class JournalEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -512,6 +510,7 @@ export class JournalEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -520,6 +519,7 @@ export class JournalEntries { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -549,22 +549,14 @@ export class JournalEntries { "accounting/v1/journal-entries/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -586,6 +578,7 @@ export class JournalEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -594,6 +587,7 @@ export class JournalEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -602,6 +596,7 @@ export class JournalEntries { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -626,8 +621,15 @@ export class JournalEntries { request: Merge.accounting.JournalEntriesRemoteFieldClassesListRequest = {}, requestOptions?: JournalEntries.RequestOptions, ): Promise> { - const { cursor, includeDeletedData, includeRemoteData, includeShellData, isCommonModelField, pageSize } = - request; + const { + cursor, + includeDeletedData, + includeRemoteData, + includeShellData, + isCommonModelField, + isCustom, + pageSize, + } = request; const _queryParams: Record = {}; if (cursor != null) { _queryParams["cursor"] = cursor; @@ -649,6 +651,10 @@ export class JournalEntries { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -661,23 +667,15 @@ export class JournalEntries { "accounting/v1/journal-entries/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -699,6 +697,7 @@ export class JournalEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -707,6 +706,7 @@ export class JournalEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -715,6 +715,7 @@ export class JournalEntries { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/journalEntries/client/requests/JournalEntriesLinesRemoteFieldClassesListRequest.ts b/src/api/resources/accounting/resources/journalEntries/client/requests/JournalEntriesLinesRemoteFieldClassesListRequest.ts index 0e376d73e..e91acfa9f 100644 --- a/src/api/resources/accounting/resources/journalEntries/client/requests/JournalEntriesLinesRemoteFieldClassesListRequest.ts +++ b/src/api/resources/accounting/resources/journalEntries/client/requests/JournalEntriesLinesRemoteFieldClassesListRequest.ts @@ -27,6 +27,10 @@ export interface JournalEntriesLinesRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/accounting/resources/journalEntries/client/requests/JournalEntriesRemoteFieldClassesListRequest.ts b/src/api/resources/accounting/resources/journalEntries/client/requests/JournalEntriesRemoteFieldClassesListRequest.ts index b1a7b59c1..0d24489cd 100644 --- a/src/api/resources/accounting/resources/journalEntries/client/requests/JournalEntriesRemoteFieldClassesListRequest.ts +++ b/src/api/resources/accounting/resources/journalEntries/client/requests/JournalEntriesRemoteFieldClassesListRequest.ts @@ -27,6 +27,10 @@ export interface JournalEntriesRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/accounting/resources/linkToken/client/Client.ts b/src/api/resources/accounting/resources/linkToken/client/Client.ts index f6a6be7e7..c38752604 100644 --- a/src/api/resources/accounting/resources/linkToken/client/Client.ts +++ b/src/api/resources/accounting/resources/linkToken/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace LinkToken { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace LinkToken { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class LinkToken { - constructor(protected readonly _options: LinkToken.Options) {} + protected readonly _options: LinkToken.Options; + + constructor(_options: LinkToken.Options) { + this._options = _options; + } /** * Creates a link token to be used when linking a new end user. @@ -70,20 +77,14 @@ export class LinkToken { "accounting/v1/link-token", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.accounting.EndUserDetailsRequest.jsonOrThrow(request, { @@ -110,6 +111,7 @@ export class LinkToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -118,12 +120,14 @@ export class LinkToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /accounting/v1/link-token."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/linkToken/client/requests/EndUserDetailsRequest.ts b/src/api/resources/accounting/resources/linkToken/client/requests/EndUserDetailsRequest.ts index d0113c5e8..3655c9917 100644 --- a/src/api/resources/accounting/resources/linkToken/client/requests/EndUserDetailsRequest.ts +++ b/src/api/resources/accounting/resources/linkToken/client/requests/EndUserDetailsRequest.ts @@ -43,7 +43,7 @@ export interface EndUserDetailsRequest { * * `en` - en * * `de` - de */ - language?: Merge.accounting.LanguageEnum; + language?: Merge.accounting.EndUserDetailsRequestLanguage; /** The boolean that indicates whether initial, periodic, and force syncs will be disabled. */ areSyncsDisabled?: boolean; /** A JSON object containing integration-specific configuration options. */ diff --git a/src/api/resources/accounting/resources/linkToken/index.ts b/src/api/resources/accounting/resources/linkToken/index.ts index 5ec76921e..c9240f83b 100644 --- a/src/api/resources/accounting/resources/linkToken/index.ts +++ b/src/api/resources/accounting/resources/linkToken/index.ts @@ -1 +1,2 @@ +export * from "./types"; export * from "./client"; diff --git a/src/api/resources/accounting/resources/linkToken/types/EndUserDetailsRequestLanguage.ts b/src/api/resources/accounting/resources/linkToken/types/EndUserDetailsRequestLanguage.ts new file mode 100644 index 000000000..290dbc6fa --- /dev/null +++ b/src/api/resources/accounting/resources/linkToken/types/EndUserDetailsRequestLanguage.ts @@ -0,0 +1,13 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../../../index"; + +/** + * The following subset of IETF language tags can be used to configure localization. + * + * * `en` - en + * * `de` - de + */ +export type EndUserDetailsRequestLanguage = Merge.accounting.LanguageEnum | string; diff --git a/src/api/resources/accounting/resources/linkToken/types/index.ts b/src/api/resources/accounting/resources/linkToken/types/index.ts new file mode 100644 index 000000000..c90e13c37 --- /dev/null +++ b/src/api/resources/accounting/resources/linkToken/types/index.ts @@ -0,0 +1 @@ +export * from "./EndUserDetailsRequestLanguage"; diff --git a/src/api/resources/accounting/resources/linkedAccounts/client/Client.ts b/src/api/resources/accounting/resources/linkedAccounts/client/Client.ts index 30002415e..4a661e15e 100644 --- a/src/api/resources/accounting/resources/linkedAccounts/client/Client.ts +++ b/src/api/resources/accounting/resources/linkedAccounts/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace LinkedAccounts { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace LinkedAccounts { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class LinkedAccounts { - constructor(protected readonly _options: LinkedAccounts.Options) {} + protected readonly _options: LinkedAccounts.Options; + + constructor(_options: LinkedAccounts.Options) { + this._options = _options; + } /** * List linked accounts for your organization. @@ -135,23 +142,15 @@ export class LinkedAccounts { "accounting/v1/linked-accounts", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -173,6 +172,7 @@ export class LinkedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -181,12 +181,14 @@ export class LinkedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/linked-accounts."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/passthrough/client/Client.ts b/src/api/resources/accounting/resources/passthrough/client/Client.ts index 058d2441f..74c0ae6ca 100644 --- a/src/api/resources/accounting/resources/passthrough/client/Client.ts +++ b/src/api/resources/accounting/resources/passthrough/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Passthrough { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Passthrough { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Passthrough { - constructor(protected readonly _options: Passthrough.Options) {} + protected readonly _options: Passthrough.Options; + + constructor(_options: Passthrough.Options) { + this._options = _options; + } /** * Pull data from an endpoint not currently supported by Merge. @@ -68,20 +75,14 @@ export class Passthrough { "accounting/v1/passthrough", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.accounting.DataPassthroughRequest.jsonOrThrow(request, { @@ -108,6 +109,7 @@ export class Passthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -116,12 +118,14 @@ export class Passthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /accounting/v1/passthrough."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/paymentMethods/client/Client.ts b/src/api/resources/accounting/resources/paymentMethods/client/Client.ts index 68fda1ba3..c05a5dd4f 100644 --- a/src/api/resources/accounting/resources/paymentMethods/client/Client.ts +++ b/src/api/resources/accounting/resources/paymentMethods/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace PaymentMethods { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace PaymentMethods { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class PaymentMethods { - constructor(protected readonly _options: PaymentMethods.Options) {} + protected readonly _options: PaymentMethods.Options; + + constructor(_options: PaymentMethods.Options) { + this._options = _options; + } /** * Returns a list of `PaymentMethod` objects. @@ -87,23 +94,15 @@ export class PaymentMethods { "accounting/v1/payment-methods", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -125,6 +124,7 @@ export class PaymentMethods { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -133,12 +133,14 @@ export class PaymentMethods { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/payment-methods."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -184,23 +186,15 @@ export class PaymentMethods { `accounting/v1/payment-methods/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -222,6 +216,7 @@ export class PaymentMethods { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -230,6 +225,7 @@ export class PaymentMethods { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -238,6 +234,7 @@ export class PaymentMethods { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/paymentTerms/client/Client.ts b/src/api/resources/accounting/resources/paymentTerms/client/Client.ts index c99be2e47..993a207f1 100644 --- a/src/api/resources/accounting/resources/paymentTerms/client/Client.ts +++ b/src/api/resources/accounting/resources/paymentTerms/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace PaymentTerms { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace PaymentTerms { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class PaymentTerms { - constructor(protected readonly _options: PaymentTerms.Options) {} + protected readonly _options: PaymentTerms.Options; + + constructor(_options: PaymentTerms.Options) { + this._options = _options; + } /** * Returns a list of `PaymentTerm` objects. @@ -91,23 +98,15 @@ export class PaymentTerms { "accounting/v1/payment-terms", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -129,6 +128,7 @@ export class PaymentTerms { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -137,12 +137,14 @@ export class PaymentTerms { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/payment-terms."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -192,23 +194,15 @@ export class PaymentTerms { `accounting/v1/payment-terms/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -230,6 +224,7 @@ export class PaymentTerms { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -238,6 +233,7 @@ export class PaymentTerms { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -246,6 +242,7 @@ export class PaymentTerms { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/payments/client/Client.ts b/src/api/resources/accounting/resources/payments/client/Client.ts index cad642cf3..1c4bd6805 100644 --- a/src/api/resources/accounting/resources/payments/client/Client.ts +++ b/src/api/resources/accounting/resources/payments/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Payments { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Payments { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Payments { - constructor(protected readonly _options: Payments.Options) {} + protected readonly _options: Payments.Options; + + constructor(_options: Payments.Options) { + this._options = _options; + } /** * Returns a list of `Payment` objects. @@ -155,23 +162,15 @@ export class Payments { "accounting/v1/payments", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -193,6 +192,7 @@ export class Payments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -201,12 +201,14 @@ export class Payments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/payments."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -251,20 +253,14 @@ export class Payments { "accounting/v1/payments", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -290,6 +286,7 @@ export class Payments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -298,12 +295,14 @@ export class Payments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /accounting/v1/payments."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -359,23 +358,15 @@ export class Payments { `accounting/v1/payments/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -397,6 +388,7 @@ export class Payments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -405,12 +397,14 @@ export class Payments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/payments/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -458,20 +452,14 @@ export class Payments { `accounting/v1/payments/${encodeURIComponent(id)}`, ), method: "PATCH", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -499,6 +487,7 @@ export class Payments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -507,12 +496,14 @@ export class Payments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling PATCH /accounting/v1/payments/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -537,8 +528,15 @@ export class Payments { request: Merge.accounting.PaymentsLineItemsRemoteFieldClassesListRequest = {}, requestOptions?: Payments.RequestOptions, ): Promise> { - const { cursor, includeDeletedData, includeRemoteData, includeShellData, isCommonModelField, pageSize } = - request; + const { + cursor, + includeDeletedData, + includeRemoteData, + includeShellData, + isCommonModelField, + isCustom, + pageSize, + } = request; const _queryParams: Record = {}; if (cursor != null) { _queryParams["cursor"] = cursor; @@ -560,6 +558,10 @@ export class Payments { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -572,23 +574,15 @@ export class Payments { "accounting/v1/payments/line-items/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -610,6 +604,7 @@ export class Payments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -618,6 +613,7 @@ export class Payments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -626,6 +622,7 @@ export class Payments { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -658,22 +655,14 @@ export class Payments { `accounting/v1/payments/meta/patch/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -695,6 +684,7 @@ export class Payments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -703,6 +693,7 @@ export class Payments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -711,6 +702,7 @@ export class Payments { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -740,22 +732,14 @@ export class Payments { "accounting/v1/payments/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -777,6 +761,7 @@ export class Payments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -785,6 +770,7 @@ export class Payments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -793,6 +779,7 @@ export class Payments { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -817,8 +804,15 @@ export class Payments { request: Merge.accounting.PaymentsRemoteFieldClassesListRequest = {}, requestOptions?: Payments.RequestOptions, ): Promise> { - const { cursor, includeDeletedData, includeRemoteData, includeShellData, isCommonModelField, pageSize } = - request; + const { + cursor, + includeDeletedData, + includeRemoteData, + includeShellData, + isCommonModelField, + isCustom, + pageSize, + } = request; const _queryParams: Record = {}; if (cursor != null) { _queryParams["cursor"] = cursor; @@ -840,6 +834,10 @@ export class Payments { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -852,23 +850,15 @@ export class Payments { "accounting/v1/payments/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -890,6 +880,7 @@ export class Payments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -898,6 +889,7 @@ export class Payments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -906,6 +898,7 @@ export class Payments { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/payments/client/requests/PaymentsLineItemsRemoteFieldClassesListRequest.ts b/src/api/resources/accounting/resources/payments/client/requests/PaymentsLineItemsRemoteFieldClassesListRequest.ts index 2929623d3..80ad52bb6 100644 --- a/src/api/resources/accounting/resources/payments/client/requests/PaymentsLineItemsRemoteFieldClassesListRequest.ts +++ b/src/api/resources/accounting/resources/payments/client/requests/PaymentsLineItemsRemoteFieldClassesListRequest.ts @@ -27,6 +27,10 @@ export interface PaymentsLineItemsRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/accounting/resources/payments/client/requests/PaymentsRemoteFieldClassesListRequest.ts b/src/api/resources/accounting/resources/payments/client/requests/PaymentsRemoteFieldClassesListRequest.ts index 82802a980..3f212e646 100644 --- a/src/api/resources/accounting/resources/payments/client/requests/PaymentsRemoteFieldClassesListRequest.ts +++ b/src/api/resources/accounting/resources/payments/client/requests/PaymentsRemoteFieldClassesListRequest.ts @@ -27,6 +27,10 @@ export interface PaymentsRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/accounting/resources/phoneNumbers/client/Client.ts b/src/api/resources/accounting/resources/phoneNumbers/client/Client.ts index a6d61056c..3c7399427 100644 --- a/src/api/resources/accounting/resources/phoneNumbers/client/Client.ts +++ b/src/api/resources/accounting/resources/phoneNumbers/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace PhoneNumbers { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace PhoneNumbers { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class PhoneNumbers { - constructor(protected readonly _options: PhoneNumbers.Options) {} + protected readonly _options: PhoneNumbers.Options; + + constructor(_options: PhoneNumbers.Options) { + this._options = _options; + } /** * Returns an `AccountingPhoneNumber` object with the given `id`. @@ -78,23 +85,15 @@ export class PhoneNumbers { `accounting/v1/phone-numbers/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -116,6 +115,7 @@ export class PhoneNumbers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -124,6 +124,7 @@ export class PhoneNumbers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -132,6 +133,7 @@ export class PhoneNumbers { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/projects/client/Client.ts b/src/api/resources/accounting/resources/projects/client/Client.ts index abdf45be8..0c54d00dc 100644 --- a/src/api/resources/accounting/resources/projects/client/Client.ts +++ b/src/api/resources/accounting/resources/projects/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Projects { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Projects { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Projects { - constructor(protected readonly _options: Projects.Options) {} + protected readonly _options: Projects.Options; + + constructor(_options: Projects.Options) { + this._options = _options; + } /** * Returns a list of `Project` objects. @@ -93,23 +100,15 @@ export class Projects { "accounting/v1/projects", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -131,6 +130,7 @@ export class Projects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -139,12 +139,14 @@ export class Projects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/projects."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -196,23 +198,15 @@ export class Projects { `accounting/v1/projects/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -234,6 +228,7 @@ export class Projects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -242,12 +237,14 @@ export class Projects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/projects/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/purchaseOrders/client/Client.ts b/src/api/resources/accounting/resources/purchaseOrders/client/Client.ts index c13b12075..74dcfbe57 100644 --- a/src/api/resources/accounting/resources/purchaseOrders/client/Client.ts +++ b/src/api/resources/accounting/resources/purchaseOrders/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace PurchaseOrders { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace PurchaseOrders { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class PurchaseOrders { - constructor(protected readonly _options: PurchaseOrders.Options) {} + protected readonly _options: PurchaseOrders.Options; + + constructor(_options: PurchaseOrders.Options) { + this._options = _options; + } /** * Returns a list of `PurchaseOrder` objects. @@ -155,23 +162,15 @@ export class PurchaseOrders { "accounting/v1/purchase-orders", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -193,6 +192,7 @@ export class PurchaseOrders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -201,12 +201,14 @@ export class PurchaseOrders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/purchase-orders."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -251,20 +253,14 @@ export class PurchaseOrders { "accounting/v1/purchase-orders", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -292,6 +288,7 @@ export class PurchaseOrders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -300,6 +297,7 @@ export class PurchaseOrders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -308,6 +306,7 @@ export class PurchaseOrders { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -372,23 +371,15 @@ export class PurchaseOrders { `accounting/v1/purchase-orders/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -410,6 +401,7 @@ export class PurchaseOrders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -418,6 +410,7 @@ export class PurchaseOrders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -426,6 +419,7 @@ export class PurchaseOrders { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -450,8 +444,15 @@ export class PurchaseOrders { request: Merge.accounting.PurchaseOrdersLineItemsRemoteFieldClassesListRequest = {}, requestOptions?: PurchaseOrders.RequestOptions, ): Promise> { - const { cursor, includeDeletedData, includeRemoteData, includeShellData, isCommonModelField, pageSize } = - request; + const { + cursor, + includeDeletedData, + includeRemoteData, + includeShellData, + isCommonModelField, + isCustom, + pageSize, + } = request; const _queryParams: Record = {}; if (cursor != null) { _queryParams["cursor"] = cursor; @@ -473,6 +474,10 @@ export class PurchaseOrders { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -485,23 +490,15 @@ export class PurchaseOrders { "accounting/v1/purchase-orders/line-items/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -523,6 +520,7 @@ export class PurchaseOrders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -531,6 +529,7 @@ export class PurchaseOrders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -539,6 +538,7 @@ export class PurchaseOrders { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -568,22 +568,14 @@ export class PurchaseOrders { "accounting/v1/purchase-orders/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -605,6 +597,7 @@ export class PurchaseOrders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -613,6 +606,7 @@ export class PurchaseOrders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -621,6 +615,7 @@ export class PurchaseOrders { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -645,8 +640,15 @@ export class PurchaseOrders { request: Merge.accounting.PurchaseOrdersRemoteFieldClassesListRequest = {}, requestOptions?: PurchaseOrders.RequestOptions, ): Promise> { - const { cursor, includeDeletedData, includeRemoteData, includeShellData, isCommonModelField, pageSize } = - request; + const { + cursor, + includeDeletedData, + includeRemoteData, + includeShellData, + isCommonModelField, + isCustom, + pageSize, + } = request; const _queryParams: Record = {}; if (cursor != null) { _queryParams["cursor"] = cursor; @@ -668,6 +670,10 @@ export class PurchaseOrders { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -680,23 +686,15 @@ export class PurchaseOrders { "accounting/v1/purchase-orders/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -718,6 +716,7 @@ export class PurchaseOrders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -726,6 +725,7 @@ export class PurchaseOrders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -734,6 +734,7 @@ export class PurchaseOrders { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/purchaseOrders/client/requests/PurchaseOrdersLineItemsRemoteFieldClassesListRequest.ts b/src/api/resources/accounting/resources/purchaseOrders/client/requests/PurchaseOrdersLineItemsRemoteFieldClassesListRequest.ts index 815358c7b..eb8915e6a 100644 --- a/src/api/resources/accounting/resources/purchaseOrders/client/requests/PurchaseOrdersLineItemsRemoteFieldClassesListRequest.ts +++ b/src/api/resources/accounting/resources/purchaseOrders/client/requests/PurchaseOrdersLineItemsRemoteFieldClassesListRequest.ts @@ -27,6 +27,10 @@ export interface PurchaseOrdersLineItemsRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/accounting/resources/purchaseOrders/client/requests/PurchaseOrdersRemoteFieldClassesListRequest.ts b/src/api/resources/accounting/resources/purchaseOrders/client/requests/PurchaseOrdersRemoteFieldClassesListRequest.ts index 210d5622c..68e95403e 100644 --- a/src/api/resources/accounting/resources/purchaseOrders/client/requests/PurchaseOrdersRemoteFieldClassesListRequest.ts +++ b/src/api/resources/accounting/resources/purchaseOrders/client/requests/PurchaseOrdersRemoteFieldClassesListRequest.ts @@ -27,6 +27,10 @@ export interface PurchaseOrdersRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/accounting/resources/regenerateKey/client/Client.ts b/src/api/resources/accounting/resources/regenerateKey/client/Client.ts index f8ca46ed8..34b6151b2 100644 --- a/src/api/resources/accounting/resources/regenerateKey/client/Client.ts +++ b/src/api/resources/accounting/resources/regenerateKey/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace RegenerateKey { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace RegenerateKey { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class RegenerateKey { - constructor(protected readonly _options: RegenerateKey.Options) {} + protected readonly _options: RegenerateKey.Options; + + constructor(_options: RegenerateKey.Options) { + this._options = _options; + } /** * Exchange remote keys. @@ -67,20 +74,14 @@ export class RegenerateKey { "accounting/v1/regenerate-key", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.accounting.RemoteKeyForRegenerationRequest.jsonOrThrow(request, { @@ -107,6 +108,7 @@ export class RegenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -115,12 +117,14 @@ export class RegenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /accounting/v1/regenerate-key."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/scopes/client/Client.ts b/src/api/resources/accounting/resources/scopes/client/Client.ts index d59beebf8..55c95e570 100644 --- a/src/api/resources/accounting/resources/scopes/client/Client.ts +++ b/src/api/resources/accounting/resources/scopes/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Scopes { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Scopes { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Scopes { - constructor(protected readonly _options: Scopes.Options) {} + protected readonly _options: Scopes.Options; + + constructor(_options: Scopes.Options) { + this._options = _options; + } /** * Get the default permissions for Merge Common Models and fields across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). @@ -62,22 +69,14 @@ export class Scopes { "accounting/v1/default-scopes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/default-scopes."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -142,22 +144,14 @@ export class Scopes { "accounting/v1/linked-account-scopes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -179,6 +173,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -187,6 +182,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -195,6 +191,7 @@ export class Scopes { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -250,20 +247,14 @@ export class Scopes { "accounting/v1/linked-account-scopes", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.accounting.LinkedAccountCommonModelScopeDeserializerRequest.jsonOrThrow(request, { @@ -290,6 +281,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -298,6 +290,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -306,6 +299,7 @@ export class Scopes { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/syncStatus/client/Client.ts b/src/api/resources/accounting/resources/syncStatus/client/Client.ts index 3c789085b..5b8259d8e 100644 --- a/src/api/resources/accounting/resources/syncStatus/client/Client.ts +++ b/src/api/resources/accounting/resources/syncStatus/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace SyncStatus { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace SyncStatus { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class SyncStatus { - constructor(protected readonly _options: SyncStatus.Options) {} + protected readonly _options: SyncStatus.Options; + + constructor(_options: SyncStatus.Options) { + this._options = _options; + } /** * Get sync status for the current sync and the most recently finished sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` represents the most recent time any sync completed. These timestamps may correspond to different sync instances which may result in a sync start time being later than a separate sync completed time. To ensure you are retrieving the latest available data reference the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). @@ -75,23 +82,15 @@ export class SyncStatus { "accounting/v1/sync-status", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -113,6 +112,7 @@ export class SyncStatus { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -121,12 +121,14 @@ export class SyncStatus { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/sync-status."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/taxRates/client/Client.ts b/src/api/resources/accounting/resources/taxRates/client/Client.ts index bf03a5e92..ac3d86482 100644 --- a/src/api/resources/accounting/resources/taxRates/client/Client.ts +++ b/src/api/resources/accounting/resources/taxRates/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace TaxRates { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace TaxRates { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class TaxRates { - constructor(protected readonly _options: TaxRates.Options) {} + protected readonly _options: TaxRates.Options; + + constructor(_options: TaxRates.Options) { + this._options = _options; + } /** * Returns a list of `TaxRate` objects. @@ -133,23 +140,15 @@ export class TaxRates { "accounting/v1/tax-rates", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -171,6 +170,7 @@ export class TaxRates { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -179,12 +179,14 @@ export class TaxRates { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/tax-rates."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -234,23 +236,15 @@ export class TaxRates { `accounting/v1/tax-rates/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -272,6 +266,7 @@ export class TaxRates { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -280,12 +275,14 @@ export class TaxRates { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/tax-rates/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/trackingCategories/client/Client.ts b/src/api/resources/accounting/resources/trackingCategories/client/Client.ts index b161003e4..c11ab282b 100644 --- a/src/api/resources/accounting/resources/trackingCategories/client/Client.ts +++ b/src/api/resources/accounting/resources/trackingCategories/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace TrackingCategories { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace TrackingCategories { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class TrackingCategories { - constructor(protected readonly _options: TrackingCategories.Options) {} + protected readonly _options: TrackingCategories.Options; + + constructor(_options: TrackingCategories.Options) { + this._options = _options; + } /** * Returns a list of `TrackingCategory` objects. @@ -153,23 +160,15 @@ export class TrackingCategories { "accounting/v1/tracking-categories", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -191,6 +190,7 @@ export class TrackingCategories { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -199,6 +199,7 @@ export class TrackingCategories { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -207,6 +208,7 @@ export class TrackingCategories { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -264,23 +266,15 @@ export class TrackingCategories { `accounting/v1/tracking-categories/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -302,6 +296,7 @@ export class TrackingCategories { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -310,6 +305,7 @@ export class TrackingCategories { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -318,6 +314,7 @@ export class TrackingCategories { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/trackingCategories/client/requests/TrackingCategoriesListRequest.ts b/src/api/resources/accounting/resources/trackingCategories/client/requests/TrackingCategoriesListRequest.ts index e21d25b2d..a7779080b 100644 --- a/src/api/resources/accounting/resources/trackingCategories/client/requests/TrackingCategoriesListRequest.ts +++ b/src/api/resources/accounting/resources/trackingCategories/client/requests/TrackingCategoriesListRequest.ts @@ -52,7 +52,7 @@ export interface TrackingCategoriesListRequest { */ modifiedBefore?: Date; /** - * If provided, will only return TrackingCategories with this name. + * If provided, will only return tracking categories with this name. */ name?: string; /** diff --git a/src/api/resources/accounting/resources/transactions/client/Client.ts b/src/api/resources/accounting/resources/transactions/client/Client.ts index fb0f6b173..88b747b8c 100644 --- a/src/api/resources/accounting/resources/transactions/client/Client.ts +++ b/src/api/resources/accounting/resources/transactions/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Transactions { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Transactions { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Transactions { - constructor(protected readonly _options: Transactions.Options) {} + protected readonly _options: Transactions.Options; + + constructor(_options: Transactions.Options) { + this._options = _options; + } /** * Returns a list of `Transaction` objects. @@ -140,23 +147,15 @@ export class Transactions { "accounting/v1/transactions", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -178,6 +177,7 @@ export class Transactions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -186,12 +186,14 @@ export class Transactions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/transactions."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -243,23 +245,15 @@ export class Transactions { `accounting/v1/transactions/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -281,6 +275,7 @@ export class Transactions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -289,6 +284,7 @@ export class Transactions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -297,6 +293,7 @@ export class Transactions { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/vendorCredits/client/Client.ts b/src/api/resources/accounting/resources/vendorCredits/client/Client.ts index c00603e71..942dbb6aa 100644 --- a/src/api/resources/accounting/resources/vendorCredits/client/Client.ts +++ b/src/api/resources/accounting/resources/vendorCredits/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace VendorCredits { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace VendorCredits { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class VendorCredits { - constructor(protected readonly _options: VendorCredits.Options) {} + protected readonly _options: VendorCredits.Options; + + constructor(_options: VendorCredits.Options) { + this._options = _options; + } /** * Returns a list of `VendorCredit` objects. @@ -140,23 +147,15 @@ export class VendorCredits { "accounting/v1/vendor-credits", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -178,6 +177,7 @@ export class VendorCredits { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -186,12 +186,14 @@ export class VendorCredits { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /accounting/v1/vendor-credits."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -236,20 +238,14 @@ export class VendorCredits { "accounting/v1/vendor-credits", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -277,6 +273,7 @@ export class VendorCredits { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -285,12 +282,14 @@ export class VendorCredits { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /accounting/v1/vendor-credits."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -342,23 +341,15 @@ export class VendorCredits { `accounting/v1/vendor-credits/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -380,6 +371,7 @@ export class VendorCredits { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -388,6 +380,7 @@ export class VendorCredits { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -396,6 +389,7 @@ export class VendorCredits { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -425,22 +419,14 @@ export class VendorCredits { "accounting/v1/vendor-credits/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -462,6 +448,7 @@ export class VendorCredits { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -470,6 +457,7 @@ export class VendorCredits { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -478,6 +466,7 @@ export class VendorCredits { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/resources/webhookReceivers/client/Client.ts b/src/api/resources/accounting/resources/webhookReceivers/client/Client.ts index 7243b114b..ff16208ea 100644 --- a/src/api/resources/accounting/resources/webhookReceivers/client/Client.ts +++ b/src/api/resources/accounting/resources/webhookReceivers/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace WebhookReceivers { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace WebhookReceivers { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class WebhookReceivers { - constructor(protected readonly _options: WebhookReceivers.Options) {} + protected readonly _options: WebhookReceivers.Options; + + constructor(_options: WebhookReceivers.Options) { + this._options = _options; + } /** * Returns a list of `WebhookReceiver` objects. @@ -62,22 +69,14 @@ export class WebhookReceivers { "accounting/v1/webhook-receivers", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,6 +107,7 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -115,6 +116,7 @@ export class WebhookReceivers { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -150,20 +152,14 @@ export class WebhookReceivers { "accounting/v1/webhook-receivers", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.accounting.WebhookReceiverRequest.jsonOrThrow(request, { @@ -190,6 +186,7 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -198,6 +195,7 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -206,6 +204,7 @@ export class WebhookReceivers { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/accounting/types/AccountDetails.ts b/src/api/resources/accounting/types/AccountDetails.ts index 5f0fde537..c19af095e 100644 --- a/src/api/resources/accounting/types/AccountDetails.ts +++ b/src/api/resources/accounting/types/AccountDetails.ts @@ -8,7 +8,7 @@ export interface AccountDetails { id?: string; integration?: string; integrationSlug?: string; - category?: Merge.accounting.CategoryEnum; + category?: Merge.accounting.AccountDetailsCategory; endUserOriginId?: string; endUserOrganizationName?: string; endUserEmailAddress?: string; diff --git a/src/api/resources/accounting/types/AccountDetailsAndActions.ts b/src/api/resources/accounting/types/AccountDetailsAndActions.ts index 9f049ddb2..d9c1c7cd8 100644 --- a/src/api/resources/accounting/types/AccountDetailsAndActions.ts +++ b/src/api/resources/accounting/types/AccountDetailsAndActions.ts @@ -14,8 +14,8 @@ import * as Merge from "../../../index"; */ export interface AccountDetailsAndActions { id: string; - category?: Merge.accounting.CategoryEnum; - status: Merge.accounting.AccountDetailsAndActionsStatusEnum; + category?: Merge.accounting.AccountDetailsAndActionsCategory; + status: Merge.accounting.AccountDetailsAndActionsStatus; statusDetail?: string; endUserOriginId?: string; endUserOrganizationName: string; @@ -28,4 +28,5 @@ export interface AccountDetailsAndActions { integration?: Merge.accounting.AccountDetailsAndActionsIntegration; accountType: string; completedAt: Date; + integrationSpecificFields?: Record; } diff --git a/src/api/resources/accounting/types/AccountDetailsAndActionsCategory.ts b/src/api/resources/accounting/types/AccountDetailsAndActionsCategory.ts new file mode 100644 index 000000000..2d47dfe4d --- /dev/null +++ b/src/api/resources/accounting/types/AccountDetailsAndActionsCategory.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type AccountDetailsAndActionsCategory = Merge.accounting.CategoryEnum | string; diff --git a/src/api/resources/accounting/types/AccountDetailsAndActionsStatus.ts b/src/api/resources/accounting/types/AccountDetailsAndActionsStatus.ts new file mode 100644 index 000000000..9aec4a687 --- /dev/null +++ b/src/api/resources/accounting/types/AccountDetailsAndActionsStatus.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type AccountDetailsAndActionsStatus = Merge.accounting.AccountDetailsAndActionsStatusEnum | string; diff --git a/src/api/resources/accounting/types/AccountDetailsCategory.ts b/src/api/resources/accounting/types/AccountDetailsCategory.ts new file mode 100644 index 000000000..76daa7eb4 --- /dev/null +++ b/src/api/resources/accounting/types/AccountDetailsCategory.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type AccountDetailsCategory = Merge.accounting.CategoryEnum | string; diff --git a/src/api/resources/accounting/types/AuditLogEvent.ts b/src/api/resources/accounting/types/AuditLogEvent.ts index 86989c419..13b47cf7d 100644 --- a/src/api/resources/accounting/types/AuditLogEvent.ts +++ b/src/api/resources/accounting/types/AuditLogEvent.ts @@ -30,6 +30,7 @@ export interface AuditLogEvent { * * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY * * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY * * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE * * `INVITED_USER` - INVITED_USER * * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED * * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED diff --git a/src/api/resources/accounting/types/AuditLogEventEventType.ts b/src/api/resources/accounting/types/AuditLogEventEventType.ts index 217799336..5633932f7 100644 --- a/src/api/resources/accounting/types/AuditLogEventEventType.ts +++ b/src/api/resources/accounting/types/AuditLogEventEventType.ts @@ -12,6 +12,7 @@ import * as Merge from "../../../index"; * * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY * * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY * * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE * * `INVITED_USER` - INVITED_USER * * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED * * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED diff --git a/src/api/resources/accounting/types/DataPassthroughRequest.ts b/src/api/resources/accounting/types/DataPassthroughRequest.ts index 8514078ee..699f0e4e0 100644 --- a/src/api/resources/accounting/types/DataPassthroughRequest.ts +++ b/src/api/resources/accounting/types/DataPassthroughRequest.ts @@ -13,7 +13,7 @@ import * as Merge from "../../../index"; * Create a `DataPassthrough` to get team hierarchies from your Rippling integration. */ export interface DataPassthroughRequest { - method: Merge.accounting.MethodEnum; + method: Merge.accounting.DataPassthroughRequestMethod; /** The path of the request in the third party's platform. */ path: string; /** An optional override of the third party's base url for the request. */ diff --git a/src/api/resources/accounting/types/DataPassthroughRequestMethod.ts b/src/api/resources/accounting/types/DataPassthroughRequestMethod.ts new file mode 100644 index 000000000..0ab1dfdc9 --- /dev/null +++ b/src/api/resources/accounting/types/DataPassthroughRequestMethod.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type DataPassthroughRequestMethod = Merge.accounting.MethodEnum | string; diff --git a/src/api/resources/accounting/types/EventTypeEnum.ts b/src/api/resources/accounting/types/EventTypeEnum.ts index 316d8531b..261c00e43 100644 --- a/src/api/resources/accounting/types/EventTypeEnum.ts +++ b/src/api/resources/accounting/types/EventTypeEnum.ts @@ -8,6 +8,7 @@ * * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY * * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY * * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE * * `INVITED_USER` - INVITED_USER * * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED * * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED @@ -52,6 +53,7 @@ export type EventTypeEnum = | "CREATED_TEST_API_KEY" | "DELETED_TEST_API_KEY" | "REGENERATED_PRODUCTION_API_KEY" + | "REGENERATED_WEBHOOK_SIGNATURE" | "INVITED_USER" | "TWO_FACTOR_AUTH_ENABLED" | "TWO_FACTOR_AUTH_DISABLED" @@ -95,6 +97,7 @@ export const EventTypeEnum = { CreatedTestApiKey: "CREATED_TEST_API_KEY", DeletedTestApiKey: "DELETED_TEST_API_KEY", RegeneratedProductionApiKey: "REGENERATED_PRODUCTION_API_KEY", + RegeneratedWebhookSignature: "REGENERATED_WEBHOOK_SIGNATURE", InvitedUser: "INVITED_USER", TwoFactorAuthEnabled: "TWO_FACTOR_AUTH_ENABLED", TwoFactorAuthDisabled: "TWO_FACTOR_AUTH_DISABLED", diff --git a/src/api/resources/accounting/types/ItemRequestRequest.ts b/src/api/resources/accounting/types/ItemRequestRequest.ts new file mode 100644 index 000000000..332ca822e --- /dev/null +++ b/src/api/resources/accounting/types/ItemRequestRequest.ts @@ -0,0 +1,50 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +/** + * # The Item Object + * ### Description + * The `Item` object refers to the goods involved in a transaction. + * + * ### Usage Example + * Fetch from the `LIST Items` endpoint and view a company's items. + */ +export interface ItemRequestRequest { + /** The item's name. */ + name?: string; + /** + * The item's status. + * + * * `ACTIVE` - ACTIVE + * * `ARCHIVED` - ARCHIVED + */ + status?: Merge.accounting.ItemRequestRequestStatus; + /** + * The item's type. + * + * * `INVENTORY` - INVENTORY + * * `NON_INVENTORY` - NON_INVENTORY + * * `SERVICE` - SERVICE + * * `UNKNOWN` - UNKNOWN + */ + type?: Merge.accounting.ItemRequestRequestType; + /** The item's unit price. */ + unitPrice?: number; + /** The price at which the item is purchased from a vendor. */ + purchasePrice?: number; + /** References the default account used to record a purchase of the item. */ + purchaseAccount?: Merge.accounting.ItemRequestRequestPurchaseAccount; + /** References the default account used to record a sale. */ + salesAccount?: Merge.accounting.ItemRequestRequestSalesAccount; + /** The company the item belongs to. */ + company?: Merge.accounting.ItemRequestRequestCompany; + /** The default purchase tax rate for this item. */ + purchaseTaxRate?: Merge.accounting.ItemRequestRequestPurchaseTaxRate; + /** The default sales tax rate for this item. */ + salesTaxRate?: Merge.accounting.ItemRequestRequestSalesTaxRate; + integrationParams?: Record; + linkedAccountParams?: Record; +} diff --git a/src/api/resources/accounting/types/ItemRequestRequestCompany.ts b/src/api/resources/accounting/types/ItemRequestRequestCompany.ts new file mode 100644 index 000000000..1b0b90a39 --- /dev/null +++ b/src/api/resources/accounting/types/ItemRequestRequestCompany.ts @@ -0,0 +1,10 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +/** + * The company the item belongs to. + */ +export type ItemRequestRequestCompany = string | Merge.accounting.CompanyInfo; diff --git a/src/api/resources/accounting/types/ItemRequestRequestPurchaseAccount.ts b/src/api/resources/accounting/types/ItemRequestRequestPurchaseAccount.ts new file mode 100644 index 000000000..7c405d6c8 --- /dev/null +++ b/src/api/resources/accounting/types/ItemRequestRequestPurchaseAccount.ts @@ -0,0 +1,10 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +/** + * References the default account used to record a purchase of the item. + */ +export type ItemRequestRequestPurchaseAccount = string | Merge.accounting.Account; diff --git a/src/api/resources/accounting/types/ItemRequestRequestPurchaseTaxRate.ts b/src/api/resources/accounting/types/ItemRequestRequestPurchaseTaxRate.ts new file mode 100644 index 000000000..2f3c31faf --- /dev/null +++ b/src/api/resources/accounting/types/ItemRequestRequestPurchaseTaxRate.ts @@ -0,0 +1,10 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +/** + * The default purchase tax rate for this item. + */ +export type ItemRequestRequestPurchaseTaxRate = string | Merge.accounting.TaxRate; diff --git a/src/api/resources/accounting/types/ItemRequestRequestSalesAccount.ts b/src/api/resources/accounting/types/ItemRequestRequestSalesAccount.ts new file mode 100644 index 000000000..20a0be3da --- /dev/null +++ b/src/api/resources/accounting/types/ItemRequestRequestSalesAccount.ts @@ -0,0 +1,10 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +/** + * References the default account used to record a sale. + */ +export type ItemRequestRequestSalesAccount = string | Merge.accounting.Account; diff --git a/src/api/resources/accounting/types/ItemRequestRequestSalesTaxRate.ts b/src/api/resources/accounting/types/ItemRequestRequestSalesTaxRate.ts new file mode 100644 index 000000000..b4234db60 --- /dev/null +++ b/src/api/resources/accounting/types/ItemRequestRequestSalesTaxRate.ts @@ -0,0 +1,10 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +/** + * The default sales tax rate for this item. + */ +export type ItemRequestRequestSalesTaxRate = string | Merge.accounting.TaxRate; diff --git a/src/api/resources/accounting/types/ItemRequestRequestStatus.ts b/src/api/resources/accounting/types/ItemRequestRequestStatus.ts new file mode 100644 index 000000000..34a40eab4 --- /dev/null +++ b/src/api/resources/accounting/types/ItemRequestRequestStatus.ts @@ -0,0 +1,13 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +/** + * The item's status. + * + * * `ACTIVE` - ACTIVE + * * `ARCHIVED` - ARCHIVED + */ +export type ItemRequestRequestStatus = Merge.accounting.Status7D1Enum | string; diff --git a/src/api/resources/accounting/types/ItemRequestRequestType.ts b/src/api/resources/accounting/types/ItemRequestRequestType.ts new file mode 100644 index 000000000..8167d7c19 --- /dev/null +++ b/src/api/resources/accounting/types/ItemRequestRequestType.ts @@ -0,0 +1,15 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +/** + * The item's type. + * + * * `INVENTORY` - INVENTORY + * * `NON_INVENTORY` - NON_INVENTORY + * * `SERVICE` - SERVICE + * * `UNKNOWN` - UNKNOWN + */ +export type ItemRequestRequestType = Merge.accounting.Type2BbEnum | string; diff --git a/src/api/resources/accounting/types/ItemResponse.ts b/src/api/resources/accounting/types/ItemResponse.ts new file mode 100644 index 000000000..81129d685 --- /dev/null +++ b/src/api/resources/accounting/types/ItemResponse.ts @@ -0,0 +1,12 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export interface ItemResponse { + model: Merge.accounting.Item; + warnings: Merge.accounting.WarningValidationProblem[]; + errors: Merge.accounting.ErrorValidationProblem[]; + logs?: Merge.accounting.DebugModeLog[]; +} diff --git a/src/api/resources/accounting/types/PatchedItemRequestRequest.ts b/src/api/resources/accounting/types/PatchedItemRequestRequest.ts new file mode 100644 index 000000000..c6a5ed970 --- /dev/null +++ b/src/api/resources/accounting/types/PatchedItemRequestRequest.ts @@ -0,0 +1,50 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +/** + * # The Item Object + * ### Description + * The `Item` object refers to the goods involved in a transaction. + * + * ### Usage Example + * Fetch from the `LIST Items` endpoint and view a company's items. + */ +export interface PatchedItemRequestRequest { + /** The item's name. */ + name?: string; + /** + * The item's status. + * + * * `ACTIVE` - ACTIVE + * * `ARCHIVED` - ARCHIVED + */ + status?: Merge.accounting.PatchedItemRequestRequestStatus; + /** + * The item's type. + * + * * `INVENTORY` - INVENTORY + * * `NON_INVENTORY` - NON_INVENTORY + * * `SERVICE` - SERVICE + * * `UNKNOWN` - UNKNOWN + */ + type?: Merge.accounting.PatchedItemRequestRequestType; + /** The item's unit price. */ + unitPrice?: number; + /** The price at which the item is purchased from a vendor. */ + purchasePrice?: number; + /** References the default account used to record a purchase of the item. */ + purchaseAccount?: string; + /** References the default account used to record a sale. */ + salesAccount?: string; + /** The company the item belongs to. */ + company?: string; + /** The default purchase tax rate for this item. */ + purchaseTaxRate?: string; + /** The default sales tax rate for this item. */ + salesTaxRate?: string; + integrationParams?: Record; + linkedAccountParams?: Record; +} diff --git a/src/api/resources/accounting/types/PatchedItemRequestRequestStatus.ts b/src/api/resources/accounting/types/PatchedItemRequestRequestStatus.ts new file mode 100644 index 000000000..dc5492a70 --- /dev/null +++ b/src/api/resources/accounting/types/PatchedItemRequestRequestStatus.ts @@ -0,0 +1,13 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +/** + * The item's status. + * + * * `ACTIVE` - ACTIVE + * * `ARCHIVED` - ARCHIVED + */ +export type PatchedItemRequestRequestStatus = Merge.accounting.Status7D1Enum | string; diff --git a/src/api/resources/accounting/types/PatchedItemRequestRequestType.ts b/src/api/resources/accounting/types/PatchedItemRequestRequestType.ts new file mode 100644 index 000000000..129543221 --- /dev/null +++ b/src/api/resources/accounting/types/PatchedItemRequestRequestType.ts @@ -0,0 +1,15 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +/** + * The item's type. + * + * * `INVENTORY` - INVENTORY + * * `NON_INVENTORY` - NON_INVENTORY + * * `SERVICE` - SERVICE + * * `UNKNOWN` - UNKNOWN + */ +export type PatchedItemRequestRequestType = Merge.accounting.Type2BbEnum | string; diff --git a/src/api/resources/accounting/types/SyncStatus.ts b/src/api/resources/accounting/types/SyncStatus.ts index 5fb05aab8..6ab07ec65 100644 --- a/src/api/resources/accounting/types/SyncStatus.ts +++ b/src/api/resources/accounting/types/SyncStatus.ts @@ -19,7 +19,7 @@ export interface SyncStatus { nextSyncStart?: Date; lastSyncResult?: Merge.accounting.LastSyncResultEnum; lastSyncFinished?: Date; - status: Merge.accounting.StatusFd5Enum; + status: Merge.accounting.SyncStatusStatus; isInitialSync: boolean; selectiveSyncConfigurationsUsage?: Merge.accounting.SelectiveSyncConfigurationsUsageEnum; } diff --git a/src/api/resources/accounting/types/SyncStatusStatus.ts b/src/api/resources/accounting/types/SyncStatusStatus.ts new file mode 100644 index 000000000..dd2052ea6 --- /dev/null +++ b/src/api/resources/accounting/types/SyncStatusStatus.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type SyncStatusStatus = Merge.accounting.StatusFd5Enum | string; diff --git a/src/api/resources/accounting/types/Type2BbEnum.ts b/src/api/resources/accounting/types/Type2BbEnum.ts new file mode 100644 index 000000000..7c3607c49 --- /dev/null +++ b/src/api/resources/accounting/types/Type2BbEnum.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * * `INVENTORY` - INVENTORY + * * `NON_INVENTORY` - NON_INVENTORY + * * `SERVICE` - SERVICE + * * `UNKNOWN` - UNKNOWN + */ +export type Type2BbEnum = "INVENTORY" | "NON_INVENTORY" | "SERVICE" | "UNKNOWN"; +export const Type2BbEnum = { + Inventory: "INVENTORY", + NonInventory: "NON_INVENTORY", + Service: "SERVICE", + Unknown: "UNKNOWN", +} as const; diff --git a/src/api/resources/accounting/types/index.ts b/src/api/resources/accounting/types/index.ts index b6e905df2..ed233c5d8 100644 --- a/src/api/resources/accounting/types/index.ts +++ b/src/api/resources/accounting/types/index.ts @@ -4,7 +4,10 @@ export * from "./AccountStatus"; export * from "./AccountCurrency"; export * from "./Account"; export * from "./AccountAccountTypeEnum"; +export * from "./AccountDetailsCategory"; export * from "./AccountDetails"; +export * from "./AccountDetailsAndActionsCategory"; +export * from "./AccountDetailsAndActionsStatus"; export * from "./AccountDetailsAndActions"; export * from "./AccountDetailsAndActionsIntegration"; export * from "./AccountDetailsAndActionsStatusEnum"; @@ -119,6 +122,7 @@ export * from "./CreditNoteRequest"; export * from "./CreditNoteResponse"; export * from "./CreditNoteStatusEnum"; export * from "./CreditOrDebitEnum"; +export * from "./DataPassthroughRequestMethod"; export * from "./DataPassthroughRequest"; export * from "./DebugModeLog"; export * from "./DebugModelLogSummary"; @@ -256,6 +260,15 @@ export * from "./ItemPurchaseTaxRate"; export * from "./ItemSalesTaxRate"; export * from "./Item"; export * from "./ItemFormatEnum"; +export * from "./ItemRequestRequestStatus"; +export * from "./ItemRequestRequestType"; +export * from "./ItemRequestRequestPurchaseAccount"; +export * from "./ItemRequestRequestSalesAccount"; +export * from "./ItemRequestRequestCompany"; +export * from "./ItemRequestRequestPurchaseTaxRate"; +export * from "./ItemRequestRequestSalesTaxRate"; +export * from "./ItemRequestRequest"; +export * from "./ItemResponse"; export * from "./ItemSchema"; export * from "./ItemTypeEnum"; export * from "./JournalEntryPaymentsItem"; @@ -328,6 +341,9 @@ export * from "./PaginatedTaxRateList"; export * from "./PaginatedTrackingCategoryList"; export * from "./PaginatedTransactionList"; export * from "./PaginatedVendorCreditList"; +export * from "./PatchedItemRequestRequestStatus"; +export * from "./PatchedItemRequestRequestType"; +export * from "./PatchedItemRequestRequest"; export * from "./PatchedPaymentRequestContact"; export * from "./PatchedPaymentRequestAccount"; export * from "./PatchedPaymentRequestPaymentMethod"; @@ -415,6 +431,7 @@ export * from "./SelectiveSyncConfigurationsUsageEnum"; export * from "./Status7D1Enum"; export * from "./Status895Enum"; export * from "./StatusFd5Enum"; +export * from "./SyncStatusStatus"; export * from "./SyncStatus"; export * from "./TaxComponentComponentType"; export * from "./TaxComponent"; @@ -436,6 +453,7 @@ export * from "./TransactionCurrencyEnum"; export * from "./TransactionLineItemItem"; export * from "./TransactionLineItemCurrency"; export * from "./TransactionLineItem"; +export * from "./Type2BbEnum"; export * from "./UnderlyingTransactionTypeEnum"; export * from "./ValidationProblemSource"; export * from "./VendorCreditVendor"; diff --git a/src/api/resources/ats/client/Client.ts b/src/api/resources/ats/client/Client.ts index 92c725071..43839798d 100644 --- a/src/api/resources/ats/client/Client.ts +++ b/src/api/resources/ats/client/Client.ts @@ -46,11 +46,14 @@ export declare namespace Ats { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } } export class Ats { + protected readonly _options: Ats.Options; protected _accountDetails: AccountDetails | undefined; protected _accountToken: AccountToken | undefined; protected _activities: Activities | undefined; @@ -85,7 +88,9 @@ export class Ats { protected _users: Users | undefined; protected _webhookReceivers: WebhookReceivers | undefined; - constructor(protected readonly _options: Ats.Options) {} + constructor(_options: Ats.Options) { + this._options = _options; + } public get accountDetails(): AccountDetails { return (this._accountDetails ??= new AccountDetails(this._options)); diff --git a/src/api/resources/ats/resources/accountDetails/client/Client.ts b/src/api/resources/ats/resources/accountDetails/client/Client.ts index 21e3a6fa5..02094efb3 100644 --- a/src/api/resources/ats/resources/accountDetails/client/Client.ts +++ b/src/api/resources/ats/resources/accountDetails/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AccountDetails { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AccountDetails { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AccountDetails { - constructor(protected readonly _options: AccountDetails.Options) {} + protected readonly _options: AccountDetails.Options; + + constructor(_options: AccountDetails.Options) { + this._options = _options; + } /** * Get details for a linked account. @@ -62,22 +69,14 @@ export class AccountDetails { "ats/v1/account-details", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class AccountDetails { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class AccountDetails { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/account-details."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/accountToken/client/Client.ts b/src/api/resources/ats/resources/accountToken/client/Client.ts index 7e644792e..8b27fe233 100644 --- a/src/api/resources/ats/resources/accountToken/client/Client.ts +++ b/src/api/resources/ats/resources/accountToken/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AccountToken { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AccountToken { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AccountToken { - constructor(protected readonly _options: AccountToken.Options) {} + protected readonly _options: AccountToken.Options; + + constructor(_options: AccountToken.Options) { + this._options = _options; + } /** * Returns the account token for the end user with the provided public token. @@ -65,22 +72,14 @@ export class AccountToken { `ats/v1/account-token/${encodeURIComponent(publicToken)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -102,6 +101,7 @@ export class AccountToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -110,6 +110,7 @@ export class AccountToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -118,6 +119,7 @@ export class AccountToken { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/activities/client/Client.ts b/src/api/resources/ats/resources/activities/client/Client.ts index ddcf7df01..dc3a6e564 100644 --- a/src/api/resources/ats/resources/activities/client/Client.ts +++ b/src/api/resources/ats/resources/activities/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Activities { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Activities { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Activities { - constructor(protected readonly _options: Activities.Options) {} + protected readonly _options: Activities.Options; + + constructor(_options: Activities.Options) { + this._options = _options; + } /** * Returns a list of `Activity` objects. @@ -144,23 +151,15 @@ export class Activities { "ats/v1/activities", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -182,6 +181,7 @@ export class Activities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -190,12 +190,14 @@ export class Activities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/activities."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -241,20 +243,14 @@ export class Activities { "ats/v1/activities", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -280,6 +276,7 @@ export class Activities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -288,12 +285,14 @@ export class Activities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ats/v1/activities."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -357,23 +356,15 @@ export class Activities { `ats/v1/activities/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -395,6 +386,7 @@ export class Activities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -403,12 +395,14 @@ export class Activities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/activities/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -438,22 +432,14 @@ export class Activities { "ats/v1/activities/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -475,6 +461,7 @@ export class Activities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -483,12 +470,14 @@ export class Activities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/activities/meta/post."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/applications/client/Client.ts b/src/api/resources/ats/resources/applications/client/Client.ts index d47f13e67..cb5cbb4fc 100644 --- a/src/api/resources/ats/resources/applications/client/Client.ts +++ b/src/api/resources/ats/resources/applications/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Applications { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Applications { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Applications { - constructor(protected readonly _options: Applications.Options) {} + protected readonly _options: Applications.Options; + + constructor(_options: Applications.Options) { + this._options = _options; + } /** * Returns a list of `Application` objects. @@ -155,23 +162,15 @@ export class Applications { "ats/v1/applications", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -193,6 +192,7 @@ export class Applications { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -201,12 +201,14 @@ export class Applications { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/applications."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -255,20 +257,14 @@ export class Applications { "ats/v1/applications", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -294,6 +290,7 @@ export class Applications { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -302,12 +299,14 @@ export class Applications { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ats/v1/applications."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -359,23 +358,15 @@ export class Applications { `ats/v1/applications/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -397,6 +388,7 @@ export class Applications { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -405,12 +397,14 @@ export class Applications { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/applications/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -456,20 +450,14 @@ export class Applications { `ats/v1/applications/${encodeURIComponent(id)}/change-stage`, ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -495,6 +483,7 @@ export class Applications { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -503,6 +492,7 @@ export class Applications { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -511,6 +501,7 @@ export class Applications { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -549,23 +540,15 @@ export class Applications { "ats/v1/applications/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -587,6 +570,7 @@ export class Applications { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -595,12 +579,14 @@ export class Applications { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/applications/meta/post."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/asyncPassthrough/client/Client.ts b/src/api/resources/ats/resources/asyncPassthrough/client/Client.ts index e4cd8cfcb..ddf4b5d4f 100644 --- a/src/api/resources/ats/resources/asyncPassthrough/client/Client.ts +++ b/src/api/resources/ats/resources/asyncPassthrough/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AsyncPassthrough { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AsyncPassthrough { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AsyncPassthrough { - constructor(protected readonly _options: AsyncPassthrough.Options) {} + protected readonly _options: AsyncPassthrough.Options; + + constructor(_options: AsyncPassthrough.Options) { + this._options = _options; + } /** * Asynchronously pull data from an endpoint not currently supported by Merge. @@ -68,20 +75,14 @@ export class AsyncPassthrough { "ats/v1/async-passthrough", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.ats.DataPassthroughRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -106,6 +107,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -114,12 +116,14 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ats/v1/async-passthrough."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -152,22 +156,14 @@ export class AsyncPassthrough { `ats/v1/async-passthrough/${encodeURIComponent(asyncPassthroughReceiptId)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -189,6 +185,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -197,6 +194,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -205,6 +203,7 @@ export class AsyncPassthrough { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/attachments/client/Client.ts b/src/api/resources/ats/resources/attachments/client/Client.ts index bea4da2b9..f462e798f 100644 --- a/src/api/resources/ats/resources/attachments/client/Client.ts +++ b/src/api/resources/ats/resources/attachments/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Attachments { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Attachments { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Attachments { - constructor(protected readonly _options: Attachments.Options) {} + protected readonly _options: Attachments.Options; + + constructor(_options: Attachments.Options) { + this._options = _options; + } /** * Returns a list of `Attachment` objects. @@ -138,23 +145,15 @@ export class Attachments { "ats/v1/attachments", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -176,6 +175,7 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -184,12 +184,14 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/attachments."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -235,20 +237,14 @@ export class Attachments { "ats/v1/attachments", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -274,6 +270,7 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -282,12 +279,14 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ats/v1/attachments."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -345,23 +344,15 @@ export class Attachments { `ats/v1/attachments/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -383,6 +374,7 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -391,12 +383,14 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/attachments/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -426,22 +420,14 @@ export class Attachments { "ats/v1/attachments/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -463,6 +449,7 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -471,12 +458,14 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/attachments/meta/post."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/auditTrail/client/Client.ts b/src/api/resources/ats/resources/auditTrail/client/Client.ts index 342fdace5..eeebf730a 100644 --- a/src/api/resources/ats/resources/auditTrail/client/Client.ts +++ b/src/api/resources/ats/resources/auditTrail/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AuditTrail { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AuditTrail { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AuditTrail { - constructor(protected readonly _options: AuditTrail.Options) {} + protected readonly _options: AuditTrail.Options; + + constructor(_options: AuditTrail.Options) { + this._options = _options; + } /** * Gets a list of audit trail events. @@ -91,23 +98,15 @@ export class AuditTrail { "ats/v1/audit-trail", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -129,6 +128,7 @@ export class AuditTrail { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -137,12 +137,14 @@ export class AuditTrail { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/audit-trail."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/auditTrail/client/requests/AuditTrailListRequest.ts b/src/api/resources/ats/resources/auditTrail/client/requests/AuditTrailListRequest.ts index b3187c0db..99ee8b1ad 100644 --- a/src/api/resources/ats/resources/auditTrail/client/requests/AuditTrailListRequest.ts +++ b/src/api/resources/ats/resources/auditTrail/client/requests/AuditTrailListRequest.ts @@ -16,7 +16,7 @@ export interface AuditTrailListRequest { */ endDate?: string; /** - * If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` + * If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` */ eventType?: string; /** diff --git a/src/api/resources/ats/resources/availableActions/client/Client.ts b/src/api/resources/ats/resources/availableActions/client/Client.ts index b9e995b4a..57e85cc64 100644 --- a/src/api/resources/ats/resources/availableActions/client/Client.ts +++ b/src/api/resources/ats/resources/availableActions/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AvailableActions { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AvailableActions { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AvailableActions { - constructor(protected readonly _options: AvailableActions.Options) {} + protected readonly _options: AvailableActions.Options; + + constructor(_options: AvailableActions.Options) { + this._options = _options; + } /** * Returns a list of models and actions available for an account. @@ -62,22 +69,14 @@ export class AvailableActions { "ats/v1/available-actions", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class AvailableActions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class AvailableActions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/available-actions."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/candidates/client/Client.ts b/src/api/resources/ats/resources/candidates/client/Client.ts index cbe9608c1..5a85cfe19 100644 --- a/src/api/resources/ats/resources/candidates/client/Client.ts +++ b/src/api/resources/ats/resources/candidates/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Candidates { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Candidates { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Candidates { - constructor(protected readonly _options: Candidates.Options) {} + protected readonly _options: Candidates.Options; + + constructor(_options: Candidates.Options) { + this._options = _options; + } /** * Returns a list of `Candidate` objects. @@ -145,23 +152,15 @@ export class Candidates { "ats/v1/candidates", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -183,6 +182,7 @@ export class Candidates { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -191,12 +191,14 @@ export class Candidates { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/candidates."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -242,20 +244,14 @@ export class Candidates { "ats/v1/candidates", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -281,6 +277,7 @@ export class Candidates { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -289,12 +286,14 @@ export class Candidates { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ats/v1/candidates."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -346,23 +345,15 @@ export class Candidates { `ats/v1/candidates/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -384,6 +375,7 @@ export class Candidates { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -392,12 +384,14 @@ export class Candidates { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/candidates/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -446,20 +440,14 @@ export class Candidates { `ats/v1/candidates/${encodeURIComponent(id)}`, ), method: "PATCH", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -487,6 +475,7 @@ export class Candidates { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -495,12 +484,14 @@ export class Candidates { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling PATCH /ats/v1/candidates/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -538,20 +529,14 @@ export class Candidates { `ats/v1/candidates/ignore/${encodeURIComponent(modelId)}`, ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.ats.IgnoreCommonModelRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -567,6 +552,7 @@ export class Candidates { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -575,6 +561,7 @@ export class Candidates { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -583,6 +570,7 @@ export class Candidates { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -615,22 +603,14 @@ export class Candidates { `ats/v1/candidates/meta/patch/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -652,6 +632,7 @@ export class Candidates { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -660,6 +641,7 @@ export class Candidates { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -668,6 +650,7 @@ export class Candidates { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -697,22 +680,14 @@ export class Candidates { "ats/v1/candidates/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -734,6 +709,7 @@ export class Candidates { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -742,12 +718,14 @@ export class Candidates { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/candidates/meta/post."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/candidates/client/requests/IgnoreCommonModelRequest.ts b/src/api/resources/ats/resources/candidates/client/requests/IgnoreCommonModelRequest.ts index b9cedb383..a20dc8dd5 100644 --- a/src/api/resources/ats/resources/candidates/client/requests/IgnoreCommonModelRequest.ts +++ b/src/api/resources/ats/resources/candidates/client/requests/IgnoreCommonModelRequest.ts @@ -11,6 +11,6 @@ import * as Merge from "../../../../../../index"; * } */ export interface IgnoreCommonModelRequest { - reason: Merge.ats.ReasonEnum; + reason: Merge.ats.IgnoreCommonModelRequestReason; message?: string; } diff --git a/src/api/resources/ats/resources/candidates/types/IgnoreCommonModelRequestReason.ts b/src/api/resources/ats/resources/candidates/types/IgnoreCommonModelRequestReason.ts new file mode 100644 index 000000000..16eea523e --- /dev/null +++ b/src/api/resources/ats/resources/candidates/types/IgnoreCommonModelRequestReason.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../../../index"; + +export type IgnoreCommonModelRequestReason = Merge.ats.ReasonEnum | string; diff --git a/src/api/resources/ats/resources/candidates/types/index.ts b/src/api/resources/ats/resources/candidates/types/index.ts index 61344cf86..36e0b3d6e 100644 --- a/src/api/resources/ats/resources/candidates/types/index.ts +++ b/src/api/resources/ats/resources/candidates/types/index.ts @@ -1,2 +1,3 @@ export * from "./CandidatesListRequestExpand"; export * from "./CandidatesRetrieveRequestExpand"; +export * from "./IgnoreCommonModelRequestReason"; diff --git a/src/api/resources/ats/resources/deleteAccount/client/Client.ts b/src/api/resources/ats/resources/deleteAccount/client/Client.ts index ad30ad53b..661df7a2b 100644 --- a/src/api/resources/ats/resources/deleteAccount/client/Client.ts +++ b/src/api/resources/ats/resources/deleteAccount/client/Client.ts @@ -4,6 +4,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -15,6 +16,8 @@ export declare namespace DeleteAccount { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -28,12 +31,16 @@ export declare namespace DeleteAccount { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class DeleteAccount { - constructor(protected readonly _options: DeleteAccount.Options) {} + protected readonly _options: DeleteAccount.Options; + + constructor(_options: DeleteAccount.Options) { + this._options = _options; + } /** * Delete a linked account. @@ -56,22 +63,14 @@ export class DeleteAccount { "ats/v1/delete-account", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -84,6 +83,7 @@ export class DeleteAccount { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -92,12 +92,14 @@ export class DeleteAccount { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ats/v1/delete-account."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/departments/client/Client.ts b/src/api/resources/ats/resources/departments/client/Client.ts index 372b5b210..5d037d4c5 100644 --- a/src/api/resources/ats/resources/departments/client/Client.ts +++ b/src/api/resources/ats/resources/departments/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Departments { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Departments { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Departments { - constructor(protected readonly _options: Departments.Options) {} + protected readonly _options: Departments.Options; + + constructor(_options: Departments.Options) { + this._options = _options; + } /** * Returns a list of `Department` objects. @@ -118,23 +125,15 @@ export class Departments { "ats/v1/departments", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -156,6 +155,7 @@ export class Departments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -164,12 +164,14 @@ export class Departments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/departments."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -215,23 +217,15 @@ export class Departments { `ats/v1/departments/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -253,6 +247,7 @@ export class Departments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -261,12 +256,14 @@ export class Departments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/departments/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/eeocs/client/Client.ts b/src/api/resources/ats/resources/eeocs/client/Client.ts index 9b92b9793..be53c5199 100644 --- a/src/api/resources/ats/resources/eeocs/client/Client.ts +++ b/src/api/resources/ats/resources/eeocs/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Eeocs { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Eeocs { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Eeocs { - constructor(protected readonly _options: Eeocs.Options) {} + protected readonly _options: Eeocs.Options; + + constructor(_options: Eeocs.Options) { + this._options = _options; + } /** * Returns a list of `EEOC` objects. @@ -143,23 +150,15 @@ export class Eeocs { "ats/v1/eeocs", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -181,6 +180,7 @@ export class Eeocs { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -189,12 +189,14 @@ export class Eeocs { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/eeocs."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -257,23 +259,15 @@ export class Eeocs { `ats/v1/eeocs/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -295,6 +289,7 @@ export class Eeocs { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -303,12 +298,14 @@ export class Eeocs { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/eeocs/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/fieldMapping/client/Client.ts b/src/api/resources/ats/resources/fieldMapping/client/Client.ts index 7c8752488..ff9d43d2b 100644 --- a/src/api/resources/ats/resources/fieldMapping/client/Client.ts +++ b/src/api/resources/ats/resources/fieldMapping/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace FieldMapping { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace FieldMapping { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class FieldMapping { - constructor(protected readonly _options: FieldMapping.Options) {} + protected readonly _options: FieldMapping.Options; + + constructor(_options: FieldMapping.Options) { + this._options = _options; + } /** * Get all Field Mappings for this Linked Account. Field Mappings are mappings between third-party Remote Fields and user defined Merge fields. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). @@ -71,23 +78,15 @@ export class FieldMapping { "ats/v1/field-mappings", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -109,6 +108,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -117,12 +117,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/field-mappings."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -168,20 +170,14 @@ export class FieldMapping { "ats/v1/field-mappings", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -207,6 +203,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -215,12 +212,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ats/v1/field-mappings."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -253,22 +252,14 @@ export class FieldMapping { `ats/v1/field-mappings/${encodeURIComponent(fieldMappingId)}`, ), method: "DELETE", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -290,6 +281,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -298,6 +290,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -306,6 +299,7 @@ export class FieldMapping { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -343,20 +337,14 @@ export class FieldMapping { `ats/v1/field-mappings/${encodeURIComponent(fieldMappingId)}`, ), method: "PATCH", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.ats.PatchedEditFieldMappingRequest.jsonOrThrow(request, { @@ -383,6 +371,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -391,6 +380,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -399,6 +389,7 @@ export class FieldMapping { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -441,23 +432,15 @@ export class FieldMapping { "ats/v1/remote-fields", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -479,6 +462,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -487,12 +471,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/remote-fields."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -522,22 +508,14 @@ export class FieldMapping { "ats/v1/target-fields", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -559,6 +537,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -567,12 +546,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/target-fields."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/forceResync/client/Client.ts b/src/api/resources/ats/resources/forceResync/client/Client.ts index 28231ced7..da7ccc787 100644 --- a/src/api/resources/ats/resources/forceResync/client/Client.ts +++ b/src/api/resources/ats/resources/forceResync/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace ForceResync { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace ForceResync { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class ForceResync { - constructor(protected readonly _options: ForceResync.Options) {} + protected readonly _options: ForceResync.Options; + + constructor(_options: ForceResync.Options) { + this._options = _options; + } /** * Force re-sync of all models. This endpoint is available for monthly, quarterly, and highest sync frequency customers on the Professional or Enterprise plans. Doing so will consume a sync credit for the relevant linked account. Force re-syncs can also be triggered manually in the Merge Dashboard and is available for all customers. @@ -62,22 +69,14 @@ export class ForceResync { "ats/v1/sync-status/resync", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class ForceResync { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class ForceResync { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ats/v1/sync-status/resync."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/generateKey/client/Client.ts b/src/api/resources/ats/resources/generateKey/client/Client.ts index 227ea3fb3..b8dc9eb11 100644 --- a/src/api/resources/ats/resources/generateKey/client/Client.ts +++ b/src/api/resources/ats/resources/generateKey/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace GenerateKey { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace GenerateKey { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class GenerateKey { - constructor(protected readonly _options: GenerateKey.Options) {} + protected readonly _options: GenerateKey.Options; + + constructor(_options: GenerateKey.Options) { + this._options = _options; + } /** * Create a remote key. @@ -67,20 +74,14 @@ export class GenerateKey { "ats/v1/generate-key", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.ats.GenerateRemoteKeyRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -105,6 +106,7 @@ export class GenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -113,12 +115,14 @@ export class GenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ats/v1/generate-key."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/index.ts b/src/api/resources/ats/resources/index.ts index de746f5b8..c04608fea 100644 --- a/src/api/resources/ats/resources/index.ts +++ b/src/api/resources/ats/resources/index.ts @@ -16,6 +16,8 @@ export * as jobPostings from "./jobPostings"; export * from "./jobPostings/types"; export * as jobs from "./jobs"; export * from "./jobs/types"; +export * as linkToken from "./linkToken"; +export * from "./linkToken/types"; export * as linkedAccounts from "./linkedAccounts"; export * from "./linkedAccounts/types"; export * as offers from "./offers"; @@ -33,7 +35,6 @@ export * as departments from "./departments"; export * as fieldMapping from "./fieldMapping"; export * as generateKey from "./generateKey"; export * as jobInterviewStages from "./jobInterviewStages"; -export * as linkToken from "./linkToken"; export * as offices from "./offices"; export * as passthrough from "./passthrough"; export * as regenerateKey from "./regenerateKey"; diff --git a/src/api/resources/ats/resources/interviews/client/Client.ts b/src/api/resources/ats/resources/interviews/client/Client.ts index ed7f47d15..e528f6ebe 100644 --- a/src/api/resources/ats/resources/interviews/client/Client.ts +++ b/src/api/resources/ats/resources/interviews/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Interviews { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Interviews { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Interviews { - constructor(protected readonly _options: Interviews.Options) {} + protected readonly _options: Interviews.Options; + + constructor(_options: Interviews.Options) { + this._options = _options; + } /** * Returns a list of `ScheduledInterview` objects. @@ -155,23 +162,15 @@ export class Interviews { "ats/v1/interviews", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -193,6 +192,7 @@ export class Interviews { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -201,12 +201,14 @@ export class Interviews { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/interviews."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -252,20 +254,14 @@ export class Interviews { "ats/v1/interviews", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -293,6 +289,7 @@ export class Interviews { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -301,12 +298,14 @@ export class Interviews { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ats/v1/interviews."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -366,23 +365,15 @@ export class Interviews { `ats/v1/interviews/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -404,6 +395,7 @@ export class Interviews { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -412,12 +404,14 @@ export class Interviews { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/interviews/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -447,22 +441,14 @@ export class Interviews { "ats/v1/interviews/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -484,6 +470,7 @@ export class Interviews { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -492,12 +479,14 @@ export class Interviews { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/interviews/meta/post."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/issues/client/Client.ts b/src/api/resources/ats/resources/issues/client/Client.ts index 8664cc06c..be3b0c3f4 100644 --- a/src/api/resources/ats/resources/issues/client/Client.ts +++ b/src/api/resources/ats/resources/issues/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Issues { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Issues { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Issues { - constructor(protected readonly _options: Issues.Options) {} + protected readonly _options: Issues.Options; + + constructor(_options: Issues.Options) { + this._options = _options; + } /** * Gets all issues for Organization. @@ -140,23 +147,15 @@ export class Issues { "ats/v1/issues", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -178,6 +177,7 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -186,12 +186,14 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/issues."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -221,22 +223,14 @@ export class Issues { `ats/v1/issues/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -258,6 +252,7 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -266,12 +261,14 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/issues/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/jobInterviewStages/client/Client.ts b/src/api/resources/ats/resources/jobInterviewStages/client/Client.ts index 29a552315..76e8bf160 100644 --- a/src/api/resources/ats/resources/jobInterviewStages/client/Client.ts +++ b/src/api/resources/ats/resources/jobInterviewStages/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace JobInterviewStages { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace JobInterviewStages { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class JobInterviewStages { - constructor(protected readonly _options: JobInterviewStages.Options) {} + protected readonly _options: JobInterviewStages.Options; + + constructor(_options: JobInterviewStages.Options) { + this._options = _options; + } /** * Returns a list of `JobInterviewStage` objects. @@ -128,23 +135,15 @@ export class JobInterviewStages { "ats/v1/job-interview-stages", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -166,6 +165,7 @@ export class JobInterviewStages { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -174,12 +174,14 @@ export class JobInterviewStages { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/job-interview-stages."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -229,23 +231,15 @@ export class JobInterviewStages { `ats/v1/job-interview-stages/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -267,6 +261,7 @@ export class JobInterviewStages { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -275,6 +270,7 @@ export class JobInterviewStages { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -283,6 +279,7 @@ export class JobInterviewStages { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/jobPostings/client/Client.ts b/src/api/resources/ats/resources/jobPostings/client/Client.ts index a0c529410..1a63cd640 100644 --- a/src/api/resources/ats/resources/jobPostings/client/Client.ts +++ b/src/api/resources/ats/resources/jobPostings/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace JobPostings { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace JobPostings { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class JobPostings { - constructor(protected readonly _options: JobPostings.Options) {} + protected readonly _options: JobPostings.Options; + + constructor(_options: JobPostings.Options) { + this._options = _options; + } /** * Returns a list of `JobPosting` objects. @@ -130,23 +137,15 @@ export class JobPostings { "ats/v1/job-postings", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -168,6 +167,7 @@ export class JobPostings { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -176,12 +176,14 @@ export class JobPostings { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/job-postings."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -231,23 +233,15 @@ export class JobPostings { `ats/v1/job-postings/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -269,6 +263,7 @@ export class JobPostings { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -277,12 +272,14 @@ export class JobPostings { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/job-postings/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/jobs/client/Client.ts b/src/api/resources/ats/resources/jobs/client/Client.ts index 28348a642..363c0f841 100644 --- a/src/api/resources/ats/resources/jobs/client/Client.ts +++ b/src/api/resources/ats/resources/jobs/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Jobs { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Jobs { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Jobs { - constructor(protected readonly _options: Jobs.Options) {} + protected readonly _options: Jobs.Options; + + constructor(_options: Jobs.Options) { + this._options = _options; + } /** * Returns a list of `Job` objects. @@ -152,23 +159,15 @@ export class Jobs { "ats/v1/jobs", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -190,6 +189,7 @@ export class Jobs { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -198,12 +198,14 @@ export class Jobs { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/jobs."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -263,23 +265,15 @@ export class Jobs { `ats/v1/jobs/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -301,6 +295,7 @@ export class Jobs { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -309,12 +304,14 @@ export class Jobs { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/jobs/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -378,23 +375,15 @@ export class Jobs { `ats/v1/jobs/${encodeURIComponent(jobId)}/screening-questions`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -416,6 +405,7 @@ export class Jobs { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -424,6 +414,7 @@ export class Jobs { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -432,6 +423,7 @@ export class Jobs { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/linkToken/client/Client.ts b/src/api/resources/ats/resources/linkToken/client/Client.ts index 4f81fb3f3..a770136b0 100644 --- a/src/api/resources/ats/resources/linkToken/client/Client.ts +++ b/src/api/resources/ats/resources/linkToken/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace LinkToken { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace LinkToken { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class LinkToken { - constructor(protected readonly _options: LinkToken.Options) {} + protected readonly _options: LinkToken.Options; + + constructor(_options: LinkToken.Options) { + this._options = _options; + } /** * Creates a link token to be used when linking a new end user. @@ -70,20 +77,14 @@ export class LinkToken { "ats/v1/link-token", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.ats.EndUserDetailsRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -108,6 +109,7 @@ export class LinkToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -116,12 +118,14 @@ export class LinkToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ats/v1/link-token."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/linkToken/client/requests/EndUserDetailsRequest.ts b/src/api/resources/ats/resources/linkToken/client/requests/EndUserDetailsRequest.ts index 1c7a5e358..beaa8c582 100644 --- a/src/api/resources/ats/resources/linkToken/client/requests/EndUserDetailsRequest.ts +++ b/src/api/resources/ats/resources/linkToken/client/requests/EndUserDetailsRequest.ts @@ -40,7 +40,7 @@ export interface EndUserDetailsRequest { * * `en` - en * * `de` - de */ - language?: Merge.ats.LanguageEnum; + language?: Merge.ats.EndUserDetailsRequestLanguage; /** The boolean that indicates whether initial, periodic, and force syncs will be disabled. */ areSyncsDisabled?: boolean; /** A JSON object containing integration-specific configuration options. */ diff --git a/src/api/resources/ats/resources/linkToken/index.ts b/src/api/resources/ats/resources/linkToken/index.ts index 5ec76921e..c9240f83b 100644 --- a/src/api/resources/ats/resources/linkToken/index.ts +++ b/src/api/resources/ats/resources/linkToken/index.ts @@ -1 +1,2 @@ +export * from "./types"; export * from "./client"; diff --git a/src/api/resources/ats/resources/linkToken/types/EndUserDetailsRequestLanguage.ts b/src/api/resources/ats/resources/linkToken/types/EndUserDetailsRequestLanguage.ts new file mode 100644 index 000000000..9681f311e --- /dev/null +++ b/src/api/resources/ats/resources/linkToken/types/EndUserDetailsRequestLanguage.ts @@ -0,0 +1,13 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../../../index"; + +/** + * The following subset of IETF language tags can be used to configure localization. + * + * * `en` - en + * * `de` - de + */ +export type EndUserDetailsRequestLanguage = Merge.ats.LanguageEnum | string; diff --git a/src/api/resources/ats/resources/linkToken/types/index.ts b/src/api/resources/ats/resources/linkToken/types/index.ts new file mode 100644 index 000000000..c90e13c37 --- /dev/null +++ b/src/api/resources/ats/resources/linkToken/types/index.ts @@ -0,0 +1 @@ +export * from "./EndUserDetailsRequestLanguage"; diff --git a/src/api/resources/ats/resources/linkedAccounts/client/Client.ts b/src/api/resources/ats/resources/linkedAccounts/client/Client.ts index 6b8140b7d..b39a4c91c 100644 --- a/src/api/resources/ats/resources/linkedAccounts/client/Client.ts +++ b/src/api/resources/ats/resources/linkedAccounts/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace LinkedAccounts { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace LinkedAccounts { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class LinkedAccounts { - constructor(protected readonly _options: LinkedAccounts.Options) {} + protected readonly _options: LinkedAccounts.Options; + + constructor(_options: LinkedAccounts.Options) { + this._options = _options; + } /** * List linked accounts for your organization. @@ -135,23 +142,15 @@ export class LinkedAccounts { "ats/v1/linked-accounts", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -173,6 +172,7 @@ export class LinkedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -181,12 +181,14 @@ export class LinkedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/linked-accounts."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/offers/client/Client.ts b/src/api/resources/ats/resources/offers/client/Client.ts index 7680fc4c1..5a364eb99 100644 --- a/src/api/resources/ats/resources/offers/client/Client.ts +++ b/src/api/resources/ats/resources/offers/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Offers { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Offers { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Offers { - constructor(protected readonly _options: Offers.Options) {} + protected readonly _options: Offers.Options; + + constructor(_options: Offers.Options) { + this._options = _options; + } /** * Returns a list of `Offer` objects. @@ -145,23 +152,15 @@ export class Offers { "ats/v1/offers", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -183,6 +182,7 @@ export class Offers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -191,12 +191,14 @@ export class Offers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/offers."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -256,23 +258,15 @@ export class Offers { `ats/v1/offers/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -294,6 +288,7 @@ export class Offers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -302,12 +297,14 @@ export class Offers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/offers/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/offices/client/Client.ts b/src/api/resources/ats/resources/offices/client/Client.ts index f665b10b2..51658f8e9 100644 --- a/src/api/resources/ats/resources/offices/client/Client.ts +++ b/src/api/resources/ats/resources/offices/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Offices { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Offices { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Offices { - constructor(protected readonly _options: Offices.Options) {} + protected readonly _options: Offices.Options; + + constructor(_options: Offices.Options) { + this._options = _options; + } /** * Returns a list of `Office` objects. @@ -118,23 +125,15 @@ export class Offices { "ats/v1/offices", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -156,6 +155,7 @@ export class Offices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -164,12 +164,14 @@ export class Offices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/offices."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -215,23 +217,15 @@ export class Offices { `ats/v1/offices/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -253,6 +247,7 @@ export class Offices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -261,12 +256,14 @@ export class Offices { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/offices/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/passthrough/client/Client.ts b/src/api/resources/ats/resources/passthrough/client/Client.ts index c6f878f80..adc4fc2e3 100644 --- a/src/api/resources/ats/resources/passthrough/client/Client.ts +++ b/src/api/resources/ats/resources/passthrough/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Passthrough { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Passthrough { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Passthrough { - constructor(protected readonly _options: Passthrough.Options) {} + protected readonly _options: Passthrough.Options; + + constructor(_options: Passthrough.Options) { + this._options = _options; + } /** * Pull data from an endpoint not currently supported by Merge. @@ -68,20 +75,14 @@ export class Passthrough { "ats/v1/passthrough", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.ats.DataPassthroughRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -106,6 +107,7 @@ export class Passthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -114,12 +116,14 @@ export class Passthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ats/v1/passthrough."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/regenerateKey/client/Client.ts b/src/api/resources/ats/resources/regenerateKey/client/Client.ts index 4f612d480..8d6e966d1 100644 --- a/src/api/resources/ats/resources/regenerateKey/client/Client.ts +++ b/src/api/resources/ats/resources/regenerateKey/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace RegenerateKey { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace RegenerateKey { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class RegenerateKey { - constructor(protected readonly _options: RegenerateKey.Options) {} + protected readonly _options: RegenerateKey.Options; + + constructor(_options: RegenerateKey.Options) { + this._options = _options; + } /** * Exchange remote keys. @@ -67,20 +74,14 @@ export class RegenerateKey { "ats/v1/regenerate-key", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.ats.RemoteKeyForRegenerationRequest.jsonOrThrow(request, { @@ -107,6 +108,7 @@ export class RegenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -115,12 +117,14 @@ export class RegenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ats/v1/regenerate-key."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/rejectReasons/client/Client.ts b/src/api/resources/ats/resources/rejectReasons/client/Client.ts index 2b36569a7..a00ef28bb 100644 --- a/src/api/resources/ats/resources/rejectReasons/client/Client.ts +++ b/src/api/resources/ats/resources/rejectReasons/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace RejectReasons { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace RejectReasons { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class RejectReasons { - constructor(protected readonly _options: RejectReasons.Options) {} + protected readonly _options: RejectReasons.Options; + + constructor(_options: RejectReasons.Options) { + this._options = _options; + } /** * Returns a list of `RejectReason` objects. @@ -118,23 +125,15 @@ export class RejectReasons { "ats/v1/reject-reasons", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -156,6 +155,7 @@ export class RejectReasons { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -164,12 +164,14 @@ export class RejectReasons { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/reject-reasons."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -215,23 +217,15 @@ export class RejectReasons { `ats/v1/reject-reasons/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -253,6 +247,7 @@ export class RejectReasons { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -261,12 +256,14 @@ export class RejectReasons { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/reject-reasons/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/scopes/client/Client.ts b/src/api/resources/ats/resources/scopes/client/Client.ts index 14d11208f..d3c66c212 100644 --- a/src/api/resources/ats/resources/scopes/client/Client.ts +++ b/src/api/resources/ats/resources/scopes/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Scopes { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Scopes { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Scopes { - constructor(protected readonly _options: Scopes.Options) {} + protected readonly _options: Scopes.Options; + + constructor(_options: Scopes.Options) { + this._options = _options; + } /** * Get the default permissions for Merge Common Models and fields across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). @@ -62,22 +69,14 @@ export class Scopes { "ats/v1/default-scopes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/default-scopes."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -142,22 +144,14 @@ export class Scopes { "ats/v1/linked-account-scopes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -179,6 +173,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -187,12 +182,14 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/linked-account-scopes."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -248,20 +245,14 @@ export class Scopes { "ats/v1/linked-account-scopes", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.ats.LinkedAccountCommonModelScopeDeserializerRequest.jsonOrThrow(request, { @@ -288,6 +279,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -296,12 +288,14 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ats/v1/linked-account-scopes."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/scorecards/client/Client.ts b/src/api/resources/ats/resources/scorecards/client/Client.ts index 8d1f608b5..936d49c88 100644 --- a/src/api/resources/ats/resources/scorecards/client/Client.ts +++ b/src/api/resources/ats/resources/scorecards/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Scorecards { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Scorecards { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Scorecards { - constructor(protected readonly _options: Scorecards.Options) {} + protected readonly _options: Scorecards.Options; + + constructor(_options: Scorecards.Options) { + this._options = _options; + } /** * Returns a list of `Scorecard` objects. @@ -150,23 +157,15 @@ export class Scorecards { "ats/v1/scorecards", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -188,6 +187,7 @@ export class Scorecards { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -196,12 +196,14 @@ export class Scorecards { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/scorecards."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -261,23 +263,15 @@ export class Scorecards { `ats/v1/scorecards/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -299,6 +293,7 @@ export class Scorecards { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -307,12 +302,14 @@ export class Scorecards { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/scorecards/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/syncStatus/client/Client.ts b/src/api/resources/ats/resources/syncStatus/client/Client.ts index 3d5024602..9fb1d2479 100644 --- a/src/api/resources/ats/resources/syncStatus/client/Client.ts +++ b/src/api/resources/ats/resources/syncStatus/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace SyncStatus { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace SyncStatus { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class SyncStatus { - constructor(protected readonly _options: SyncStatus.Options) {} + protected readonly _options: SyncStatus.Options; + + constructor(_options: SyncStatus.Options) { + this._options = _options; + } /** * Get sync status for the current sync and the most recently finished sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` represents the most recent time any sync completed. These timestamps may correspond to different sync instances which may result in a sync start time being later than a separate sync completed time. To ensure you are retrieving the latest available data reference the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). @@ -75,23 +82,15 @@ export class SyncStatus { "ats/v1/sync-status", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -113,6 +112,7 @@ export class SyncStatus { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -121,12 +121,14 @@ export class SyncStatus { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/sync-status."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/tags/client/Client.ts b/src/api/resources/ats/resources/tags/client/Client.ts index 1c82cf5fe..d466a1246 100644 --- a/src/api/resources/ats/resources/tags/client/Client.ts +++ b/src/api/resources/ats/resources/tags/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Tags { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Tags { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Tags { - constructor(protected readonly _options: Tags.Options) {} + protected readonly _options: Tags.Options; + + constructor(_options: Tags.Options) { + this._options = _options; + } /** * Returns a list of `Tag` objects. @@ -118,23 +125,15 @@ export class Tags { "ats/v1/tags", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -156,6 +155,7 @@ export class Tags { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -164,12 +164,14 @@ export class Tags { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/tags."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/users/client/Client.ts b/src/api/resources/ats/resources/users/client/Client.ts index 218fae6d0..7637e6c31 100644 --- a/src/api/resources/ats/resources/users/client/Client.ts +++ b/src/api/resources/ats/resources/users/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Users { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Users { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Users { - constructor(protected readonly _options: Users.Options) {} + protected readonly _options: Users.Options; + + constructor(_options: Users.Options) { + this._options = _options; + } /** * Returns a list of `RemoteUser` objects. @@ -133,23 +140,15 @@ export class Users { "ats/v1/users", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -171,6 +170,7 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -179,12 +179,14 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/users."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -238,23 +240,15 @@ export class Users { `ats/v1/users/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -276,6 +270,7 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -284,12 +279,14 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/users/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/resources/webhookReceivers/client/Client.ts b/src/api/resources/ats/resources/webhookReceivers/client/Client.ts index bd6862b2a..3d9ff40e6 100644 --- a/src/api/resources/ats/resources/webhookReceivers/client/Client.ts +++ b/src/api/resources/ats/resources/webhookReceivers/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace WebhookReceivers { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace WebhookReceivers { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class WebhookReceivers { - constructor(protected readonly _options: WebhookReceivers.Options) {} + protected readonly _options: WebhookReceivers.Options; + + constructor(_options: WebhookReceivers.Options) { + this._options = _options; + } /** * Returns a list of `WebhookReceiver` objects. @@ -62,22 +69,14 @@ export class WebhookReceivers { "ats/v1/webhook-receivers", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ats/v1/webhook-receivers."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -148,20 +150,14 @@ export class WebhookReceivers { "ats/v1/webhook-receivers", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.ats.WebhookReceiverRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -186,6 +182,7 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -194,12 +191,14 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ats/v1/webhook-receivers."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ats/types/AccountDetails.ts b/src/api/resources/ats/types/AccountDetails.ts index 80d018b9a..bc1f36038 100644 --- a/src/api/resources/ats/types/AccountDetails.ts +++ b/src/api/resources/ats/types/AccountDetails.ts @@ -8,7 +8,7 @@ export interface AccountDetails { id?: string; integration?: string; integrationSlug?: string; - category?: Merge.ats.CategoryEnum; + category?: Merge.ats.AccountDetailsCategory; endUserOriginId?: string; endUserOrganizationName?: string; endUserEmailAddress?: string; diff --git a/src/api/resources/ats/types/AccountDetailsAndActions.ts b/src/api/resources/ats/types/AccountDetailsAndActions.ts index 9a73fbbce..6a40c17a4 100644 --- a/src/api/resources/ats/types/AccountDetailsAndActions.ts +++ b/src/api/resources/ats/types/AccountDetailsAndActions.ts @@ -14,8 +14,8 @@ import * as Merge from "../../../index"; */ export interface AccountDetailsAndActions { id: string; - category?: Merge.ats.CategoryEnum; - status: Merge.ats.AccountDetailsAndActionsStatusEnum; + category?: Merge.ats.AccountDetailsAndActionsCategory; + status: Merge.ats.AccountDetailsAndActionsStatus; statusDetail?: string; endUserOriginId?: string; endUserOrganizationName: string; @@ -28,4 +28,5 @@ export interface AccountDetailsAndActions { integration?: Merge.ats.AccountDetailsAndActionsIntegration; accountType: string; completedAt: Date; + integrationSpecificFields?: Record; } diff --git a/src/api/resources/ats/types/AccountDetailsAndActionsCategory.ts b/src/api/resources/ats/types/AccountDetailsAndActionsCategory.ts new file mode 100644 index 000000000..65402d6a8 --- /dev/null +++ b/src/api/resources/ats/types/AccountDetailsAndActionsCategory.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type AccountDetailsAndActionsCategory = Merge.ats.CategoryEnum | string; diff --git a/src/api/resources/ats/types/AccountDetailsAndActionsStatus.ts b/src/api/resources/ats/types/AccountDetailsAndActionsStatus.ts new file mode 100644 index 000000000..024970001 --- /dev/null +++ b/src/api/resources/ats/types/AccountDetailsAndActionsStatus.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type AccountDetailsAndActionsStatus = Merge.ats.AccountDetailsAndActionsStatusEnum | string; diff --git a/src/api/resources/ats/types/AccountDetailsCategory.ts b/src/api/resources/ats/types/AccountDetailsCategory.ts new file mode 100644 index 000000000..62644f441 --- /dev/null +++ b/src/api/resources/ats/types/AccountDetailsCategory.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type AccountDetailsCategory = Merge.ats.CategoryEnum | string; diff --git a/src/api/resources/ats/types/AuditLogEvent.ts b/src/api/resources/ats/types/AuditLogEvent.ts index 32b7af14e..f4dc7843a 100644 --- a/src/api/resources/ats/types/AuditLogEvent.ts +++ b/src/api/resources/ats/types/AuditLogEvent.ts @@ -30,6 +30,7 @@ export interface AuditLogEvent { * * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY * * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY * * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE * * `INVITED_USER` - INVITED_USER * * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED * * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED diff --git a/src/api/resources/ats/types/AuditLogEventEventType.ts b/src/api/resources/ats/types/AuditLogEventEventType.ts index 87bc451f0..68ec09cfc 100644 --- a/src/api/resources/ats/types/AuditLogEventEventType.ts +++ b/src/api/resources/ats/types/AuditLogEventEventType.ts @@ -12,6 +12,7 @@ import * as Merge from "../../../index"; * * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY * * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY * * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE * * `INVITED_USER` - INVITED_USER * * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED * * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED diff --git a/src/api/resources/ats/types/EventTypeEnum.ts b/src/api/resources/ats/types/EventTypeEnum.ts index 316d8531b..38d61753c 100644 --- a/src/api/resources/ats/types/EventTypeEnum.ts +++ b/src/api/resources/ats/types/EventTypeEnum.ts @@ -8,6 +8,7 @@ * * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY * * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY * * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE * * `INVITED_USER` - INVITED_USER * * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED * * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED diff --git a/src/api/resources/ats/types/Job.ts b/src/api/resources/ats/types/Job.ts index 363b88409..fe1987a02 100644 --- a/src/api/resources/ats/types/Job.ts +++ b/src/api/resources/ats/types/Job.ts @@ -42,7 +42,7 @@ export interface Job { * * `REQUISITION` - REQUISITION * * `PROFILE` - PROFILE */ - type?: Merge.ats.JobTypeEnum; + type?: Merge.ats.JobType; /** IDs of `JobPosting` objects that serve as job postings for this `Job`. */ jobPostings?: (string | undefined)[]; jobPostingUrls?: Merge.ats.Url[]; diff --git a/src/api/resources/ats/types/JobPosting.ts b/src/api/resources/ats/types/JobPosting.ts index 04dde0b75..0b19de50e 100644 --- a/src/api/resources/ats/types/JobPosting.ts +++ b/src/api/resources/ats/types/JobPosting.ts @@ -34,7 +34,7 @@ export interface JobPosting { * * `INTERNAL` - INTERNAL * * `PENDING` - PENDING */ - status?: Merge.ats.JobPostingStatusEnum; + status?: Merge.ats.JobPostingStatus; /** The job posting’s content. */ content?: string; /** When the third party's job posting was created. */ diff --git a/src/api/resources/ats/types/JobPostingStatus.ts b/src/api/resources/ats/types/JobPostingStatus.ts new file mode 100644 index 000000000..240bd1d6d --- /dev/null +++ b/src/api/resources/ats/types/JobPostingStatus.ts @@ -0,0 +1,16 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +/** + * The job posting's status. + * + * * `PUBLISHED` - PUBLISHED + * * `CLOSED` - CLOSED + * * `DRAFT` - DRAFT + * * `INTERNAL` - INTERNAL + * * `PENDING` - PENDING + */ +export type JobPostingStatus = Merge.ats.JobPostingStatusEnum | string; diff --git a/src/api/resources/ats/types/JobType.ts b/src/api/resources/ats/types/JobType.ts new file mode 100644 index 000000000..9f93d80da --- /dev/null +++ b/src/api/resources/ats/types/JobType.ts @@ -0,0 +1,14 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +/** + * The job's type. + * + * * `POSTING` - POSTING + * * `REQUISITION` - REQUISITION + * * `PROFILE` - PROFILE + */ +export type JobType = Merge.ats.JobTypeEnum | string; diff --git a/src/api/resources/ats/types/SyncStatus.ts b/src/api/resources/ats/types/SyncStatus.ts index d81c3938a..dfc85b3db 100644 --- a/src/api/resources/ats/types/SyncStatus.ts +++ b/src/api/resources/ats/types/SyncStatus.ts @@ -17,9 +17,9 @@ export interface SyncStatus { modelId: string; lastSyncStart?: Date; nextSyncStart?: Date; - lastSyncResult?: Merge.ats.LastSyncResultEnum; + lastSyncResult?: Merge.ats.SyncStatusLastSyncResult; lastSyncFinished?: Date; - status: Merge.ats.StatusFd5Enum; + status: Merge.ats.SyncStatusStatus; isInitialSync: boolean; selectiveSyncConfigurationsUsage?: Merge.ats.SelectiveSyncConfigurationsUsageEnum; } diff --git a/src/api/resources/ats/types/SyncStatusLastSyncResult.ts b/src/api/resources/ats/types/SyncStatusLastSyncResult.ts new file mode 100644 index 000000000..c9896bfba --- /dev/null +++ b/src/api/resources/ats/types/SyncStatusLastSyncResult.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type SyncStatusLastSyncResult = Merge.ats.LastSyncResultEnum | string; diff --git a/src/api/resources/ats/types/SyncStatusStatus.ts b/src/api/resources/ats/types/SyncStatusStatus.ts new file mode 100644 index 000000000..7b62cc454 --- /dev/null +++ b/src/api/resources/ats/types/SyncStatusStatus.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type SyncStatusStatus = Merge.ats.StatusFd5Enum | string; diff --git a/src/api/resources/ats/types/index.ts b/src/api/resources/ats/types/index.ts index cd0b71865..b5bd450ee 100644 --- a/src/api/resources/ats/types/index.ts +++ b/src/api/resources/ats/types/index.ts @@ -1,5 +1,8 @@ export * from "./AccessRoleEnum"; +export * from "./AccountDetailsCategory"; export * from "./AccountDetails"; +export * from "./AccountDetailsAndActionsCategory"; +export * from "./AccountDetailsAndActionsStatus"; export * from "./AccountDetailsAndActions"; export * from "./AccountDetailsAndActionsIntegration"; export * from "./AccountDetailsAndActionsStatusEnum"; @@ -92,6 +95,7 @@ export * from "./IssueStatus"; export * from "./Issue"; export * from "./IssueStatusEnum"; export * from "./JobStatus"; +export * from "./JobType"; export * from "./JobDepartmentsItem"; export * from "./JobOfficesItem"; export * from "./JobHiringManagersItem"; @@ -101,6 +105,7 @@ export * from "./JobInterviewStageJob"; export * from "./JobInterviewStage"; export * from "./JobPostingJobPostingUrlsItem"; export * from "./JobPostingJob"; +export * from "./JobPostingStatus"; export * from "./JobPosting"; export * from "./JobPostingStatusEnum"; export * from "./JobStatusEnum"; @@ -196,6 +201,8 @@ export * from "./ScreeningQuestionOption"; export * from "./ScreeningQuestionTypeEnum"; export * from "./SelectiveSyncConfigurationsUsageEnum"; export * from "./StatusFd5Enum"; +export * from "./SyncStatusLastSyncResult"; +export * from "./SyncStatusStatus"; export * from "./SyncStatus"; export * from "./Tag"; export * from "./UrlUrlType"; diff --git a/src/api/resources/crm/client/Client.ts b/src/api/resources/crm/client/Client.ts index e71ff6feb..35f9460aa 100644 --- a/src/api/resources/crm/client/Client.ts +++ b/src/api/resources/crm/client/Client.ts @@ -44,11 +44,14 @@ export declare namespace Crm { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } } export class Crm { + protected readonly _options: Crm.Options; protected _accountDetails: AccountDetails | undefined; protected _accountToken: AccountToken | undefined; protected _accounts: Accounts | undefined; @@ -81,7 +84,9 @@ export class Crm { protected _users: Users | undefined; protected _webhookReceivers: WebhookReceivers | undefined; - constructor(protected readonly _options: Crm.Options) {} + constructor(_options: Crm.Options) { + this._options = _options; + } public get accountDetails(): AccountDetails { return (this._accountDetails ??= new AccountDetails(this._options)); diff --git a/src/api/resources/crm/resources/accountDetails/client/Client.ts b/src/api/resources/crm/resources/accountDetails/client/Client.ts index 3461689cc..b79497044 100644 --- a/src/api/resources/crm/resources/accountDetails/client/Client.ts +++ b/src/api/resources/crm/resources/accountDetails/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AccountDetails { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AccountDetails { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AccountDetails { - constructor(protected readonly _options: AccountDetails.Options) {} + protected readonly _options: AccountDetails.Options; + + constructor(_options: AccountDetails.Options) { + this._options = _options; + } /** * Get details for a linked account. @@ -62,22 +69,14 @@ export class AccountDetails { "crm/v1/account-details", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class AccountDetails { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class AccountDetails { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/account-details."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/accountToken/client/Client.ts b/src/api/resources/crm/resources/accountToken/client/Client.ts index d7c0717d0..2b2869cac 100644 --- a/src/api/resources/crm/resources/accountToken/client/Client.ts +++ b/src/api/resources/crm/resources/accountToken/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AccountToken { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AccountToken { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AccountToken { - constructor(protected readonly _options: AccountToken.Options) {} + protected readonly _options: AccountToken.Options; + + constructor(_options: AccountToken.Options) { + this._options = _options; + } /** * Returns the account token for the end user with the provided public token. @@ -65,22 +72,14 @@ export class AccountToken { `crm/v1/account-token/${encodeURIComponent(publicToken)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -102,6 +101,7 @@ export class AccountToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -110,6 +110,7 @@ export class AccountToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -118,6 +119,7 @@ export class AccountToken { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/accounts/client/Client.ts b/src/api/resources/crm/resources/accounts/client/Client.ts index de3d6087b..e30dc7cdc 100644 --- a/src/api/resources/crm/resources/accounts/client/Client.ts +++ b/src/api/resources/crm/resources/accounts/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Accounts { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Accounts { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Accounts { - constructor(protected readonly _options: Accounts.Options) {} + protected readonly _options: Accounts.Options; + + constructor(_options: Accounts.Options) { + this._options = _options; + } /** * Returns a list of `Account` objects. @@ -138,23 +145,15 @@ export class Accounts { "crm/v1/accounts", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -176,6 +175,7 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -184,12 +184,14 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/accounts."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -234,20 +236,14 @@ export class Accounts { "crm/v1/accounts", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -273,6 +269,7 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -281,12 +278,14 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /crm/v1/accounts."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -340,23 +339,15 @@ export class Accounts { `crm/v1/accounts/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -378,6 +369,7 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -386,12 +378,14 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/accounts/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -439,20 +433,14 @@ export class Accounts { `crm/v1/accounts/${encodeURIComponent(id)}`, ), method: "PATCH", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -480,6 +468,7 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -488,12 +477,14 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling PATCH /crm/v1/accounts/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -526,22 +517,14 @@ export class Accounts { `crm/v1/accounts/meta/patch/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -563,6 +546,7 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -571,6 +555,7 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -579,6 +564,7 @@ export class Accounts { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -608,22 +594,14 @@ export class Accounts { "crm/v1/accounts/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -645,6 +623,7 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -653,12 +632,14 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/accounts/meta/post."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -690,6 +671,7 @@ export class Accounts { includeRemoteFields, includeShellData, isCommonModelField, + isCustom, pageSize, } = request; const _queryParams: Record = {}; @@ -717,6 +699,10 @@ export class Accounts { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -729,23 +715,15 @@ export class Accounts { "crm/v1/accounts/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -767,6 +745,7 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -775,6 +754,7 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -783,6 +763,7 @@ export class Accounts { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/accounts/client/requests/AccountsRemoteFieldClassesListRequest.ts b/src/api/resources/crm/resources/accounts/client/requests/AccountsRemoteFieldClassesListRequest.ts index 9cb3a2bba..27f4169e6 100644 --- a/src/api/resources/crm/resources/accounts/client/requests/AccountsRemoteFieldClassesListRequest.ts +++ b/src/api/resources/crm/resources/accounts/client/requests/AccountsRemoteFieldClassesListRequest.ts @@ -31,6 +31,10 @@ export interface AccountsRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/crm/resources/associationTypes/client/Client.ts b/src/api/resources/crm/resources/associationTypes/client/Client.ts index 4e285aa43..bcaf7be37 100644 --- a/src/api/resources/crm/resources/associationTypes/client/Client.ts +++ b/src/api/resources/crm/resources/associationTypes/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AssociationTypes { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AssociationTypes { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AssociationTypes { - constructor(protected readonly _options: AssociationTypes.Options) {} + protected readonly _options: AssociationTypes.Options; + + constructor(_options: AssociationTypes.Options) { + this._options = _options; + } /** * Returns a list of `AssociationType` objects. @@ -128,23 +135,15 @@ export class AssociationTypes { `crm/v1/custom-object-classes/${encodeURIComponent(customObjectClassId)}/association-types`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -166,6 +165,7 @@ export class AssociationTypes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -174,6 +174,7 @@ export class AssociationTypes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -182,6 +183,7 @@ export class AssociationTypes { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -241,20 +243,14 @@ export class AssociationTypes { `crm/v1/custom-object-classes/${encodeURIComponent(customObjectClassId)}/association-types`, ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -282,6 +278,7 @@ export class AssociationTypes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -290,6 +287,7 @@ export class AssociationTypes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -298,6 +296,7 @@ export class AssociationTypes { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -352,23 +351,15 @@ export class AssociationTypes { `crm/v1/custom-object-classes/${encodeURIComponent(customObjectClassId)}/association-types/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -390,6 +381,7 @@ export class AssociationTypes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -398,6 +390,7 @@ export class AssociationTypes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -406,6 +399,7 @@ export class AssociationTypes { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -440,22 +434,14 @@ export class AssociationTypes { `crm/v1/custom-object-classes/${encodeURIComponent(customObjectClassId)}/association-types/meta/post`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -477,6 +463,7 @@ export class AssociationTypes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -485,6 +472,7 @@ export class AssociationTypes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -493,6 +481,7 @@ export class AssociationTypes { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/associations/client/Client.ts b/src/api/resources/crm/resources/associations/client/Client.ts index e0d72fe06..4d639b3d5 100644 --- a/src/api/resources/crm/resources/associations/client/Client.ts +++ b/src/api/resources/crm/resources/associations/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Associations { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Associations { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Associations { - constructor(protected readonly _options: Associations.Options) {} + protected readonly _options: Associations.Options; + + constructor(_options: Associations.Options) { + this._options = _options; + } /** * Returns a list of `Association` objects. @@ -141,23 +148,15 @@ export class Associations { `crm/v1/custom-object-classes/${encodeURIComponent(customObjectClassId)}/custom-objects/${encodeURIComponent(objectId)}/associations`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -179,6 +178,7 @@ export class Associations { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -187,6 +187,7 @@ export class Associations { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -195,6 +196,7 @@ export class Associations { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -262,23 +264,15 @@ export class Associations { `crm/v1/custom-object-classes/${encodeURIComponent(sourceClassId)}/custom-objects/${encodeURIComponent(sourceObjectId)}/associations/${encodeURIComponent(targetClassId)}/${encodeURIComponent(targetObjectId)}/${encodeURIComponent(associationTypeId)}`, ), method: "PUT", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -300,6 +294,7 @@ export class Associations { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -308,6 +303,7 @@ export class Associations { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -316,6 +312,7 @@ export class Associations { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/asyncPassthrough/client/Client.ts b/src/api/resources/crm/resources/asyncPassthrough/client/Client.ts index e9adb5811..68b0ad689 100644 --- a/src/api/resources/crm/resources/asyncPassthrough/client/Client.ts +++ b/src/api/resources/crm/resources/asyncPassthrough/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AsyncPassthrough { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AsyncPassthrough { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AsyncPassthrough { - constructor(protected readonly _options: AsyncPassthrough.Options) {} + protected readonly _options: AsyncPassthrough.Options; + + constructor(_options: AsyncPassthrough.Options) { + this._options = _options; + } /** * Asynchronously pull data from an endpoint not currently supported by Merge. @@ -68,20 +75,14 @@ export class AsyncPassthrough { "crm/v1/async-passthrough", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.crm.DataPassthroughRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -106,6 +107,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -114,12 +116,14 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /crm/v1/async-passthrough."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -152,22 +156,14 @@ export class AsyncPassthrough { `crm/v1/async-passthrough/${encodeURIComponent(asyncPassthroughReceiptId)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -189,6 +185,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -197,6 +194,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -205,6 +203,7 @@ export class AsyncPassthrough { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/auditTrail/client/Client.ts b/src/api/resources/crm/resources/auditTrail/client/Client.ts index 4b68bf74c..19db89220 100644 --- a/src/api/resources/crm/resources/auditTrail/client/Client.ts +++ b/src/api/resources/crm/resources/auditTrail/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AuditTrail { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AuditTrail { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AuditTrail { - constructor(protected readonly _options: AuditTrail.Options) {} + protected readonly _options: AuditTrail.Options; + + constructor(_options: AuditTrail.Options) { + this._options = _options; + } /** * Gets a list of audit trail events. @@ -91,23 +98,15 @@ export class AuditTrail { "crm/v1/audit-trail", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -129,6 +128,7 @@ export class AuditTrail { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -137,12 +137,14 @@ export class AuditTrail { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/audit-trail."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/auditTrail/client/requests/AuditTrailListRequest.ts b/src/api/resources/crm/resources/auditTrail/client/requests/AuditTrailListRequest.ts index b3187c0db..99ee8b1ad 100644 --- a/src/api/resources/crm/resources/auditTrail/client/requests/AuditTrailListRequest.ts +++ b/src/api/resources/crm/resources/auditTrail/client/requests/AuditTrailListRequest.ts @@ -16,7 +16,7 @@ export interface AuditTrailListRequest { */ endDate?: string; /** - * If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` + * If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` */ eventType?: string; /** diff --git a/src/api/resources/crm/resources/availableActions/client/Client.ts b/src/api/resources/crm/resources/availableActions/client/Client.ts index f2bb58d5b..23f6159dc 100644 --- a/src/api/resources/crm/resources/availableActions/client/Client.ts +++ b/src/api/resources/crm/resources/availableActions/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AvailableActions { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AvailableActions { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AvailableActions { - constructor(protected readonly _options: AvailableActions.Options) {} + protected readonly _options: AvailableActions.Options; + + constructor(_options: AvailableActions.Options) { + this._options = _options; + } /** * Returns a list of models and actions available for an account. @@ -62,22 +69,14 @@ export class AvailableActions { "crm/v1/available-actions", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class AvailableActions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class AvailableActions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/available-actions."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/contacts/client/Client.ts b/src/api/resources/crm/resources/contacts/client/Client.ts index d0363af4e..8f8245da7 100644 --- a/src/api/resources/crm/resources/contacts/client/Client.ts +++ b/src/api/resources/crm/resources/contacts/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Contacts { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Contacts { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Contacts { - constructor(protected readonly _options: Contacts.Options) {} + protected readonly _options: Contacts.Options; + + constructor(_options: Contacts.Options) { + this._options = _options; + } /** * Returns a list of `Contact` objects. @@ -145,23 +152,15 @@ export class Contacts { "crm/v1/contacts", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -183,6 +182,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -191,12 +191,14 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/contacts."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -241,20 +243,14 @@ export class Contacts { "crm/v1/contacts", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -280,6 +276,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -288,12 +285,14 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /crm/v1/contacts."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -349,23 +348,15 @@ export class Contacts { `crm/v1/contacts/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -387,6 +378,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -395,12 +387,14 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/contacts/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -448,20 +442,14 @@ export class Contacts { `crm/v1/contacts/${encodeURIComponent(id)}`, ), method: "PATCH", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -489,6 +477,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -497,12 +486,14 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling PATCH /crm/v1/contacts/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -540,20 +531,14 @@ export class Contacts { `crm/v1/contacts/ignore/${encodeURIComponent(modelId)}`, ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.crm.IgnoreCommonModelRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -569,6 +554,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -577,6 +563,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -585,6 +572,7 @@ export class Contacts { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -617,22 +605,14 @@ export class Contacts { `crm/v1/contacts/meta/patch/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -654,6 +634,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -662,6 +643,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -670,6 +652,7 @@ export class Contacts { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -699,22 +682,14 @@ export class Contacts { "crm/v1/contacts/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -736,6 +711,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -744,12 +720,14 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/contacts/meta/post."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -781,6 +759,7 @@ export class Contacts { includeRemoteFields, includeShellData, isCommonModelField, + isCustom, pageSize, } = request; const _queryParams: Record = {}; @@ -808,6 +787,10 @@ export class Contacts { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -820,23 +803,15 @@ export class Contacts { "crm/v1/contacts/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -858,6 +833,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -866,6 +842,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -874,6 +851,7 @@ export class Contacts { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/contacts/client/requests/ContactsRemoteFieldClassesListRequest.ts b/src/api/resources/crm/resources/contacts/client/requests/ContactsRemoteFieldClassesListRequest.ts index 869d1451c..9708598f0 100644 --- a/src/api/resources/crm/resources/contacts/client/requests/ContactsRemoteFieldClassesListRequest.ts +++ b/src/api/resources/crm/resources/contacts/client/requests/ContactsRemoteFieldClassesListRequest.ts @@ -31,6 +31,10 @@ export interface ContactsRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/crm/resources/customObjectClasses/client/Client.ts b/src/api/resources/crm/resources/customObjectClasses/client/Client.ts index 809e732d0..551653811 100644 --- a/src/api/resources/crm/resources/customObjectClasses/client/Client.ts +++ b/src/api/resources/crm/resources/customObjectClasses/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace CustomObjectClasses { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace CustomObjectClasses { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class CustomObjectClasses { - constructor(protected readonly _options: CustomObjectClasses.Options) {} + protected readonly _options: CustomObjectClasses.Options; + + constructor(_options: CustomObjectClasses.Options) { + this._options = _options; + } /** * Returns a list of `CustomObjectClass` objects. @@ -123,23 +130,15 @@ export class CustomObjectClasses { "crm/v1/custom-object-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -161,6 +160,7 @@ export class CustomObjectClasses { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -169,12 +169,14 @@ export class CustomObjectClasses { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/custom-object-classes."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -224,23 +226,15 @@ export class CustomObjectClasses { `crm/v1/custom-object-classes/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -262,6 +256,7 @@ export class CustomObjectClasses { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -270,6 +265,7 @@ export class CustomObjectClasses { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -278,6 +274,7 @@ export class CustomObjectClasses { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/customObjects/client/Client.ts b/src/api/resources/crm/resources/customObjects/client/Client.ts index 0b54776f6..39e461dbb 100644 --- a/src/api/resources/crm/resources/customObjects/client/Client.ts +++ b/src/api/resources/crm/resources/customObjects/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace CustomObjects { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace CustomObjects { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class CustomObjects { - constructor(protected readonly _options: CustomObjects.Options) {} + protected readonly _options: CustomObjects.Options; + + constructor(_options: CustomObjects.Options) { + this._options = _options; + } /** * Returns a list of `CustomObject` objects. @@ -128,23 +135,15 @@ export class CustomObjects { `crm/v1/custom-object-classes/${encodeURIComponent(customObjectClassId)}/custom-objects`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -166,6 +165,7 @@ export class CustomObjects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -174,6 +174,7 @@ export class CustomObjects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -182,6 +183,7 @@ export class CustomObjects { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -235,20 +237,14 @@ export class CustomObjects { `crm/v1/custom-object-classes/${encodeURIComponent(customObjectClassId)}/custom-objects`, ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -276,6 +272,7 @@ export class CustomObjects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -284,6 +281,7 @@ export class CustomObjects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -292,6 +290,7 @@ export class CustomObjects { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -346,23 +345,15 @@ export class CustomObjects { `crm/v1/custom-object-classes/${encodeURIComponent(customObjectClassId)}/custom-objects/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -384,6 +375,7 @@ export class CustomObjects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -392,6 +384,7 @@ export class CustomObjects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -400,6 +393,7 @@ export class CustomObjects { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -434,22 +428,14 @@ export class CustomObjects { `crm/v1/custom-object-classes/${encodeURIComponent(customObjectClassId)}/custom-objects/meta/post`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -471,6 +457,7 @@ export class CustomObjects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -479,6 +466,7 @@ export class CustomObjects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -487,6 +475,7 @@ export class CustomObjects { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -520,6 +509,7 @@ export class CustomObjects { includeRemoteFields, includeShellData, isCommonModelField, + isCustom, pageSize, } = request; const _queryParams: Record = {}; @@ -547,6 +537,10 @@ export class CustomObjects { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -559,23 +553,15 @@ export class CustomObjects { "crm/v1/custom-object-classes/custom-objects/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -597,6 +583,7 @@ export class CustomObjects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -605,6 +592,7 @@ export class CustomObjects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -613,6 +601,7 @@ export class CustomObjects { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/customObjects/client/requests/CustomObjectClassesCustomObjectsRemoteFieldClassesListRequest.ts b/src/api/resources/crm/resources/customObjects/client/requests/CustomObjectClassesCustomObjectsRemoteFieldClassesListRequest.ts index 85cc5fabb..95a3a52b2 100644 --- a/src/api/resources/crm/resources/customObjects/client/requests/CustomObjectClassesCustomObjectsRemoteFieldClassesListRequest.ts +++ b/src/api/resources/crm/resources/customObjects/client/requests/CustomObjectClassesCustomObjectsRemoteFieldClassesListRequest.ts @@ -31,6 +31,10 @@ export interface CustomObjectClassesCustomObjectsRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/crm/resources/deleteAccount/client/Client.ts b/src/api/resources/crm/resources/deleteAccount/client/Client.ts index 8df8d0308..0f81e4d89 100644 --- a/src/api/resources/crm/resources/deleteAccount/client/Client.ts +++ b/src/api/resources/crm/resources/deleteAccount/client/Client.ts @@ -4,6 +4,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -15,6 +16,8 @@ export declare namespace DeleteAccount { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -28,12 +31,16 @@ export declare namespace DeleteAccount { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class DeleteAccount { - constructor(protected readonly _options: DeleteAccount.Options) {} + protected readonly _options: DeleteAccount.Options; + + constructor(_options: DeleteAccount.Options) { + this._options = _options; + } /** * Delete a linked account. @@ -56,22 +63,14 @@ export class DeleteAccount { "crm/v1/delete-account", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -84,6 +83,7 @@ export class DeleteAccount { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -92,12 +92,14 @@ export class DeleteAccount { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /crm/v1/delete-account."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/engagementTypes/client/Client.ts b/src/api/resources/crm/resources/engagementTypes/client/Client.ts index f06c44f8d..6c5b1e7db 100644 --- a/src/api/resources/crm/resources/engagementTypes/client/Client.ts +++ b/src/api/resources/crm/resources/engagementTypes/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace EngagementTypes { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace EngagementTypes { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class EngagementTypes { - constructor(protected readonly _options: EngagementTypes.Options) {} + protected readonly _options: EngagementTypes.Options; + + constructor(_options: EngagementTypes.Options) { + this._options = _options; + } /** * Returns a list of `EngagementType` objects. @@ -123,23 +130,15 @@ export class EngagementTypes { "crm/v1/engagement-types", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -161,6 +160,7 @@ export class EngagementTypes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -169,12 +169,14 @@ export class EngagementTypes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/engagement-types."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -224,23 +226,15 @@ export class EngagementTypes { `crm/v1/engagement-types/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -262,6 +256,7 @@ export class EngagementTypes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -270,12 +265,14 @@ export class EngagementTypes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/engagement-types/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -307,6 +304,7 @@ export class EngagementTypes { includeRemoteFields, includeShellData, isCommonModelField, + isCustom, pageSize, } = request; const _queryParams: Record = {}; @@ -334,6 +332,10 @@ export class EngagementTypes { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -346,23 +348,15 @@ export class EngagementTypes { "crm/v1/engagement-types/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -384,6 +378,7 @@ export class EngagementTypes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -392,6 +387,7 @@ export class EngagementTypes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -400,6 +396,7 @@ export class EngagementTypes { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/engagementTypes/client/requests/EngagementTypesRemoteFieldClassesListRequest.ts b/src/api/resources/crm/resources/engagementTypes/client/requests/EngagementTypesRemoteFieldClassesListRequest.ts index f710a9112..7f843911a 100644 --- a/src/api/resources/crm/resources/engagementTypes/client/requests/EngagementTypesRemoteFieldClassesListRequest.ts +++ b/src/api/resources/crm/resources/engagementTypes/client/requests/EngagementTypesRemoteFieldClassesListRequest.ts @@ -31,6 +31,10 @@ export interface EngagementTypesRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/crm/resources/engagements/client/Client.ts b/src/api/resources/crm/resources/engagements/client/Client.ts index 10d5431b4..9b777e8da 100644 --- a/src/api/resources/crm/resources/engagements/client/Client.ts +++ b/src/api/resources/crm/resources/engagements/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Engagements { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Engagements { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Engagements { - constructor(protected readonly _options: Engagements.Options) {} + protected readonly _options: Engagements.Options; + + constructor(_options: Engagements.Options) { + this._options = _options; + } /** * Returns a list of `Engagement` objects. @@ -140,23 +147,15 @@ export class Engagements { "crm/v1/engagements", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -178,6 +177,7 @@ export class Engagements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -186,12 +186,14 @@ export class Engagements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/engagements."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -236,20 +238,14 @@ export class Engagements { "crm/v1/engagements", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -275,6 +271,7 @@ export class Engagements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -283,12 +280,14 @@ export class Engagements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /crm/v1/engagements."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -344,23 +343,15 @@ export class Engagements { `crm/v1/engagements/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -382,6 +373,7 @@ export class Engagements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -390,12 +382,14 @@ export class Engagements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/engagements/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -443,20 +437,14 @@ export class Engagements { `crm/v1/engagements/${encodeURIComponent(id)}`, ), method: "PATCH", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -484,6 +472,7 @@ export class Engagements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -492,12 +481,14 @@ export class Engagements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling PATCH /crm/v1/engagements/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -530,22 +521,14 @@ export class Engagements { `crm/v1/engagements/meta/patch/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -567,6 +550,7 @@ export class Engagements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -575,6 +559,7 @@ export class Engagements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -583,6 +568,7 @@ export class Engagements { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -612,22 +598,14 @@ export class Engagements { "crm/v1/engagements/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -649,6 +627,7 @@ export class Engagements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -657,12 +636,14 @@ export class Engagements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/engagements/meta/post."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -694,6 +675,7 @@ export class Engagements { includeRemoteFields, includeShellData, isCommonModelField, + isCustom, pageSize, } = request; const _queryParams: Record = {}; @@ -721,6 +703,10 @@ export class Engagements { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -733,23 +719,15 @@ export class Engagements { "crm/v1/engagements/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -771,6 +749,7 @@ export class Engagements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -779,6 +758,7 @@ export class Engagements { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -787,6 +767,7 @@ export class Engagements { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/engagements/client/requests/EngagementsRemoteFieldClassesListRequest.ts b/src/api/resources/crm/resources/engagements/client/requests/EngagementsRemoteFieldClassesListRequest.ts index c75063c28..611d088b4 100644 --- a/src/api/resources/crm/resources/engagements/client/requests/EngagementsRemoteFieldClassesListRequest.ts +++ b/src/api/resources/crm/resources/engagements/client/requests/EngagementsRemoteFieldClassesListRequest.ts @@ -31,6 +31,10 @@ export interface EngagementsRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/crm/resources/fieldMapping/client/Client.ts b/src/api/resources/crm/resources/fieldMapping/client/Client.ts index f1944e543..817c40682 100644 --- a/src/api/resources/crm/resources/fieldMapping/client/Client.ts +++ b/src/api/resources/crm/resources/fieldMapping/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace FieldMapping { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace FieldMapping { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class FieldMapping { - constructor(protected readonly _options: FieldMapping.Options) {} + protected readonly _options: FieldMapping.Options; + + constructor(_options: FieldMapping.Options) { + this._options = _options; + } /** * Get all Field Mappings for this Linked Account. Field Mappings are mappings between third-party Remote Fields and user defined Merge fields. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). @@ -71,23 +78,15 @@ export class FieldMapping { "crm/v1/field-mappings", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -109,6 +108,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -117,12 +117,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/field-mappings."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -168,20 +170,14 @@ export class FieldMapping { "crm/v1/field-mappings", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -207,6 +203,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -215,12 +212,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /crm/v1/field-mappings."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -253,22 +252,14 @@ export class FieldMapping { `crm/v1/field-mappings/${encodeURIComponent(fieldMappingId)}`, ), method: "DELETE", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -290,6 +281,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -298,6 +290,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -306,6 +299,7 @@ export class FieldMapping { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -343,20 +337,14 @@ export class FieldMapping { `crm/v1/field-mappings/${encodeURIComponent(fieldMappingId)}`, ), method: "PATCH", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.crm.PatchedEditFieldMappingRequest.jsonOrThrow(request, { @@ -383,6 +371,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -391,6 +380,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -399,6 +389,7 @@ export class FieldMapping { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -441,23 +432,15 @@ export class FieldMapping { "crm/v1/remote-fields", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -479,6 +462,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -487,12 +471,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/remote-fields."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -522,22 +508,14 @@ export class FieldMapping { "crm/v1/target-fields", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -559,6 +537,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -567,12 +546,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/target-fields."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/forceResync/client/Client.ts b/src/api/resources/crm/resources/forceResync/client/Client.ts index fa876b219..5c9fc1c95 100644 --- a/src/api/resources/crm/resources/forceResync/client/Client.ts +++ b/src/api/resources/crm/resources/forceResync/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace ForceResync { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace ForceResync { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class ForceResync { - constructor(protected readonly _options: ForceResync.Options) {} + protected readonly _options: ForceResync.Options; + + constructor(_options: ForceResync.Options) { + this._options = _options; + } /** * Force re-sync of all models. This endpoint is available for monthly, quarterly, and highest sync frequency customers on the Professional or Enterprise plans. Doing so will consume a sync credit for the relevant linked account. Force re-syncs can also be triggered manually in the Merge Dashboard and is available for all customers. @@ -62,22 +69,14 @@ export class ForceResync { "crm/v1/sync-status/resync", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class ForceResync { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class ForceResync { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /crm/v1/sync-status/resync."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/generateKey/client/Client.ts b/src/api/resources/crm/resources/generateKey/client/Client.ts index 1c1c96103..24fc690ab 100644 --- a/src/api/resources/crm/resources/generateKey/client/Client.ts +++ b/src/api/resources/crm/resources/generateKey/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace GenerateKey { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace GenerateKey { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class GenerateKey { - constructor(protected readonly _options: GenerateKey.Options) {} + protected readonly _options: GenerateKey.Options; + + constructor(_options: GenerateKey.Options) { + this._options = _options; + } /** * Create a remote key. @@ -67,20 +74,14 @@ export class GenerateKey { "crm/v1/generate-key", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.crm.GenerateRemoteKeyRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -105,6 +106,7 @@ export class GenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -113,12 +115,14 @@ export class GenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /crm/v1/generate-key."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/index.ts b/src/api/resources/crm/resources/index.ts index 365e30c18..5df17baa0 100644 --- a/src/api/resources/crm/resources/index.ts +++ b/src/api/resources/crm/resources/index.ts @@ -8,6 +8,8 @@ export * as issues from "./issues"; export * from "./issues/types"; export * as leads from "./leads"; export * from "./leads/types"; +export * as linkToken from "./linkToken"; +export * from "./linkToken/types"; export * as linkedAccounts from "./linkedAccounts"; export * from "./linkedAccounts/types"; export * as notes from "./notes"; @@ -30,7 +32,6 @@ export * as deleteAccount from "./deleteAccount"; export * as engagementTypes from "./engagementTypes"; export * as fieldMapping from "./fieldMapping"; export * as generateKey from "./generateKey"; -export * as linkToken from "./linkToken"; export * as passthrough from "./passthrough"; export * as regenerateKey from "./regenerateKey"; export * as stages from "./stages"; diff --git a/src/api/resources/crm/resources/issues/client/Client.ts b/src/api/resources/crm/resources/issues/client/Client.ts index 317fe1bbc..35229a214 100644 --- a/src/api/resources/crm/resources/issues/client/Client.ts +++ b/src/api/resources/crm/resources/issues/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Issues { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Issues { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Issues { - constructor(protected readonly _options: Issues.Options) {} + protected readonly _options: Issues.Options; + + constructor(_options: Issues.Options) { + this._options = _options; + } /** * Gets all issues for Organization. @@ -140,23 +147,15 @@ export class Issues { "crm/v1/issues", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -178,6 +177,7 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -186,12 +186,14 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/issues."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -221,22 +223,14 @@ export class Issues { `crm/v1/issues/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -258,6 +252,7 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -266,12 +261,14 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/issues/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/leads/client/Client.ts b/src/api/resources/crm/resources/leads/client/Client.ts index 94c483415..89e59f829 100644 --- a/src/api/resources/crm/resources/leads/client/Client.ts +++ b/src/api/resources/crm/resources/leads/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Leads { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Leads { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Leads { - constructor(protected readonly _options: Leads.Options) {} + protected readonly _options: Leads.Options; + + constructor(_options: Leads.Options) { + this._options = _options; + } /** * Returns a list of `Lead` objects. @@ -155,23 +162,15 @@ export class Leads { "crm/v1/leads", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -193,6 +192,7 @@ export class Leads { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -201,12 +201,14 @@ export class Leads { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/leads."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -251,20 +253,14 @@ export class Leads { "crm/v1/leads", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -290,6 +286,7 @@ export class Leads { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -298,12 +295,14 @@ export class Leads { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /crm/v1/leads."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -359,23 +358,15 @@ export class Leads { `crm/v1/leads/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -397,6 +388,7 @@ export class Leads { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -405,12 +397,14 @@ export class Leads { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/leads/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -438,22 +432,14 @@ export class Leads { "crm/v1/leads/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -475,6 +461,7 @@ export class Leads { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -483,12 +470,14 @@ export class Leads { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/leads/meta/post."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -520,6 +509,7 @@ export class Leads { includeRemoteFields, includeShellData, isCommonModelField, + isCustom, pageSize, } = request; const _queryParams: Record = {}; @@ -547,6 +537,10 @@ export class Leads { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -559,23 +553,15 @@ export class Leads { "crm/v1/leads/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -597,6 +583,7 @@ export class Leads { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -605,6 +592,7 @@ export class Leads { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -613,6 +601,7 @@ export class Leads { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/leads/client/requests/LeadsRemoteFieldClassesListRequest.ts b/src/api/resources/crm/resources/leads/client/requests/LeadsRemoteFieldClassesListRequest.ts index 43296ca44..be72df760 100644 --- a/src/api/resources/crm/resources/leads/client/requests/LeadsRemoteFieldClassesListRequest.ts +++ b/src/api/resources/crm/resources/leads/client/requests/LeadsRemoteFieldClassesListRequest.ts @@ -31,6 +31,10 @@ export interface LeadsRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/crm/resources/linkToken/client/Client.ts b/src/api/resources/crm/resources/linkToken/client/Client.ts index 72422818e..e1eaf585b 100644 --- a/src/api/resources/crm/resources/linkToken/client/Client.ts +++ b/src/api/resources/crm/resources/linkToken/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace LinkToken { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace LinkToken { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class LinkToken { - constructor(protected readonly _options: LinkToken.Options) {} + protected readonly _options: LinkToken.Options; + + constructor(_options: LinkToken.Options) { + this._options = _options; + } /** * Creates a link token to be used when linking a new end user. @@ -70,20 +77,14 @@ export class LinkToken { "crm/v1/link-token", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.crm.EndUserDetailsRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -108,6 +109,7 @@ export class LinkToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -116,12 +118,14 @@ export class LinkToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /crm/v1/link-token."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/linkToken/client/requests/EndUserDetailsRequest.ts b/src/api/resources/crm/resources/linkToken/client/requests/EndUserDetailsRequest.ts index 1e96d1315..32917ba9f 100644 --- a/src/api/resources/crm/resources/linkToken/client/requests/EndUserDetailsRequest.ts +++ b/src/api/resources/crm/resources/linkToken/client/requests/EndUserDetailsRequest.ts @@ -40,7 +40,7 @@ export interface EndUserDetailsRequest { * * `en` - en * * `de` - de */ - language?: Merge.crm.LanguageEnum; + language?: Merge.crm.EndUserDetailsRequestLanguage; /** The boolean that indicates whether initial, periodic, and force syncs will be disabled. */ areSyncsDisabled?: boolean; /** A JSON object containing integration-specific configuration options. */ diff --git a/src/api/resources/crm/resources/linkToken/index.ts b/src/api/resources/crm/resources/linkToken/index.ts index 5ec76921e..c9240f83b 100644 --- a/src/api/resources/crm/resources/linkToken/index.ts +++ b/src/api/resources/crm/resources/linkToken/index.ts @@ -1 +1,2 @@ +export * from "./types"; export * from "./client"; diff --git a/src/api/resources/crm/resources/linkToken/types/EndUserDetailsRequestLanguage.ts b/src/api/resources/crm/resources/linkToken/types/EndUserDetailsRequestLanguage.ts new file mode 100644 index 000000000..7002098b9 --- /dev/null +++ b/src/api/resources/crm/resources/linkToken/types/EndUserDetailsRequestLanguage.ts @@ -0,0 +1,13 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../../../index"; + +/** + * The following subset of IETF language tags can be used to configure localization. + * + * * `en` - en + * * `de` - de + */ +export type EndUserDetailsRequestLanguage = Merge.crm.LanguageEnum | string; diff --git a/src/api/resources/crm/resources/linkToken/types/index.ts b/src/api/resources/crm/resources/linkToken/types/index.ts new file mode 100644 index 000000000..c90e13c37 --- /dev/null +++ b/src/api/resources/crm/resources/linkToken/types/index.ts @@ -0,0 +1 @@ +export * from "./EndUserDetailsRequestLanguage"; diff --git a/src/api/resources/crm/resources/linkedAccounts/client/Client.ts b/src/api/resources/crm/resources/linkedAccounts/client/Client.ts index 24c3dd508..dad9260e9 100644 --- a/src/api/resources/crm/resources/linkedAccounts/client/Client.ts +++ b/src/api/resources/crm/resources/linkedAccounts/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace LinkedAccounts { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace LinkedAccounts { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class LinkedAccounts { - constructor(protected readonly _options: LinkedAccounts.Options) {} + protected readonly _options: LinkedAccounts.Options; + + constructor(_options: LinkedAccounts.Options) { + this._options = _options; + } /** * List linked accounts for your organization. @@ -135,23 +142,15 @@ export class LinkedAccounts { "crm/v1/linked-accounts", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -173,6 +172,7 @@ export class LinkedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -181,12 +181,14 @@ export class LinkedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/linked-accounts."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/notes/client/Client.ts b/src/api/resources/crm/resources/notes/client/Client.ts index bf609d593..128247fa1 100644 --- a/src/api/resources/crm/resources/notes/client/Client.ts +++ b/src/api/resources/crm/resources/notes/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Notes { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Notes { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Notes { - constructor(protected readonly _options: Notes.Options) {} + protected readonly _options: Notes.Options; + + constructor(_options: Notes.Options) { + this._options = _options; + } /** * Returns a list of `Note` objects. @@ -150,23 +157,15 @@ export class Notes { "crm/v1/notes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -188,6 +187,7 @@ export class Notes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -196,12 +196,14 @@ export class Notes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/notes."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -246,20 +248,14 @@ export class Notes { "crm/v1/notes", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -285,6 +281,7 @@ export class Notes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -293,12 +290,14 @@ export class Notes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /crm/v1/notes."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -354,23 +353,15 @@ export class Notes { `crm/v1/notes/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -392,6 +383,7 @@ export class Notes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -400,12 +392,14 @@ export class Notes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/notes/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -433,22 +427,14 @@ export class Notes { "crm/v1/notes/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -470,6 +456,7 @@ export class Notes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -478,12 +465,14 @@ export class Notes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/notes/meta/post."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -515,6 +504,7 @@ export class Notes { includeRemoteFields, includeShellData, isCommonModelField, + isCustom, pageSize, } = request; const _queryParams: Record = {}; @@ -542,6 +532,10 @@ export class Notes { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -554,23 +548,15 @@ export class Notes { "crm/v1/notes/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -592,6 +578,7 @@ export class Notes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -600,6 +587,7 @@ export class Notes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -608,6 +596,7 @@ export class Notes { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/notes/client/requests/NotesRemoteFieldClassesListRequest.ts b/src/api/resources/crm/resources/notes/client/requests/NotesRemoteFieldClassesListRequest.ts index d025cff85..b17a28240 100644 --- a/src/api/resources/crm/resources/notes/client/requests/NotesRemoteFieldClassesListRequest.ts +++ b/src/api/resources/crm/resources/notes/client/requests/NotesRemoteFieldClassesListRequest.ts @@ -31,6 +31,10 @@ export interface NotesRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/crm/resources/opportunities/client/Client.ts b/src/api/resources/crm/resources/opportunities/client/Client.ts index f08e13ff9..ae3856a5d 100644 --- a/src/api/resources/crm/resources/opportunities/client/Client.ts +++ b/src/api/resources/crm/resources/opportunities/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Opportunities { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Opportunities { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Opportunities { - constructor(protected readonly _options: Opportunities.Options) {} + protected readonly _options: Opportunities.Options; + + constructor(_options: Opportunities.Options) { + this._options = _options; + } /** * Returns a list of `Opportunity` objects. @@ -167,23 +174,15 @@ export class Opportunities { "crm/v1/opportunities", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -205,6 +204,7 @@ export class Opportunities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -213,12 +213,14 @@ export class Opportunities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/opportunities."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -263,20 +265,14 @@ export class Opportunities { "crm/v1/opportunities", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -302,6 +298,7 @@ export class Opportunities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -310,12 +307,14 @@ export class Opportunities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /crm/v1/opportunities."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -380,23 +379,15 @@ export class Opportunities { `crm/v1/opportunities/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -418,6 +409,7 @@ export class Opportunities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -426,12 +418,14 @@ export class Opportunities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/opportunities/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -479,20 +473,14 @@ export class Opportunities { `crm/v1/opportunities/${encodeURIComponent(id)}`, ), method: "PATCH", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -520,6 +508,7 @@ export class Opportunities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -528,12 +517,14 @@ export class Opportunities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling PATCH /crm/v1/opportunities/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -566,22 +557,14 @@ export class Opportunities { `crm/v1/opportunities/meta/patch/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -603,6 +586,7 @@ export class Opportunities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -611,6 +595,7 @@ export class Opportunities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -619,6 +604,7 @@ export class Opportunities { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -648,22 +634,14 @@ export class Opportunities { "crm/v1/opportunities/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -685,6 +663,7 @@ export class Opportunities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -693,6 +672,7 @@ export class Opportunities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -701,6 +681,7 @@ export class Opportunities { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -732,6 +713,7 @@ export class Opportunities { includeRemoteFields, includeShellData, isCommonModelField, + isCustom, pageSize, } = request; const _queryParams: Record = {}; @@ -759,6 +741,10 @@ export class Opportunities { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -771,23 +757,15 @@ export class Opportunities { "crm/v1/opportunities/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -809,6 +787,7 @@ export class Opportunities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -817,6 +796,7 @@ export class Opportunities { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -825,6 +805,7 @@ export class Opportunities { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/opportunities/client/requests/OpportunitiesRemoteFieldClassesListRequest.ts b/src/api/resources/crm/resources/opportunities/client/requests/OpportunitiesRemoteFieldClassesListRequest.ts index 27ae82f3a..179e9c73b 100644 --- a/src/api/resources/crm/resources/opportunities/client/requests/OpportunitiesRemoteFieldClassesListRequest.ts +++ b/src/api/resources/crm/resources/opportunities/client/requests/OpportunitiesRemoteFieldClassesListRequest.ts @@ -31,6 +31,10 @@ export interface OpportunitiesRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/crm/resources/passthrough/client/Client.ts b/src/api/resources/crm/resources/passthrough/client/Client.ts index 26be92912..cfb0edf0a 100644 --- a/src/api/resources/crm/resources/passthrough/client/Client.ts +++ b/src/api/resources/crm/resources/passthrough/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Passthrough { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Passthrough { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Passthrough { - constructor(protected readonly _options: Passthrough.Options) {} + protected readonly _options: Passthrough.Options; + + constructor(_options: Passthrough.Options) { + this._options = _options; + } /** * Pull data from an endpoint not currently supported by Merge. @@ -68,20 +75,14 @@ export class Passthrough { "crm/v1/passthrough", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.crm.DataPassthroughRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -106,6 +107,7 @@ export class Passthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -114,12 +116,14 @@ export class Passthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /crm/v1/passthrough."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/regenerateKey/client/Client.ts b/src/api/resources/crm/resources/regenerateKey/client/Client.ts index ddd8ee53c..cc55076d8 100644 --- a/src/api/resources/crm/resources/regenerateKey/client/Client.ts +++ b/src/api/resources/crm/resources/regenerateKey/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace RegenerateKey { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace RegenerateKey { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class RegenerateKey { - constructor(protected readonly _options: RegenerateKey.Options) {} + protected readonly _options: RegenerateKey.Options; + + constructor(_options: RegenerateKey.Options) { + this._options = _options; + } /** * Exchange remote keys. @@ -67,20 +74,14 @@ export class RegenerateKey { "crm/v1/regenerate-key", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.crm.RemoteKeyForRegenerationRequest.jsonOrThrow(request, { @@ -107,6 +108,7 @@ export class RegenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -115,12 +117,14 @@ export class RegenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /crm/v1/regenerate-key."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/scopes/client/Client.ts b/src/api/resources/crm/resources/scopes/client/Client.ts index d4ef1d0ae..2b90f1d90 100644 --- a/src/api/resources/crm/resources/scopes/client/Client.ts +++ b/src/api/resources/crm/resources/scopes/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Scopes { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Scopes { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Scopes { - constructor(protected readonly _options: Scopes.Options) {} + protected readonly _options: Scopes.Options; + + constructor(_options: Scopes.Options) { + this._options = _options; + } /** * Get the default permissions for Merge Common Models and fields across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). @@ -62,22 +69,14 @@ export class Scopes { "crm/v1/default-scopes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/default-scopes."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -142,22 +144,14 @@ export class Scopes { "crm/v1/linked-account-scopes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -179,6 +173,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -187,12 +182,14 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/linked-account-scopes."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -248,20 +245,14 @@ export class Scopes { "crm/v1/linked-account-scopes", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.crm.LinkedAccountCommonModelScopeDeserializerRequest.jsonOrThrow(request, { @@ -288,6 +279,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -296,12 +288,14 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /crm/v1/linked-account-scopes."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/stages/client/Client.ts b/src/api/resources/crm/resources/stages/client/Client.ts index e6f8b317a..613805f48 100644 --- a/src/api/resources/crm/resources/stages/client/Client.ts +++ b/src/api/resources/crm/resources/stages/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Stages { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Stages { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Stages { - constructor(protected readonly _options: Stages.Options) {} + protected readonly _options: Stages.Options; + + constructor(_options: Stages.Options) { + this._options = _options; + } /** * Returns a list of `Stage` objects. @@ -123,23 +130,15 @@ export class Stages { "crm/v1/stages", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -161,6 +160,7 @@ export class Stages { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -169,12 +169,14 @@ export class Stages { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/stages."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -224,23 +226,15 @@ export class Stages { `crm/v1/stages/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -262,6 +256,7 @@ export class Stages { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -270,12 +265,14 @@ export class Stages { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/stages/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -307,6 +304,7 @@ export class Stages { includeRemoteFields, includeShellData, isCommonModelField, + isCustom, pageSize, } = request; const _queryParams: Record = {}; @@ -334,6 +332,10 @@ export class Stages { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -346,23 +348,15 @@ export class Stages { "crm/v1/stages/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -384,6 +378,7 @@ export class Stages { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -392,6 +387,7 @@ export class Stages { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -400,6 +396,7 @@ export class Stages { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/stages/client/requests/StagesRemoteFieldClassesListRequest.ts b/src/api/resources/crm/resources/stages/client/requests/StagesRemoteFieldClassesListRequest.ts index 5d2e38df5..a01671919 100644 --- a/src/api/resources/crm/resources/stages/client/requests/StagesRemoteFieldClassesListRequest.ts +++ b/src/api/resources/crm/resources/stages/client/requests/StagesRemoteFieldClassesListRequest.ts @@ -31,6 +31,10 @@ export interface StagesRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/crm/resources/syncStatus/client/Client.ts b/src/api/resources/crm/resources/syncStatus/client/Client.ts index 7aa0db8e3..0bb714b66 100644 --- a/src/api/resources/crm/resources/syncStatus/client/Client.ts +++ b/src/api/resources/crm/resources/syncStatus/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace SyncStatus { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,15 +33,19 @@ export declare namespace SyncStatus { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class SyncStatus { - constructor(protected readonly _options: SyncStatus.Options) {} + protected readonly _options: SyncStatus.Options; + + constructor(_options: SyncStatus.Options) { + this._options = _options; + } /** - * Get syncing status. Possible values: `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + * Get sync status for the current sync and the most recently finished sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` represents the most recent time any sync completed. These timestamps may correspond to different sync instances which may result in a sync start time being later than a separate sync completed time. To ensure you are retrieving the latest available data reference the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). * * @param {Merge.crm.SyncStatusListRequest} request * @param {SyncStatus.RequestOptions} requestOptions - Request-specific configuration. @@ -75,23 +82,15 @@ export class SyncStatus { "crm/v1/sync-status", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -113,6 +112,7 @@ export class SyncStatus { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -121,12 +121,14 @@ export class SyncStatus { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/sync-status."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/tasks/client/Client.ts b/src/api/resources/crm/resources/tasks/client/Client.ts index 0b1042c9e..acd52b507 100644 --- a/src/api/resources/crm/resources/tasks/client/Client.ts +++ b/src/api/resources/crm/resources/tasks/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Tasks { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Tasks { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Tasks { - constructor(protected readonly _options: Tasks.Options) {} + protected readonly _options: Tasks.Options; + + constructor(_options: Tasks.Options) { + this._options = _options; + } /** * Returns a list of `Task` objects. @@ -130,23 +137,15 @@ export class Tasks { "crm/v1/tasks", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -168,6 +167,7 @@ export class Tasks { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -176,12 +176,14 @@ export class Tasks { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/tasks."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -226,20 +228,14 @@ export class Tasks { "crm/v1/tasks", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -265,6 +261,7 @@ export class Tasks { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -273,12 +270,14 @@ export class Tasks { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /crm/v1/tasks."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -334,23 +333,15 @@ export class Tasks { `crm/v1/tasks/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -372,6 +363,7 @@ export class Tasks { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -380,12 +372,14 @@ export class Tasks { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/tasks/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -433,20 +427,14 @@ export class Tasks { `crm/v1/tasks/${encodeURIComponent(id)}`, ), method: "PATCH", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -472,6 +460,7 @@ export class Tasks { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -480,12 +469,14 @@ export class Tasks { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling PATCH /crm/v1/tasks/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -518,22 +509,14 @@ export class Tasks { `crm/v1/tasks/meta/patch/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -555,6 +538,7 @@ export class Tasks { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -563,12 +547,14 @@ export class Tasks { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/tasks/meta/patch/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -596,22 +582,14 @@ export class Tasks { "crm/v1/tasks/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -633,6 +611,7 @@ export class Tasks { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -641,12 +620,14 @@ export class Tasks { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/tasks/meta/post."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -678,6 +659,7 @@ export class Tasks { includeRemoteFields, includeShellData, isCommonModelField, + isCustom, pageSize, } = request; const _queryParams: Record = {}; @@ -705,6 +687,10 @@ export class Tasks { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -717,23 +703,15 @@ export class Tasks { "crm/v1/tasks/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -755,6 +733,7 @@ export class Tasks { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -763,6 +742,7 @@ export class Tasks { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -771,6 +751,7 @@ export class Tasks { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/tasks/client/requests/TasksRemoteFieldClassesListRequest.ts b/src/api/resources/crm/resources/tasks/client/requests/TasksRemoteFieldClassesListRequest.ts index 36de3204f..af1633af6 100644 --- a/src/api/resources/crm/resources/tasks/client/requests/TasksRemoteFieldClassesListRequest.ts +++ b/src/api/resources/crm/resources/tasks/client/requests/TasksRemoteFieldClassesListRequest.ts @@ -31,6 +31,10 @@ export interface TasksRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/crm/resources/users/client/Client.ts b/src/api/resources/crm/resources/users/client/Client.ts index cb2c9c16d..e2a899ce4 100644 --- a/src/api/resources/crm/resources/users/client/Client.ts +++ b/src/api/resources/crm/resources/users/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Users { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Users { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Users { - constructor(protected readonly _options: Users.Options) {} + protected readonly _options: Users.Options; + + constructor(_options: Users.Options) { + this._options = _options; + } /** * Returns a list of `User` objects. @@ -128,23 +135,15 @@ export class Users { "crm/v1/users", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -166,6 +165,7 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -174,12 +174,14 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/users."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -229,23 +231,15 @@ export class Users { `crm/v1/users/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -267,6 +261,7 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -275,12 +270,14 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/users/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -318,20 +315,14 @@ export class Users { `crm/v1/users/ignore/${encodeURIComponent(modelId)}`, ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.crm.IgnoreCommonModelRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -347,6 +338,7 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -355,6 +347,7 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -363,6 +356,7 @@ export class Users { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -394,6 +388,7 @@ export class Users { includeRemoteFields, includeShellData, isCommonModelField, + isCustom, pageSize, } = request; const _queryParams: Record = {}; @@ -421,6 +416,10 @@ export class Users { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -433,23 +432,15 @@ export class Users { "crm/v1/users/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -471,6 +462,7 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -479,6 +471,7 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -487,6 +480,7 @@ export class Users { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/resources/users/client/requests/UsersRemoteFieldClassesListRequest.ts b/src/api/resources/crm/resources/users/client/requests/UsersRemoteFieldClassesListRequest.ts index cbe777598..3c0dfc6a2 100644 --- a/src/api/resources/crm/resources/users/client/requests/UsersRemoteFieldClassesListRequest.ts +++ b/src/api/resources/crm/resources/users/client/requests/UsersRemoteFieldClassesListRequest.ts @@ -31,6 +31,10 @@ export interface UsersRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/crm/resources/webhookReceivers/client/Client.ts b/src/api/resources/crm/resources/webhookReceivers/client/Client.ts index 35278a13a..654c5577e 100644 --- a/src/api/resources/crm/resources/webhookReceivers/client/Client.ts +++ b/src/api/resources/crm/resources/webhookReceivers/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace WebhookReceivers { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace WebhookReceivers { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class WebhookReceivers { - constructor(protected readonly _options: WebhookReceivers.Options) {} + protected readonly _options: WebhookReceivers.Options; + + constructor(_options: WebhookReceivers.Options) { + this._options = _options; + } /** * Returns a list of `WebhookReceiver` objects. @@ -62,22 +69,14 @@ export class WebhookReceivers { "crm/v1/webhook-receivers", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /crm/v1/webhook-receivers."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -148,20 +150,14 @@ export class WebhookReceivers { "crm/v1/webhook-receivers", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.crm.WebhookReceiverRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -186,6 +182,7 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -194,12 +191,14 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /crm/v1/webhook-receivers."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/crm/types/AccountDetails.ts b/src/api/resources/crm/types/AccountDetails.ts index 93f70c845..b8e56f3f9 100644 --- a/src/api/resources/crm/types/AccountDetails.ts +++ b/src/api/resources/crm/types/AccountDetails.ts @@ -8,7 +8,7 @@ export interface AccountDetails { id?: string; integration?: string; integrationSlug?: string; - category?: Merge.crm.CategoryEnum; + category?: Merge.crm.AccountDetailsCategory; endUserOriginId?: string; endUserOrganizationName?: string; endUserEmailAddress?: string; diff --git a/src/api/resources/crm/types/AccountDetailsAndActions.ts b/src/api/resources/crm/types/AccountDetailsAndActions.ts index e9e332f81..c97a7369c 100644 --- a/src/api/resources/crm/types/AccountDetailsAndActions.ts +++ b/src/api/resources/crm/types/AccountDetailsAndActions.ts @@ -14,8 +14,8 @@ import * as Merge from "../../../index"; */ export interface AccountDetailsAndActions { id: string; - category?: Merge.crm.CategoryEnum; - status: Merge.crm.AccountDetailsAndActionsStatusEnum; + category?: Merge.crm.AccountDetailsAndActionsCategory; + status: Merge.crm.AccountDetailsAndActionsStatus; statusDetail?: string; endUserOriginId?: string; endUserOrganizationName: string; diff --git a/src/api/resources/crm/types/AccountDetailsAndActionsCategory.ts b/src/api/resources/crm/types/AccountDetailsAndActionsCategory.ts new file mode 100644 index 000000000..a10fe606e --- /dev/null +++ b/src/api/resources/crm/types/AccountDetailsAndActionsCategory.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type AccountDetailsAndActionsCategory = Merge.crm.CategoryEnum | string; diff --git a/src/api/resources/crm/types/AccountDetailsAndActionsStatus.ts b/src/api/resources/crm/types/AccountDetailsAndActionsStatus.ts new file mode 100644 index 000000000..ffcbebe29 --- /dev/null +++ b/src/api/resources/crm/types/AccountDetailsAndActionsStatus.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type AccountDetailsAndActionsStatus = Merge.crm.AccountDetailsAndActionsStatusEnum | string; diff --git a/src/api/resources/crm/types/AccountDetailsCategory.ts b/src/api/resources/crm/types/AccountDetailsCategory.ts new file mode 100644 index 000000000..d3bdc0388 --- /dev/null +++ b/src/api/resources/crm/types/AccountDetailsCategory.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type AccountDetailsCategory = Merge.crm.CategoryEnum | string; diff --git a/src/api/resources/crm/types/AuditLogEvent.ts b/src/api/resources/crm/types/AuditLogEvent.ts index 3c2f345c3..cb6c2b275 100644 --- a/src/api/resources/crm/types/AuditLogEvent.ts +++ b/src/api/resources/crm/types/AuditLogEvent.ts @@ -30,6 +30,7 @@ export interface AuditLogEvent { * * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY * * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY * * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE * * `INVITED_USER` - INVITED_USER * * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED * * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED diff --git a/src/api/resources/crm/types/AuditLogEventEventType.ts b/src/api/resources/crm/types/AuditLogEventEventType.ts index d00ca2fc4..77a9d6723 100644 --- a/src/api/resources/crm/types/AuditLogEventEventType.ts +++ b/src/api/resources/crm/types/AuditLogEventEventType.ts @@ -12,6 +12,7 @@ import * as Merge from "../../../index"; * * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY * * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY * * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE * * `INVITED_USER` - INVITED_USER * * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED * * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED diff --git a/src/api/resources/crm/types/CustomObjectRequest.ts b/src/api/resources/crm/types/CustomObjectRequest.ts index f097cb1aa..f6ff8b7fe 100644 --- a/src/api/resources/crm/types/CustomObjectRequest.ts +++ b/src/api/resources/crm/types/CustomObjectRequest.ts @@ -4,4 +4,6 @@ export interface CustomObjectRequest { fields: Record; + integrationParams?: Record; + linkedAccountParams?: Record; } diff --git a/src/api/resources/crm/types/EventTypeEnum.ts b/src/api/resources/crm/types/EventTypeEnum.ts index 316d8531b..261c00e43 100644 --- a/src/api/resources/crm/types/EventTypeEnum.ts +++ b/src/api/resources/crm/types/EventTypeEnum.ts @@ -8,6 +8,7 @@ * * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY * * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY * * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE * * `INVITED_USER` - INVITED_USER * * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED * * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED @@ -52,6 +53,7 @@ export type EventTypeEnum = | "CREATED_TEST_API_KEY" | "DELETED_TEST_API_KEY" | "REGENERATED_PRODUCTION_API_KEY" + | "REGENERATED_WEBHOOK_SIGNATURE" | "INVITED_USER" | "TWO_FACTOR_AUTH_ENABLED" | "TWO_FACTOR_AUTH_DISABLED" @@ -95,6 +97,7 @@ export const EventTypeEnum = { CreatedTestApiKey: "CREATED_TEST_API_KEY", DeletedTestApiKey: "DELETED_TEST_API_KEY", RegeneratedProductionApiKey: "REGENERATED_PRODUCTION_API_KEY", + RegeneratedWebhookSignature: "REGENERATED_WEBHOOK_SIGNATURE", InvitedUser: "INVITED_USER", TwoFactorAuthEnabled: "TWO_FACTOR_AUTH_ENABLED", TwoFactorAuthDisabled: "TWO_FACTOR_AUTH_DISABLED", diff --git a/src/api/resources/crm/types/IgnoreCommonModelRequest.ts b/src/api/resources/crm/types/IgnoreCommonModelRequest.ts index 463fc306f..c16a8679f 100644 --- a/src/api/resources/crm/types/IgnoreCommonModelRequest.ts +++ b/src/api/resources/crm/types/IgnoreCommonModelRequest.ts @@ -5,6 +5,6 @@ import * as Merge from "../../../index"; export interface IgnoreCommonModelRequest { - reason: Merge.crm.ReasonEnum; + reason: Merge.crm.IgnoreCommonModelRequestReason; message?: string; } diff --git a/src/api/resources/crm/types/IgnoreCommonModelRequestReason.ts b/src/api/resources/crm/types/IgnoreCommonModelRequestReason.ts new file mode 100644 index 000000000..7d805cc0f --- /dev/null +++ b/src/api/resources/crm/types/IgnoreCommonModelRequestReason.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type IgnoreCommonModelRequestReason = Merge.crm.ReasonEnum | string; diff --git a/src/api/resources/crm/types/SyncStatus.ts b/src/api/resources/crm/types/SyncStatus.ts index faa021b51..08e4319f5 100644 --- a/src/api/resources/crm/types/SyncStatus.ts +++ b/src/api/resources/crm/types/SyncStatus.ts @@ -19,7 +19,7 @@ export interface SyncStatus { nextSyncStart?: Date; lastSyncResult?: Merge.crm.SyncStatusLastSyncResult; lastSyncFinished?: Date; - status: Merge.crm.StatusFd5Enum; + status: Merge.crm.SyncStatusStatus; isInitialSync: boolean; selectiveSyncConfigurationsUsage?: Merge.crm.SelectiveSyncConfigurationsUsageEnum; } diff --git a/src/api/resources/crm/types/SyncStatusStatus.ts b/src/api/resources/crm/types/SyncStatusStatus.ts new file mode 100644 index 000000000..4d82ede95 --- /dev/null +++ b/src/api/resources/crm/types/SyncStatusStatus.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type SyncStatusStatus = Merge.crm.StatusFd5Enum | string; diff --git a/src/api/resources/crm/types/index.ts b/src/api/resources/crm/types/index.ts index cb702ba4d..7bd5d4b47 100644 --- a/src/api/resources/crm/types/index.ts +++ b/src/api/resources/crm/types/index.ts @@ -1,6 +1,9 @@ export * from "./AccountOwner"; export * from "./Account"; +export * from "./AccountDetailsCategory"; export * from "./AccountDetails"; +export * from "./AccountDetailsAndActionsCategory"; +export * from "./AccountDetailsAndActionsStatus"; export * from "./AccountDetailsAndActions"; export * from "./AccountDetailsAndActionsIntegration"; export * from "./AccountDetailsAndActionsStatusEnum"; @@ -84,6 +87,7 @@ export * from "./FieldMappingInstanceResponse"; export * from "./FieldPermissionDeserializer"; export * from "./FieldPermissionDeserializerRequest"; export * from "./FieldTypeEnum"; +export * from "./IgnoreCommonModelRequestReason"; export * from "./IgnoreCommonModelRequest"; export * from "./IndividualCommonModelScopeDeserializer"; export * from "./IndividualCommonModelScopeDeserializerRequest"; @@ -196,6 +200,7 @@ export * from "./SelectiveSyncConfigurationsUsageEnum"; export * from "./Stage"; export * from "./StatusFd5Enum"; export * from "./SyncStatusLastSyncResult"; +export * from "./SyncStatusStatus"; export * from "./SyncStatus"; export * from "./TaskOwner"; export * from "./TaskAccount"; diff --git a/src/api/resources/filestorage/client/Client.ts b/src/api/resources/filestorage/client/Client.ts index 2b3196e96..4052f7b5c 100644 --- a/src/api/resources/filestorage/client/Client.ts +++ b/src/api/resources/filestorage/client/Client.ts @@ -35,11 +35,14 @@ export declare namespace Filestorage { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } } export class Filestorage { + protected readonly _options: Filestorage.Options; protected _accountDetails: AccountDetails | undefined; protected _accountToken: AccountToken | undefined; protected _asyncPassthrough: AsyncPassthrough | undefined; @@ -63,7 +66,9 @@ export class Filestorage { protected _users: Users | undefined; protected _webhookReceivers: WebhookReceivers | undefined; - constructor(protected readonly _options: Filestorage.Options) {} + constructor(_options: Filestorage.Options) { + this._options = _options; + } public get accountDetails(): AccountDetails { return (this._accountDetails ??= new AccountDetails(this._options)); diff --git a/src/api/resources/filestorage/resources/accountDetails/client/Client.ts b/src/api/resources/filestorage/resources/accountDetails/client/Client.ts index 4b407e292..339d52a1c 100644 --- a/src/api/resources/filestorage/resources/accountDetails/client/Client.ts +++ b/src/api/resources/filestorage/resources/accountDetails/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AccountDetails { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AccountDetails { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AccountDetails { - constructor(protected readonly _options: AccountDetails.Options) {} + protected readonly _options: AccountDetails.Options; + + constructor(_options: AccountDetails.Options) { + this._options = _options; + } /** * Get details for a linked account. @@ -62,22 +69,14 @@ export class AccountDetails { "filestorage/v1/account-details", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class AccountDetails { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,6 +107,7 @@ export class AccountDetails { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -115,6 +116,7 @@ export class AccountDetails { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/accountToken/client/Client.ts b/src/api/resources/filestorage/resources/accountToken/client/Client.ts index 18428206d..5fa2f3b18 100644 --- a/src/api/resources/filestorage/resources/accountToken/client/Client.ts +++ b/src/api/resources/filestorage/resources/accountToken/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AccountToken { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AccountToken { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AccountToken { - constructor(protected readonly _options: AccountToken.Options) {} + protected readonly _options: AccountToken.Options; + + constructor(_options: AccountToken.Options) { + this._options = _options; + } /** * Returns the account token for the end user with the provided public token. @@ -65,22 +72,14 @@ export class AccountToken { `filestorage/v1/account-token/${encodeURIComponent(publicToken)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -102,6 +101,7 @@ export class AccountToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -110,6 +110,7 @@ export class AccountToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -118,6 +119,7 @@ export class AccountToken { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/asyncPassthrough/client/Client.ts b/src/api/resources/filestorage/resources/asyncPassthrough/client/Client.ts index 022e4e1b4..d8d271d99 100644 --- a/src/api/resources/filestorage/resources/asyncPassthrough/client/Client.ts +++ b/src/api/resources/filestorage/resources/asyncPassthrough/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AsyncPassthrough { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AsyncPassthrough { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AsyncPassthrough { - constructor(protected readonly _options: AsyncPassthrough.Options) {} + protected readonly _options: AsyncPassthrough.Options; + + constructor(_options: AsyncPassthrough.Options) { + this._options = _options; + } /** * Asynchronously pull data from an endpoint not currently supported by Merge. @@ -68,20 +75,14 @@ export class AsyncPassthrough { "filestorage/v1/async-passthrough", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.filestorage.DataPassthroughRequest.jsonOrThrow(request, { @@ -108,6 +109,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -116,6 +118,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -124,6 +127,7 @@ export class AsyncPassthrough { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -156,22 +160,14 @@ export class AsyncPassthrough { `filestorage/v1/async-passthrough/${encodeURIComponent(asyncPassthroughReceiptId)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -193,6 +189,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -201,6 +198,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -209,6 +207,7 @@ export class AsyncPassthrough { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/auditTrail/client/Client.ts b/src/api/resources/filestorage/resources/auditTrail/client/Client.ts index 20034265b..21d08e9f7 100644 --- a/src/api/resources/filestorage/resources/auditTrail/client/Client.ts +++ b/src/api/resources/filestorage/resources/auditTrail/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AuditTrail { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AuditTrail { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AuditTrail { - constructor(protected readonly _options: AuditTrail.Options) {} + protected readonly _options: AuditTrail.Options; + + constructor(_options: AuditTrail.Options) { + this._options = _options; + } /** * Gets a list of audit trail events. @@ -91,23 +98,15 @@ export class AuditTrail { "filestorage/v1/audit-trail", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -129,6 +128,7 @@ export class AuditTrail { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -137,12 +137,14 @@ export class AuditTrail { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /filestorage/v1/audit-trail."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/auditTrail/client/requests/AuditTrailListRequest.ts b/src/api/resources/filestorage/resources/auditTrail/client/requests/AuditTrailListRequest.ts index b3187c0db..99ee8b1ad 100644 --- a/src/api/resources/filestorage/resources/auditTrail/client/requests/AuditTrailListRequest.ts +++ b/src/api/resources/filestorage/resources/auditTrail/client/requests/AuditTrailListRequest.ts @@ -16,7 +16,7 @@ export interface AuditTrailListRequest { */ endDate?: string; /** - * If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` + * If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` */ eventType?: string; /** diff --git a/src/api/resources/filestorage/resources/availableActions/client/Client.ts b/src/api/resources/filestorage/resources/availableActions/client/Client.ts index 661cd8e38..ac1d48840 100644 --- a/src/api/resources/filestorage/resources/availableActions/client/Client.ts +++ b/src/api/resources/filestorage/resources/availableActions/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AvailableActions { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AvailableActions { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AvailableActions { - constructor(protected readonly _options: AvailableActions.Options) {} + protected readonly _options: AvailableActions.Options; + + constructor(_options: AvailableActions.Options) { + this._options = _options; + } /** * Returns a list of models and actions available for an account. @@ -62,22 +69,14 @@ export class AvailableActions { "filestorage/v1/available-actions", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class AvailableActions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,6 +107,7 @@ export class AvailableActions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -115,6 +116,7 @@ export class AvailableActions { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/deleteAccount/client/Client.ts b/src/api/resources/filestorage/resources/deleteAccount/client/Client.ts index 9920a233f..bb64be649 100644 --- a/src/api/resources/filestorage/resources/deleteAccount/client/Client.ts +++ b/src/api/resources/filestorage/resources/deleteAccount/client/Client.ts @@ -4,6 +4,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -15,6 +16,8 @@ export declare namespace DeleteAccount { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -28,12 +31,16 @@ export declare namespace DeleteAccount { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class DeleteAccount { - constructor(protected readonly _options: DeleteAccount.Options) {} + protected readonly _options: DeleteAccount.Options; + + constructor(_options: DeleteAccount.Options) { + this._options = _options; + } /** * Delete a linked account. @@ -56,22 +63,14 @@ export class DeleteAccount { "filestorage/v1/delete-account", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -84,6 +83,7 @@ export class DeleteAccount { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -92,6 +92,7 @@ export class DeleteAccount { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -100,6 +101,7 @@ export class DeleteAccount { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/drives/client/Client.ts b/src/api/resources/filestorage/resources/drives/client/Client.ts index fe59e4287..aecbf2db6 100644 --- a/src/api/resources/filestorage/resources/drives/client/Client.ts +++ b/src/api/resources/filestorage/resources/drives/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Drives { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Drives { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Drives { - constructor(protected readonly _options: Drives.Options) {} + protected readonly _options: Drives.Options; + + constructor(_options: Drives.Options) { + this._options = _options; + } /** * Returns a list of `Drive` objects. @@ -123,23 +130,15 @@ export class Drives { "filestorage/v1/drives", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -161,6 +160,7 @@ export class Drives { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -169,12 +169,14 @@ export class Drives { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /filestorage/v1/drives."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -220,23 +222,15 @@ export class Drives { `filestorage/v1/drives/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -258,6 +252,7 @@ export class Drives { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -266,12 +261,14 @@ export class Drives { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /filestorage/v1/drives/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/fieldMapping/client/Client.ts b/src/api/resources/filestorage/resources/fieldMapping/client/Client.ts index b7d32dba0..785bbde1c 100644 --- a/src/api/resources/filestorage/resources/fieldMapping/client/Client.ts +++ b/src/api/resources/filestorage/resources/fieldMapping/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace FieldMapping { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace FieldMapping { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class FieldMapping { - constructor(protected readonly _options: FieldMapping.Options) {} + protected readonly _options: FieldMapping.Options; + + constructor(_options: FieldMapping.Options) { + this._options = _options; + } /** * Get all Field Mappings for this Linked Account. Field Mappings are mappings between third-party Remote Fields and user defined Merge fields. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). @@ -71,23 +78,15 @@ export class FieldMapping { "filestorage/v1/field-mappings", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -109,6 +108,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -117,12 +117,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /filestorage/v1/field-mappings."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -168,20 +170,14 @@ export class FieldMapping { "filestorage/v1/field-mappings", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -209,6 +205,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -217,6 +214,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -225,6 +223,7 @@ export class FieldMapping { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -257,22 +256,14 @@ export class FieldMapping { `filestorage/v1/field-mappings/${encodeURIComponent(fieldMappingId)}`, ), method: "DELETE", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -294,6 +285,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -302,6 +294,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -310,6 +303,7 @@ export class FieldMapping { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -347,20 +341,14 @@ export class FieldMapping { `filestorage/v1/field-mappings/${encodeURIComponent(fieldMappingId)}`, ), method: "PATCH", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.filestorage.PatchedEditFieldMappingRequest.jsonOrThrow(request, { @@ -387,6 +375,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -395,6 +384,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -403,6 +393,7 @@ export class FieldMapping { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -445,23 +436,15 @@ export class FieldMapping { "filestorage/v1/remote-fields", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -483,6 +466,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -491,12 +475,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /filestorage/v1/remote-fields."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -526,22 +512,14 @@ export class FieldMapping { "filestorage/v1/target-fields", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -563,6 +541,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -571,12 +550,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /filestorage/v1/target-fields."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/files/client/Client.ts b/src/api/resources/filestorage/resources/files/client/Client.ts index ef615fc87..dce5f278e 100644 --- a/src/api/resources/filestorage/resources/files/client/Client.ts +++ b/src/api/resources/filestorage/resources/files/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; import * as stream from "stream"; @@ -18,6 +19,8 @@ export declare namespace Files { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -31,12 +34,16 @@ export declare namespace Files { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Files { - constructor(protected readonly _options: Files.Options) {} + protected readonly _options: Files.Options; + + constructor(_options: Files.Options) { + this._options = _options; + } /** * Returns a list of `File` objects. @@ -72,6 +79,7 @@ export class Files { modifiedAfter, modifiedBefore, name, + orderBy, pageSize, remoteId, } = request; @@ -130,6 +138,12 @@ export class Files { _queryParams["name"] = name; } + if (orderBy != null) { + _queryParams["order_by"] = serializers.filestorage.FilesListRequestOrderBy.jsonOrThrow(orderBy, { + unrecognizedObjectKeys: "strip", + }); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -146,23 +160,15 @@ export class Files { "filestorage/v1/files", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -184,6 +190,7 @@ export class Files { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -192,12 +199,14 @@ export class Files { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /filestorage/v1/files."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -242,20 +251,14 @@ export class Files { "filestorage/v1/files", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -283,6 +286,7 @@ export class Files { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -291,12 +295,14 @@ export class Files { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /filestorage/v1/files."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -348,23 +354,15 @@ export class Files { `filestorage/v1/files/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -386,6 +384,7 @@ export class Files { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -394,12 +393,14 @@ export class Files { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /filestorage/v1/files/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -438,23 +439,15 @@ export class Files { `filestorage/v1/files/${encodeURIComponent(id)}/download`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", responseType: "streaming", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, @@ -468,6 +461,7 @@ export class Files { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -476,6 +470,7 @@ export class Files { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -484,6 +479,7 @@ export class Files { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -525,23 +521,15 @@ export class Files { `filestorage/v1/files/${encodeURIComponent(id)}/download/request-meta`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -563,6 +551,7 @@ export class Files { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -571,6 +560,7 @@ export class Files { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -579,6 +569,7 @@ export class Files { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -603,8 +594,26 @@ export class Files { request: Merge.filestorage.FilesDownloadRequestMetaListRequest = {}, requestOptions?: Files.RequestOptions, ): Promise> { - const { cursor, includeDeletedData, mimeType, pageSize } = request; + const { + createdAfter, + createdBefore, + cursor, + includeDeletedData, + mimeTypes, + modifiedAfter, + modifiedBefore, + orderBy, + pageSize, + } = request; const _queryParams: Record = {}; + if (createdAfter != null) { + _queryParams["created_after"] = createdAfter; + } + + if (createdBefore != null) { + _queryParams["created_before"] = createdBefore; + } + if (cursor != null) { _queryParams["cursor"] = cursor; } @@ -613,8 +622,23 @@ export class Files { _queryParams["include_deleted_data"] = includeDeletedData.toString(); } - if (mimeType != null) { - _queryParams["mime_type"] = mimeType; + if (mimeTypes != null) { + _queryParams["mime_types"] = mimeTypes; + } + + if (modifiedAfter != null) { + _queryParams["modified_after"] = modifiedAfter; + } + + if (modifiedBefore != null) { + _queryParams["modified_before"] = modifiedBefore; + } + + if (orderBy != null) { + _queryParams["order_by"] = serializers.filestorage.FilesDownloadRequestMetaListRequestOrderBy.jsonOrThrow( + orderBy, + { unrecognizedObjectKeys: "strip" }, + ); } if (pageSize != null) { @@ -629,23 +653,15 @@ export class Files { "filestorage/v1/files/download/request-meta", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -667,6 +683,7 @@ export class Files { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -675,6 +692,7 @@ export class Files { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -683,6 +701,7 @@ export class Files { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -712,22 +731,14 @@ export class Files { "filestorage/v1/files/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -749,6 +760,7 @@ export class Files { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -757,6 +769,7 @@ export class Files { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -765,6 +778,7 @@ export class Files { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/files/client/requests/FilesDownloadRequestMetaListRequest.ts b/src/api/resources/filestorage/resources/files/client/requests/FilesDownloadRequestMetaListRequest.ts index 3d3c0401b..ef5dc5956 100644 --- a/src/api/resources/filestorage/resources/files/client/requests/FilesDownloadRequestMetaListRequest.ts +++ b/src/api/resources/filestorage/resources/files/client/requests/FilesDownloadRequestMetaListRequest.ts @@ -2,11 +2,21 @@ * This file was auto-generated by Fern from our API Definition. */ +import * as Merge from "../../../../../../index"; + /** * @example * {} */ export interface FilesDownloadRequestMetaListRequest { + /** + * If provided, will only return objects created after this datetime. + */ + createdAfter?: string; + /** + * If provided, will only return objects created before this datetime. + */ + createdBefore?: string; /** * The pagination cursor value. */ @@ -16,9 +26,21 @@ export interface FilesDownloadRequestMetaListRequest { */ includeDeletedData?: boolean; /** - * If provided, specifies the export format of the files to be downloaded. For information on supported export formats, please refer to our export format help center article. + * A comma-separated list of preferred MIME types in order of priority. If supported by the third-party provider, the file(s) will be returned in the first supported MIME type from the list. The default MIME type is PDF. To see supported MIME types by file type, refer to our export format help center article. + */ + mimeTypes?: string; + /** + * If provided, will only return objects modified after this datetime. + */ + modifiedAfter?: string; + /** + * If provided, will only return objects modified before this datetime. + */ + modifiedBefore?: string; + /** + * Overrides the default ordering for this endpoint. Possible values include: created_at, -created_at, modified_at, -modified_at. */ - mimeType?: string; + orderBy?: Merge.filestorage.FilesDownloadRequestMetaListRequestOrderBy; /** * Number of results to return per page. */ diff --git a/src/api/resources/filestorage/resources/files/client/requests/FilesListRequest.ts b/src/api/resources/filestorage/resources/files/client/requests/FilesListRequest.ts index 240d2b2f2..f972fbf38 100644 --- a/src/api/resources/filestorage/resources/files/client/requests/FilesListRequest.ts +++ b/src/api/resources/filestorage/resources/files/client/requests/FilesListRequest.ts @@ -61,6 +61,10 @@ export interface FilesListRequest { * If provided, will only return files with this name. This performs an exact match. */ name?: string; + /** + * Overrides the default ordering for this endpoint. Possible values include: created_at, -created_at, modified_at, -modified_at. + */ + orderBy?: Merge.filestorage.FilesListRequestOrderBy; /** * Number of results to return per page. */ diff --git a/src/api/resources/filestorage/resources/files/types/FilesDownloadRequestMetaListRequestOrderBy.ts b/src/api/resources/filestorage/resources/files/types/FilesDownloadRequestMetaListRequestOrderBy.ts new file mode 100644 index 000000000..1fbb9789a --- /dev/null +++ b/src/api/resources/filestorage/resources/files/types/FilesDownloadRequestMetaListRequestOrderBy.ts @@ -0,0 +1,11 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +export type FilesDownloadRequestMetaListRequestOrderBy = "-created_at" | "-modified_at" | "created_at" | "modified_at"; +export const FilesDownloadRequestMetaListRequestOrderBy = { + CreatedAtDescending: "-created_at", + ModifiedAtDescending: "-modified_at", + CreatedAtAscending: "created_at", + ModifiedAtAscending: "modified_at", +} as const; diff --git a/src/api/resources/filestorage/resources/files/types/FilesListRequestOrderBy.ts b/src/api/resources/filestorage/resources/files/types/FilesListRequestOrderBy.ts new file mode 100644 index 000000000..0e12ed8dc --- /dev/null +++ b/src/api/resources/filestorage/resources/files/types/FilesListRequestOrderBy.ts @@ -0,0 +1,11 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +export type FilesListRequestOrderBy = "-created_at" | "-modified_at" | "created_at" | "modified_at"; +export const FilesListRequestOrderBy = { + CreatedAtDescending: "-created_at", + ModifiedAtDescending: "-modified_at", + CreatedAtAscending: "created_at", + ModifiedAtAscending: "modified_at", +} as const; diff --git a/src/api/resources/filestorage/resources/files/types/index.ts b/src/api/resources/filestorage/resources/files/types/index.ts index 33359ae56..0234e1536 100644 --- a/src/api/resources/filestorage/resources/files/types/index.ts +++ b/src/api/resources/filestorage/resources/files/types/index.ts @@ -1,2 +1,4 @@ export * from "./FilesListRequestExpand"; +export * from "./FilesListRequestOrderBy"; export * from "./FilesRetrieveRequestExpand"; +export * from "./FilesDownloadRequestMetaListRequestOrderBy"; diff --git a/src/api/resources/filestorage/resources/folders/client/Client.ts b/src/api/resources/filestorage/resources/folders/client/Client.ts index 288593c1c..24b2e9ef7 100644 --- a/src/api/resources/filestorage/resources/folders/client/Client.ts +++ b/src/api/resources/filestorage/resources/folders/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Folders { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Folders { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Folders { - constructor(protected readonly _options: Folders.Options) {} + protected readonly _options: Folders.Options; + + constructor(_options: Folders.Options) { + this._options = _options; + } /** * Returns a list of `Folder` objects. @@ -140,23 +147,15 @@ export class Folders { "filestorage/v1/folders", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -178,6 +177,7 @@ export class Folders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -186,12 +186,14 @@ export class Folders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /filestorage/v1/folders."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -236,20 +238,14 @@ export class Folders { "filestorage/v1/folders", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -277,6 +273,7 @@ export class Folders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -285,12 +282,14 @@ export class Folders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /filestorage/v1/folders."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -342,23 +341,15 @@ export class Folders { `filestorage/v1/folders/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -380,6 +371,7 @@ export class Folders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -388,12 +380,14 @@ export class Folders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /filestorage/v1/folders/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -423,22 +417,14 @@ export class Folders { "filestorage/v1/folders/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -460,6 +446,7 @@ export class Folders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -468,6 +455,7 @@ export class Folders { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -476,6 +464,7 @@ export class Folders { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/forceResync/client/Client.ts b/src/api/resources/filestorage/resources/forceResync/client/Client.ts index b571ee3bf..ce4fefde0 100644 --- a/src/api/resources/filestorage/resources/forceResync/client/Client.ts +++ b/src/api/resources/filestorage/resources/forceResync/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace ForceResync { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace ForceResync { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class ForceResync { - constructor(protected readonly _options: ForceResync.Options) {} + protected readonly _options: ForceResync.Options; + + constructor(_options: ForceResync.Options) { + this._options = _options; + } /** * Force re-sync of all models. This endpoint is available for monthly, quarterly, and highest sync frequency customers on the Professional or Enterprise plans. Doing so will consume a sync credit for the relevant linked account. Force re-syncs can also be triggered manually in the Merge Dashboard and is available for all customers. @@ -62,22 +69,14 @@ export class ForceResync { "filestorage/v1/sync-status/resync", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class ForceResync { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,6 +107,7 @@ export class ForceResync { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -115,6 +116,7 @@ export class ForceResync { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/generateKey/client/Client.ts b/src/api/resources/filestorage/resources/generateKey/client/Client.ts index 33e3536fa..327190515 100644 --- a/src/api/resources/filestorage/resources/generateKey/client/Client.ts +++ b/src/api/resources/filestorage/resources/generateKey/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace GenerateKey { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace GenerateKey { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class GenerateKey { - constructor(protected readonly _options: GenerateKey.Options) {} + protected readonly _options: GenerateKey.Options; + + constructor(_options: GenerateKey.Options) { + this._options = _options; + } /** * Create a remote key. @@ -67,20 +74,14 @@ export class GenerateKey { "filestorage/v1/generate-key", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.filestorage.GenerateRemoteKeyRequest.jsonOrThrow(request, { @@ -107,6 +108,7 @@ export class GenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -115,12 +117,14 @@ export class GenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /filestorage/v1/generate-key."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/groups/client/Client.ts b/src/api/resources/filestorage/resources/groups/client/Client.ts index 213d886f0..0dd0e7c13 100644 --- a/src/api/resources/filestorage/resources/groups/client/Client.ts +++ b/src/api/resources/filestorage/resources/groups/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Groups { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Groups { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Groups { - constructor(protected readonly _options: Groups.Options) {} + protected readonly _options: Groups.Options; + + constructor(_options: Groups.Options) { + this._options = _options; + } /** * Returns a list of `Group` objects. @@ -123,23 +130,15 @@ export class Groups { "filestorage/v1/groups", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -161,6 +160,7 @@ export class Groups { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -169,12 +169,14 @@ export class Groups { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /filestorage/v1/groups."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -224,23 +226,15 @@ export class Groups { `filestorage/v1/groups/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -262,6 +256,7 @@ export class Groups { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -270,12 +265,14 @@ export class Groups { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /filestorage/v1/groups/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/issues/client/Client.ts b/src/api/resources/filestorage/resources/issues/client/Client.ts index 312dccabc..ebb47ae3c 100644 --- a/src/api/resources/filestorage/resources/issues/client/Client.ts +++ b/src/api/resources/filestorage/resources/issues/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Issues { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Issues { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Issues { - constructor(protected readonly _options: Issues.Options) {} + protected readonly _options: Issues.Options; + + constructor(_options: Issues.Options) { + this._options = _options; + } /** * Gets all issues for Organization. @@ -140,23 +147,15 @@ export class Issues { "filestorage/v1/issues", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -178,6 +177,7 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -186,12 +186,14 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /filestorage/v1/issues."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -224,22 +226,14 @@ export class Issues { `filestorage/v1/issues/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -261,6 +255,7 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -269,12 +264,14 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /filestorage/v1/issues/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/linkToken/client/Client.ts b/src/api/resources/filestorage/resources/linkToken/client/Client.ts index a69d6ec83..ecb0ad71a 100644 --- a/src/api/resources/filestorage/resources/linkToken/client/Client.ts +++ b/src/api/resources/filestorage/resources/linkToken/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace LinkToken { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace LinkToken { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class LinkToken { - constructor(protected readonly _options: LinkToken.Options) {} + protected readonly _options: LinkToken.Options; + + constructor(_options: LinkToken.Options) { + this._options = _options; + } /** * Creates a link token to be used when linking a new end user. @@ -70,20 +77,14 @@ export class LinkToken { "filestorage/v1/link-token", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.filestorage.EndUserDetailsRequest.jsonOrThrow(request, { @@ -110,6 +111,7 @@ export class LinkToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -118,12 +120,14 @@ export class LinkToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /filestorage/v1/link-token."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/linkedAccounts/client/Client.ts b/src/api/resources/filestorage/resources/linkedAccounts/client/Client.ts index 5df04da9a..0f928dd4f 100644 --- a/src/api/resources/filestorage/resources/linkedAccounts/client/Client.ts +++ b/src/api/resources/filestorage/resources/linkedAccounts/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace LinkedAccounts { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace LinkedAccounts { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class LinkedAccounts { - constructor(protected readonly _options: LinkedAccounts.Options) {} + protected readonly _options: LinkedAccounts.Options; + + constructor(_options: LinkedAccounts.Options) { + this._options = _options; + } /** * List linked accounts for your organization. @@ -135,23 +142,15 @@ export class LinkedAccounts { "filestorage/v1/linked-accounts", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -173,6 +172,7 @@ export class LinkedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -181,6 +181,7 @@ export class LinkedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -189,6 +190,7 @@ export class LinkedAccounts { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/passthrough/client/Client.ts b/src/api/resources/filestorage/resources/passthrough/client/Client.ts index 25a28fb77..dd5e889a1 100644 --- a/src/api/resources/filestorage/resources/passthrough/client/Client.ts +++ b/src/api/resources/filestorage/resources/passthrough/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Passthrough { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Passthrough { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Passthrough { - constructor(protected readonly _options: Passthrough.Options) {} + protected readonly _options: Passthrough.Options; + + constructor(_options: Passthrough.Options) { + this._options = _options; + } /** * Pull data from an endpoint not currently supported by Merge. @@ -68,20 +75,14 @@ export class Passthrough { "filestorage/v1/passthrough", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.filestorage.DataPassthroughRequest.jsonOrThrow(request, { @@ -108,6 +109,7 @@ export class Passthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -116,12 +118,14 @@ export class Passthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /filestorage/v1/passthrough."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/regenerateKey/client/Client.ts b/src/api/resources/filestorage/resources/regenerateKey/client/Client.ts index bb63bacf3..d6ef598d4 100644 --- a/src/api/resources/filestorage/resources/regenerateKey/client/Client.ts +++ b/src/api/resources/filestorage/resources/regenerateKey/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace RegenerateKey { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace RegenerateKey { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class RegenerateKey { - constructor(protected readonly _options: RegenerateKey.Options) {} + protected readonly _options: RegenerateKey.Options; + + constructor(_options: RegenerateKey.Options) { + this._options = _options; + } /** * Exchange remote keys. @@ -67,20 +74,14 @@ export class RegenerateKey { "filestorage/v1/regenerate-key", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.filestorage.RemoteKeyForRegenerationRequest.jsonOrThrow(request, { @@ -107,6 +108,7 @@ export class RegenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -115,6 +117,7 @@ export class RegenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -123,6 +126,7 @@ export class RegenerateKey { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/scopes/client/Client.ts b/src/api/resources/filestorage/resources/scopes/client/Client.ts index 7fdf61899..32a17216b 100644 --- a/src/api/resources/filestorage/resources/scopes/client/Client.ts +++ b/src/api/resources/filestorage/resources/scopes/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Scopes { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Scopes { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Scopes { - constructor(protected readonly _options: Scopes.Options) {} + protected readonly _options: Scopes.Options; + + constructor(_options: Scopes.Options) { + this._options = _options; + } /** * Get the default permissions for Merge Common Models and fields across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). @@ -62,22 +69,14 @@ export class Scopes { "filestorage/v1/default-scopes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /filestorage/v1/default-scopes."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -142,22 +144,14 @@ export class Scopes { "filestorage/v1/linked-account-scopes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -179,6 +173,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -187,6 +182,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -195,6 +191,7 @@ export class Scopes { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -250,20 +247,14 @@ export class Scopes { "filestorage/v1/linked-account-scopes", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.filestorage.LinkedAccountCommonModelScopeDeserializerRequest.jsonOrThrow(request, { @@ -290,6 +281,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -298,6 +290,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -306,6 +299,7 @@ export class Scopes { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/syncStatus/client/Client.ts b/src/api/resources/filestorage/resources/syncStatus/client/Client.ts index b2215a685..56ffcd3ff 100644 --- a/src/api/resources/filestorage/resources/syncStatus/client/Client.ts +++ b/src/api/resources/filestorage/resources/syncStatus/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace SyncStatus { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,15 +33,19 @@ export declare namespace SyncStatus { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class SyncStatus { - constructor(protected readonly _options: SyncStatus.Options) {} + protected readonly _options: SyncStatus.Options; + + constructor(_options: SyncStatus.Options) { + this._options = _options; + } /** - * Get syncing status. Possible values: `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). + * Get sync status for the current sync and the most recently finished sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` represents the most recent time any sync completed. These timestamps may correspond to different sync instances which may result in a sync start time being later than a separate sync completed time. To ensure you are retrieving the latest available data reference the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). * * @param {Merge.filestorage.SyncStatusListRequest} request * @param {SyncStatus.RequestOptions} requestOptions - Request-specific configuration. @@ -75,23 +82,15 @@ export class SyncStatus { "filestorage/v1/sync-status", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -113,6 +112,7 @@ export class SyncStatus { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -121,12 +121,14 @@ export class SyncStatus { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /filestorage/v1/sync-status."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/users/client/Client.ts b/src/api/resources/filestorage/resources/users/client/Client.ts index 4e33a218d..ade846316 100644 --- a/src/api/resources/filestorage/resources/users/client/Client.ts +++ b/src/api/resources/filestorage/resources/users/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Users { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Users { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Users { - constructor(protected readonly _options: Users.Options) {} + protected readonly _options: Users.Options; + + constructor(_options: Users.Options) { + this._options = _options; + } /** * Returns a list of `User` objects. @@ -123,23 +130,15 @@ export class Users { "filestorage/v1/users", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -161,6 +160,7 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -169,12 +169,14 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /filestorage/v1/users."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -220,23 +222,15 @@ export class Users { `filestorage/v1/users/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -258,6 +252,7 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -266,12 +261,14 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /filestorage/v1/users/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/resources/webhookReceivers/client/Client.ts b/src/api/resources/filestorage/resources/webhookReceivers/client/Client.ts index 79f0faf23..b7d538d3b 100644 --- a/src/api/resources/filestorage/resources/webhookReceivers/client/Client.ts +++ b/src/api/resources/filestorage/resources/webhookReceivers/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace WebhookReceivers { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace WebhookReceivers { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class WebhookReceivers { - constructor(protected readonly _options: WebhookReceivers.Options) {} + protected readonly _options: WebhookReceivers.Options; + + constructor(_options: WebhookReceivers.Options) { + this._options = _options; + } /** * Returns a list of `WebhookReceiver` objects. @@ -62,22 +69,14 @@ export class WebhookReceivers { "filestorage/v1/webhook-receivers", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,6 +107,7 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -115,6 +116,7 @@ export class WebhookReceivers { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -150,20 +152,14 @@ export class WebhookReceivers { "filestorage/v1/webhook-receivers", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.filestorage.WebhookReceiverRequest.jsonOrThrow(request, { @@ -190,6 +186,7 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -198,6 +195,7 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -206,6 +204,7 @@ export class WebhookReceivers { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/filestorage/types/AccountDetailsAndActions.ts b/src/api/resources/filestorage/types/AccountDetailsAndActions.ts index 71e873ebe..7bd280577 100644 --- a/src/api/resources/filestorage/types/AccountDetailsAndActions.ts +++ b/src/api/resources/filestorage/types/AccountDetailsAndActions.ts @@ -28,4 +28,5 @@ export interface AccountDetailsAndActions { integration?: Merge.filestorage.AccountDetailsAndActionsIntegration; accountType: string; completedAt: Date; + integrationSpecificFields?: Record; } diff --git a/src/api/resources/filestorage/types/AuditLogEvent.ts b/src/api/resources/filestorage/types/AuditLogEvent.ts index 3288a3da2..b917ee239 100644 --- a/src/api/resources/filestorage/types/AuditLogEvent.ts +++ b/src/api/resources/filestorage/types/AuditLogEvent.ts @@ -30,6 +30,7 @@ export interface AuditLogEvent { * * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY * * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY * * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE * * `INVITED_USER` - INVITED_USER * * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED * * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED diff --git a/src/api/resources/filestorage/types/AuditLogEventEventType.ts b/src/api/resources/filestorage/types/AuditLogEventEventType.ts index c69744825..734bb8948 100644 --- a/src/api/resources/filestorage/types/AuditLogEventEventType.ts +++ b/src/api/resources/filestorage/types/AuditLogEventEventType.ts @@ -12,6 +12,7 @@ import * as Merge from "../../../index"; * * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY * * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY * * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE * * `INVITED_USER` - INVITED_USER * * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED * * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED diff --git a/src/api/resources/filestorage/types/DownloadRequestMeta.ts b/src/api/resources/filestorage/types/DownloadRequestMeta.ts index 7ef7f0851..a92c52fad 100644 --- a/src/api/resources/filestorage/types/DownloadRequestMeta.ts +++ b/src/api/resources/filestorage/types/DownloadRequestMeta.ts @@ -7,5 +7,4 @@ export interface DownloadRequestMeta { url: string; method: string; headers: Record; - body: Record; } diff --git a/src/api/resources/filestorage/types/EventTypeEnum.ts b/src/api/resources/filestorage/types/EventTypeEnum.ts index 316d8531b..261c00e43 100644 --- a/src/api/resources/filestorage/types/EventTypeEnum.ts +++ b/src/api/resources/filestorage/types/EventTypeEnum.ts @@ -8,6 +8,7 @@ * * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY * * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY * * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE * * `INVITED_USER` - INVITED_USER * * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED * * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED @@ -52,6 +53,7 @@ export type EventTypeEnum = | "CREATED_TEST_API_KEY" | "DELETED_TEST_API_KEY" | "REGENERATED_PRODUCTION_API_KEY" + | "REGENERATED_WEBHOOK_SIGNATURE" | "INVITED_USER" | "TWO_FACTOR_AUTH_ENABLED" | "TWO_FACTOR_AUTH_DISABLED" @@ -95,6 +97,7 @@ export const EventTypeEnum = { CreatedTestApiKey: "CREATED_TEST_API_KEY", DeletedTestApiKey: "DELETED_TEST_API_KEY", RegeneratedProductionApiKey: "REGENERATED_PRODUCTION_API_KEY", + RegeneratedWebhookSignature: "REGENERATED_WEBHOOK_SIGNATURE", InvitedUser: "INVITED_USER", TwoFactorAuthEnabled: "TWO_FACTOR_AUTH_ENABLED", TwoFactorAuthDisabled: "TWO_FACTOR_AUTH_DISABLED", diff --git a/src/api/resources/filestorage/types/FileRequest.ts b/src/api/resources/filestorage/types/FileRequest.ts index 298bd4401..5f533b010 100644 --- a/src/api/resources/filestorage/types/FileRequest.ts +++ b/src/api/resources/filestorage/types/FileRequest.ts @@ -26,6 +26,8 @@ export interface FileRequest { description?: string; /** The folder that the file belongs to. */ folder?: Merge.filestorage.FileRequestFolder; + /** This field stores file checksum data. 'type' indicates the algorithm (e.g. crc_32, sha1, sha256, quickXor, or md5), and 'content_hash' is the unique hash used to verify file integrity and detect alterations. */ + checksum?: Record; /** The Permission object is used to represent a user's or group's access to a File or Folder. Permissions are unexpanded by default. Use the query param `expand=permissions` to see more details under `GET /files`. */ permissions?: Merge.filestorage.FileRequestPermissions; /** The drive that the file belongs to. */ diff --git a/src/api/resources/filestorage/types/File_.ts b/src/api/resources/filestorage/types/File_.ts index c826d5381..7c030ca78 100644 --- a/src/api/resources/filestorage/types/File_.ts +++ b/src/api/resources/filestorage/types/File_.ts @@ -33,6 +33,8 @@ export interface File_ { description?: string; /** The folder that the file belongs to. */ folder?: Merge.filestorage.FileFolder; + /** This field stores file checksum data. 'type' indicates the algorithm (e.g. crc_32, sha1, sha256, quickXor, or md5), and 'content_hash' is the unique hash used to verify file integrity and detect alterations. */ + checksum?: Record; /** The Permission object is used to represent a user's or group's access to a File or Folder. Permissions are unexpanded by default. Use the query param `expand=permissions` to see more details under `GET /files`. */ permissions?: Merge.filestorage.FilePermissions; /** The drive that the file belongs to. */ diff --git a/src/api/resources/hris/client/Client.ts b/src/api/resources/hris/client/Client.ts index e87dba976..baf22a7af 100644 --- a/src/api/resources/hris/client/Client.ts +++ b/src/api/resources/hris/client/Client.ts @@ -46,11 +46,14 @@ export declare namespace Hris { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } } export class Hris { + protected readonly _options: Hris.Options; protected _accountDetails: AccountDetails | undefined; protected _accountToken: AccountToken | undefined; protected _asyncPassthrough: AsyncPassthrough | undefined; @@ -85,7 +88,9 @@ export class Hris { protected _timesheetEntries: TimesheetEntries | undefined; protected _webhookReceivers: WebhookReceivers | undefined; - constructor(protected readonly _options: Hris.Options) {} + constructor(_options: Hris.Options) { + this._options = _options; + } public get accountDetails(): AccountDetails { return (this._accountDetails ??= new AccountDetails(this._options)); diff --git a/src/api/resources/hris/resources/accountDetails/client/Client.ts b/src/api/resources/hris/resources/accountDetails/client/Client.ts index a0eeb9342..dc6691cec 100644 --- a/src/api/resources/hris/resources/accountDetails/client/Client.ts +++ b/src/api/resources/hris/resources/accountDetails/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AccountDetails { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AccountDetails { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AccountDetails { - constructor(protected readonly _options: AccountDetails.Options) {} + protected readonly _options: AccountDetails.Options; + + constructor(_options: AccountDetails.Options) { + this._options = _options; + } /** * Get details for a linked account. @@ -62,22 +69,14 @@ export class AccountDetails { "hris/v1/account-details", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class AccountDetails { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class AccountDetails { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/account-details."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/accountToken/client/Client.ts b/src/api/resources/hris/resources/accountToken/client/Client.ts index b3494d6c2..3656d0f6b 100644 --- a/src/api/resources/hris/resources/accountToken/client/Client.ts +++ b/src/api/resources/hris/resources/accountToken/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AccountToken { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AccountToken { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AccountToken { - constructor(protected readonly _options: AccountToken.Options) {} + protected readonly _options: AccountToken.Options; + + constructor(_options: AccountToken.Options) { + this._options = _options; + } /** * Returns the account token for the end user with the provided public token. @@ -65,22 +72,14 @@ export class AccountToken { `hris/v1/account-token/${encodeURIComponent(publicToken)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -102,6 +101,7 @@ export class AccountToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -110,6 +110,7 @@ export class AccountToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -118,6 +119,7 @@ export class AccountToken { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/asyncPassthrough/client/Client.ts b/src/api/resources/hris/resources/asyncPassthrough/client/Client.ts index 57c8d798e..1b82951c6 100644 --- a/src/api/resources/hris/resources/asyncPassthrough/client/Client.ts +++ b/src/api/resources/hris/resources/asyncPassthrough/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AsyncPassthrough { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AsyncPassthrough { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AsyncPassthrough { - constructor(protected readonly _options: AsyncPassthrough.Options) {} + protected readonly _options: AsyncPassthrough.Options; + + constructor(_options: AsyncPassthrough.Options) { + this._options = _options; + } /** * Asynchronously pull data from an endpoint not currently supported by Merge. @@ -68,20 +75,14 @@ export class AsyncPassthrough { "hris/v1/async-passthrough", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.hris.DataPassthroughRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -106,6 +107,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -114,12 +116,14 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /hris/v1/async-passthrough."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -152,22 +156,14 @@ export class AsyncPassthrough { `hris/v1/async-passthrough/${encodeURIComponent(asyncPassthroughReceiptId)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -189,6 +185,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -197,6 +194,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -205,6 +203,7 @@ export class AsyncPassthrough { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/auditTrail/client/Client.ts b/src/api/resources/hris/resources/auditTrail/client/Client.ts index 49d8e5a43..2c606f422 100644 --- a/src/api/resources/hris/resources/auditTrail/client/Client.ts +++ b/src/api/resources/hris/resources/auditTrail/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AuditTrail { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AuditTrail { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AuditTrail { - constructor(protected readonly _options: AuditTrail.Options) {} + protected readonly _options: AuditTrail.Options; + + constructor(_options: AuditTrail.Options) { + this._options = _options; + } /** * Gets a list of audit trail events. @@ -91,23 +98,15 @@ export class AuditTrail { "hris/v1/audit-trail", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -129,6 +128,7 @@ export class AuditTrail { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -137,12 +137,14 @@ export class AuditTrail { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/audit-trail."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/auditTrail/client/requests/AuditTrailListRequest.ts b/src/api/resources/hris/resources/auditTrail/client/requests/AuditTrailListRequest.ts index b3187c0db..99ee8b1ad 100644 --- a/src/api/resources/hris/resources/auditTrail/client/requests/AuditTrailListRequest.ts +++ b/src/api/resources/hris/resources/auditTrail/client/requests/AuditTrailListRequest.ts @@ -16,7 +16,7 @@ export interface AuditTrailListRequest { */ endDate?: string; /** - * If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` + * If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` */ eventType?: string; /** diff --git a/src/api/resources/hris/resources/availableActions/client/Client.ts b/src/api/resources/hris/resources/availableActions/client/Client.ts index b6feb9e16..0317c659e 100644 --- a/src/api/resources/hris/resources/availableActions/client/Client.ts +++ b/src/api/resources/hris/resources/availableActions/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AvailableActions { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AvailableActions { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AvailableActions { - constructor(protected readonly _options: AvailableActions.Options) {} + protected readonly _options: AvailableActions.Options; + + constructor(_options: AvailableActions.Options) { + this._options = _options; + } /** * Returns a list of models and actions available for an account. @@ -62,22 +69,14 @@ export class AvailableActions { "hris/v1/available-actions", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class AvailableActions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class AvailableActions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/available-actions."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/bankInfo/client/Client.ts b/src/api/resources/hris/resources/bankInfo/client/Client.ts index 9dabce999..15270fdb8 100644 --- a/src/api/resources/hris/resources/bankInfo/client/Client.ts +++ b/src/api/resources/hris/resources/bankInfo/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace BankInfo { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace BankInfo { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class BankInfo { - constructor(protected readonly _options: BankInfo.Options) {} + protected readonly _options: BankInfo.Options; + + constructor(_options: BankInfo.Options) { + this._options = _options; + } /** * Returns a list of `BankInfo` objects. @@ -157,23 +164,15 @@ export class BankInfo { "hris/v1/bank-info", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -195,6 +194,7 @@ export class BankInfo { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -203,12 +203,14 @@ export class BankInfo { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/bank-info."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -266,23 +268,15 @@ export class BankInfo { `hris/v1/bank-info/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -304,6 +298,7 @@ export class BankInfo { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -312,12 +307,14 @@ export class BankInfo { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/bank-info/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/benefits/client/Client.ts b/src/api/resources/hris/resources/benefits/client/Client.ts index 61c9cf9d2..f735f4baa 100644 --- a/src/api/resources/hris/resources/benefits/client/Client.ts +++ b/src/api/resources/hris/resources/benefits/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Benefits { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Benefits { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Benefits { - constructor(protected readonly _options: Benefits.Options) {} + protected readonly _options: Benefits.Options; + + constructor(_options: Benefits.Options) { + this._options = _options; + } /** * Returns a list of `Benefit` objects. @@ -128,23 +135,15 @@ export class Benefits { "hris/v1/benefits", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -166,6 +165,7 @@ export class Benefits { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -174,12 +174,14 @@ export class Benefits { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/benefits."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -229,23 +231,15 @@ export class Benefits { `hris/v1/benefits/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -267,6 +261,7 @@ export class Benefits { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -275,12 +270,14 @@ export class Benefits { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/benefits/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/companies/client/Client.ts b/src/api/resources/hris/resources/companies/client/Client.ts index a37fdfb65..5e8479b8d 100644 --- a/src/api/resources/hris/resources/companies/client/Client.ts +++ b/src/api/resources/hris/resources/companies/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Companies { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Companies { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Companies { - constructor(protected readonly _options: Companies.Options) {} + protected readonly _options: Companies.Options; + + constructor(_options: Companies.Options) { + this._options = _options; + } /** * Returns a list of `Company` objects. @@ -118,23 +125,15 @@ export class Companies { "hris/v1/companies", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -156,6 +155,7 @@ export class Companies { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -164,12 +164,14 @@ export class Companies { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/companies."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -215,23 +217,15 @@ export class Companies { `hris/v1/companies/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -253,6 +247,7 @@ export class Companies { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -261,12 +256,14 @@ export class Companies { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/companies/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/deleteAccount/client/Client.ts b/src/api/resources/hris/resources/deleteAccount/client/Client.ts index 82cf9b097..e56b5eac4 100644 --- a/src/api/resources/hris/resources/deleteAccount/client/Client.ts +++ b/src/api/resources/hris/resources/deleteAccount/client/Client.ts @@ -4,6 +4,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -15,6 +16,8 @@ export declare namespace DeleteAccount { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -28,12 +31,16 @@ export declare namespace DeleteAccount { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class DeleteAccount { - constructor(protected readonly _options: DeleteAccount.Options) {} + protected readonly _options: DeleteAccount.Options; + + constructor(_options: DeleteAccount.Options) { + this._options = _options; + } /** * Delete a linked account. @@ -56,22 +63,14 @@ export class DeleteAccount { "hris/v1/delete-account", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -84,6 +83,7 @@ export class DeleteAccount { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -92,12 +92,14 @@ export class DeleteAccount { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /hris/v1/delete-account."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/dependents/client/Client.ts b/src/api/resources/hris/resources/dependents/client/Client.ts index 079735e10..ad68611e9 100644 --- a/src/api/resources/hris/resources/dependents/client/Client.ts +++ b/src/api/resources/hris/resources/dependents/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Dependents { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Dependents { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Dependents { - constructor(protected readonly _options: Dependents.Options) {} + protected readonly _options: Dependents.Options; + + constructor(_options: Dependents.Options) { + this._options = _options; + } /** * Returns a list of `Dependent` objects. @@ -123,23 +130,15 @@ export class Dependents { "hris/v1/dependents", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -161,6 +160,7 @@ export class Dependents { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -169,12 +169,14 @@ export class Dependents { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/dependents."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -224,23 +226,15 @@ export class Dependents { `hris/v1/dependents/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -262,6 +256,7 @@ export class Dependents { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -270,12 +265,14 @@ export class Dependents { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/dependents/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/employeePayrollRuns/client/Client.ts b/src/api/resources/hris/resources/employeePayrollRuns/client/Client.ts index 6407c2579..3e5e19c9a 100644 --- a/src/api/resources/hris/resources/employeePayrollRuns/client/Client.ts +++ b/src/api/resources/hris/resources/employeePayrollRuns/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace EmployeePayrollRuns { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace EmployeePayrollRuns { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class EmployeePayrollRuns { - constructor(protected readonly _options: EmployeePayrollRuns.Options) {} + protected readonly _options: EmployeePayrollRuns.Options; + + constructor(_options: EmployeePayrollRuns.Options) { + this._options = _options; + } /** * Returns a list of `EmployeePayrollRun` objects. @@ -155,23 +162,15 @@ export class EmployeePayrollRuns { "hris/v1/employee-payroll-runs", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -193,6 +192,7 @@ export class EmployeePayrollRuns { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -201,12 +201,14 @@ export class EmployeePayrollRuns { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/employee-payroll-runs."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -258,23 +260,15 @@ export class EmployeePayrollRuns { `hris/v1/employee-payroll-runs/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -296,6 +290,7 @@ export class EmployeePayrollRuns { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -304,6 +299,7 @@ export class EmployeePayrollRuns { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -312,6 +308,7 @@ export class EmployeePayrollRuns { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/employees/client/Client.ts b/src/api/resources/hris/resources/employees/client/Client.ts index c3cef50c9..ad3cd37f2 100644 --- a/src/api/resources/hris/resources/employees/client/Client.ts +++ b/src/api/resources/hris/resources/employees/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Employees { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Employees { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Employees { - constructor(protected readonly _options: Employees.Options) {} + protected readonly _options: Employees.Options; + + constructor(_options: Employees.Options) { + this._options = _options; + } /** * Returns a list of `Employee` objects. @@ -244,23 +251,15 @@ export class Employees { "hris/v1/employees", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -282,6 +281,7 @@ export class Employees { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -290,12 +290,14 @@ export class Employees { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/employees."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -340,20 +342,14 @@ export class Employees { "hris/v1/employees", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -379,6 +375,7 @@ export class Employees { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -387,12 +384,14 @@ export class Employees { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /hris/v1/employees."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -463,23 +462,15 @@ export class Employees { `hris/v1/employees/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -501,6 +492,7 @@ export class Employees { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -509,12 +501,14 @@ export class Employees { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/employees/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -552,20 +546,14 @@ export class Employees { `hris/v1/employees/ignore/${encodeURIComponent(modelId)}`, ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.hris.IgnoreCommonModelRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -581,6 +569,7 @@ export class Employees { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -589,6 +578,7 @@ export class Employees { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -597,6 +587,7 @@ export class Employees { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -626,22 +617,14 @@ export class Employees { "hris/v1/employees/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -663,6 +646,7 @@ export class Employees { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -671,12 +655,14 @@ export class Employees { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/employees/meta/post."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/employerBenefits/client/Client.ts b/src/api/resources/hris/resources/employerBenefits/client/Client.ts index 88523ff76..f0bb464eb 100644 --- a/src/api/resources/hris/resources/employerBenefits/client/Client.ts +++ b/src/api/resources/hris/resources/employerBenefits/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace EmployerBenefits { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace EmployerBenefits { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class EmployerBenefits { - constructor(protected readonly _options: EmployerBenefits.Options) {} + protected readonly _options: EmployerBenefits.Options; + + constructor(_options: EmployerBenefits.Options) { + this._options = _options; + } /** * Returns a list of `EmployerBenefit` objects. @@ -118,23 +125,15 @@ export class EmployerBenefits { "hris/v1/employer-benefits", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -156,6 +155,7 @@ export class EmployerBenefits { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -164,12 +164,14 @@ export class EmployerBenefits { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/employer-benefits."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -215,23 +217,15 @@ export class EmployerBenefits { `hris/v1/employer-benefits/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -253,6 +247,7 @@ export class EmployerBenefits { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -261,6 +256,7 @@ export class EmployerBenefits { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -269,6 +265,7 @@ export class EmployerBenefits { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/employments/client/Client.ts b/src/api/resources/hris/resources/employments/client/Client.ts index be90ddd48..63570966d 100644 --- a/src/api/resources/hris/resources/employments/client/Client.ts +++ b/src/api/resources/hris/resources/employments/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Employments { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Employments { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Employments { - constructor(protected readonly _options: Employments.Options) {} + protected readonly _options: Employments.Options; + + constructor(_options: Employments.Options) { + this._options = _options; + } /** * Returns a list of `Employment` objects. @@ -153,23 +160,15 @@ export class Employments { "hris/v1/employments", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -191,6 +190,7 @@ export class Employments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -199,12 +199,14 @@ export class Employments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/employments."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -270,23 +272,15 @@ export class Employments { `hris/v1/employments/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -308,6 +302,7 @@ export class Employments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -316,12 +311,14 @@ export class Employments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/employments/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/fieldMapping/client/Client.ts b/src/api/resources/hris/resources/fieldMapping/client/Client.ts index debb9a143..e0065fd7d 100644 --- a/src/api/resources/hris/resources/fieldMapping/client/Client.ts +++ b/src/api/resources/hris/resources/fieldMapping/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace FieldMapping { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace FieldMapping { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class FieldMapping { - constructor(protected readonly _options: FieldMapping.Options) {} + protected readonly _options: FieldMapping.Options; + + constructor(_options: FieldMapping.Options) { + this._options = _options; + } /** * Get all Field Mappings for this Linked Account. Field Mappings are mappings between third-party Remote Fields and user defined Merge fields. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). @@ -71,23 +78,15 @@ export class FieldMapping { "hris/v1/field-mappings", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -109,6 +108,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -117,12 +117,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/field-mappings."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -168,20 +170,14 @@ export class FieldMapping { "hris/v1/field-mappings", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -207,6 +203,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -215,12 +212,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /hris/v1/field-mappings."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -253,22 +252,14 @@ export class FieldMapping { `hris/v1/field-mappings/${encodeURIComponent(fieldMappingId)}`, ), method: "DELETE", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -290,6 +281,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -298,6 +290,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -306,6 +299,7 @@ export class FieldMapping { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -343,20 +337,14 @@ export class FieldMapping { `hris/v1/field-mappings/${encodeURIComponent(fieldMappingId)}`, ), method: "PATCH", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.hris.PatchedEditFieldMappingRequest.jsonOrThrow(request, { @@ -383,6 +371,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -391,6 +380,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -399,6 +389,7 @@ export class FieldMapping { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -441,23 +432,15 @@ export class FieldMapping { "hris/v1/remote-fields", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -479,6 +462,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -487,12 +471,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/remote-fields."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -522,22 +508,14 @@ export class FieldMapping { "hris/v1/target-fields", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -559,6 +537,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -567,12 +546,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/target-fields."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/forceResync/client/Client.ts b/src/api/resources/hris/resources/forceResync/client/Client.ts index e506906bf..9f7f941ae 100644 --- a/src/api/resources/hris/resources/forceResync/client/Client.ts +++ b/src/api/resources/hris/resources/forceResync/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace ForceResync { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace ForceResync { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class ForceResync { - constructor(protected readonly _options: ForceResync.Options) {} + protected readonly _options: ForceResync.Options; + + constructor(_options: ForceResync.Options) { + this._options = _options; + } /** * Force re-sync of all models. This endpoint is available for monthly, quarterly, and highest sync frequency customers on the Professional or Enterprise plans. Doing so will consume a sync credit for the relevant linked account. Force re-syncs can also be triggered manually in the Merge Dashboard and is available for all customers. @@ -62,22 +69,14 @@ export class ForceResync { "hris/v1/sync-status/resync", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class ForceResync { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class ForceResync { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /hris/v1/sync-status/resync."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/generateKey/client/Client.ts b/src/api/resources/hris/resources/generateKey/client/Client.ts index ca29afa6c..51329c454 100644 --- a/src/api/resources/hris/resources/generateKey/client/Client.ts +++ b/src/api/resources/hris/resources/generateKey/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace GenerateKey { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace GenerateKey { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class GenerateKey { - constructor(protected readonly _options: GenerateKey.Options) {} + protected readonly _options: GenerateKey.Options; + + constructor(_options: GenerateKey.Options) { + this._options = _options; + } /** * Create a remote key. @@ -67,20 +74,14 @@ export class GenerateKey { "hris/v1/generate-key", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.hris.GenerateRemoteKeyRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -105,6 +106,7 @@ export class GenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -113,12 +115,14 @@ export class GenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /hris/v1/generate-key."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/groups/client/Client.ts b/src/api/resources/hris/resources/groups/client/Client.ts index cab07168c..f10a8d217 100644 --- a/src/api/resources/hris/resources/groups/client/Client.ts +++ b/src/api/resources/hris/resources/groups/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Groups { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Groups { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Groups { - constructor(protected readonly _options: Groups.Options) {} + protected readonly _options: Groups.Options; + + constructor(_options: Groups.Options) { + this._options = _options; + } /** * Returns a list of `Group` objects. @@ -143,23 +150,15 @@ export class Groups { "hris/v1/groups", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -181,6 +180,7 @@ export class Groups { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -189,12 +189,14 @@ export class Groups { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/groups."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -248,23 +250,15 @@ export class Groups { `hris/v1/groups/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -286,6 +280,7 @@ export class Groups { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -294,12 +289,14 @@ export class Groups { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/groups/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/index.ts b/src/api/resources/hris/resources/index.ts index 5965972d0..46855bc81 100644 --- a/src/api/resources/hris/resources/index.ts +++ b/src/api/resources/hris/resources/index.ts @@ -10,6 +10,8 @@ export * as employments from "./employments"; export * from "./employments/types"; export * as issues from "./issues"; export * from "./issues/types"; +export * as linkToken from "./linkToken"; +export * from "./linkToken/types"; export * as linkedAccounts from "./linkedAccounts"; export * from "./linkedAccounts/types"; export * as locations from "./locations"; @@ -35,7 +37,6 @@ export * as employerBenefits from "./employerBenefits"; export * as fieldMapping from "./fieldMapping"; export * as generateKey from "./generateKey"; export * as groups from "./groups"; -export * as linkToken from "./linkToken"; export * as passthrough from "./passthrough"; export * as payGroups from "./payGroups"; export * as regenerateKey from "./regenerateKey"; diff --git a/src/api/resources/hris/resources/issues/client/Client.ts b/src/api/resources/hris/resources/issues/client/Client.ts index b6a140d3a..d7718254b 100644 --- a/src/api/resources/hris/resources/issues/client/Client.ts +++ b/src/api/resources/hris/resources/issues/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Issues { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Issues { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Issues { - constructor(protected readonly _options: Issues.Options) {} + protected readonly _options: Issues.Options; + + constructor(_options: Issues.Options) { + this._options = _options; + } /** * Gets all issues for Organization. @@ -140,23 +147,15 @@ export class Issues { "hris/v1/issues", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -178,6 +177,7 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -186,12 +186,14 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/issues."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -221,22 +223,14 @@ export class Issues { `hris/v1/issues/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -258,6 +252,7 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -266,12 +261,14 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/issues/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/linkToken/client/Client.ts b/src/api/resources/hris/resources/linkToken/client/Client.ts index 89fb270e1..075486721 100644 --- a/src/api/resources/hris/resources/linkToken/client/Client.ts +++ b/src/api/resources/hris/resources/linkToken/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace LinkToken { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace LinkToken { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class LinkToken { - constructor(protected readonly _options: LinkToken.Options) {} + protected readonly _options: LinkToken.Options; + + constructor(_options: LinkToken.Options) { + this._options = _options; + } /** * Creates a link token to be used when linking a new end user. @@ -70,20 +77,14 @@ export class LinkToken { "hris/v1/link-token", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.hris.EndUserDetailsRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -108,6 +109,7 @@ export class LinkToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -116,12 +118,14 @@ export class LinkToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /hris/v1/link-token."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/linkToken/client/requests/EndUserDetailsRequest.ts b/src/api/resources/hris/resources/linkToken/client/requests/EndUserDetailsRequest.ts index 6c55fa76b..3eb8c5f3d 100644 --- a/src/api/resources/hris/resources/linkToken/client/requests/EndUserDetailsRequest.ts +++ b/src/api/resources/hris/resources/linkToken/client/requests/EndUserDetailsRequest.ts @@ -40,7 +40,7 @@ export interface EndUserDetailsRequest { * * `en` - en * * `de` - de */ - language?: Merge.hris.LanguageEnum; + language?: Merge.hris.EndUserDetailsRequestLanguage; /** The boolean that indicates whether initial, periodic, and force syncs will be disabled. */ areSyncsDisabled?: boolean; /** A JSON object containing integration-specific configuration options. */ diff --git a/src/api/resources/hris/resources/linkToken/index.ts b/src/api/resources/hris/resources/linkToken/index.ts index 5ec76921e..c9240f83b 100644 --- a/src/api/resources/hris/resources/linkToken/index.ts +++ b/src/api/resources/hris/resources/linkToken/index.ts @@ -1 +1,2 @@ +export * from "./types"; export * from "./client"; diff --git a/src/api/resources/hris/resources/linkToken/types/EndUserDetailsRequestLanguage.ts b/src/api/resources/hris/resources/linkToken/types/EndUserDetailsRequestLanguage.ts new file mode 100644 index 000000000..5e0730c30 --- /dev/null +++ b/src/api/resources/hris/resources/linkToken/types/EndUserDetailsRequestLanguage.ts @@ -0,0 +1,13 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../../../index"; + +/** + * The following subset of IETF language tags can be used to configure localization. + * + * * `en` - en + * * `de` - de + */ +export type EndUserDetailsRequestLanguage = Merge.hris.LanguageEnum | string; diff --git a/src/api/resources/hris/resources/linkToken/types/index.ts b/src/api/resources/hris/resources/linkToken/types/index.ts new file mode 100644 index 000000000..c90e13c37 --- /dev/null +++ b/src/api/resources/hris/resources/linkToken/types/index.ts @@ -0,0 +1 @@ +export * from "./EndUserDetailsRequestLanguage"; diff --git a/src/api/resources/hris/resources/linkedAccounts/client/Client.ts b/src/api/resources/hris/resources/linkedAccounts/client/Client.ts index 8c5803836..21c912b42 100644 --- a/src/api/resources/hris/resources/linkedAccounts/client/Client.ts +++ b/src/api/resources/hris/resources/linkedAccounts/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace LinkedAccounts { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace LinkedAccounts { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class LinkedAccounts { - constructor(protected readonly _options: LinkedAccounts.Options) {} + protected readonly _options: LinkedAccounts.Options; + + constructor(_options: LinkedAccounts.Options) { + this._options = _options; + } /** * List linked accounts for your organization. @@ -135,23 +142,15 @@ export class LinkedAccounts { "hris/v1/linked-accounts", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -173,6 +172,7 @@ export class LinkedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -181,12 +181,14 @@ export class LinkedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/linked-accounts."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/locations/client/Client.ts b/src/api/resources/hris/resources/locations/client/Client.ts index d1668d942..4f8a39f55 100644 --- a/src/api/resources/hris/resources/locations/client/Client.ts +++ b/src/api/resources/hris/resources/locations/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Locations { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Locations { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Locations { - constructor(protected readonly _options: Locations.Options) {} + protected readonly _options: Locations.Options; + + constructor(_options: Locations.Options) { + this._options = _options; + } /** * Returns a list of `Location` objects. @@ -142,23 +149,15 @@ export class Locations { "hris/v1/locations", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -180,6 +179,7 @@ export class Locations { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -188,12 +188,14 @@ export class Locations { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/locations."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -253,23 +255,15 @@ export class Locations { `hris/v1/locations/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -291,6 +285,7 @@ export class Locations { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -299,12 +294,14 @@ export class Locations { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/locations/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/passthrough/client/Client.ts b/src/api/resources/hris/resources/passthrough/client/Client.ts index c376e8da8..19ae8646c 100644 --- a/src/api/resources/hris/resources/passthrough/client/Client.ts +++ b/src/api/resources/hris/resources/passthrough/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Passthrough { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Passthrough { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Passthrough { - constructor(protected readonly _options: Passthrough.Options) {} + protected readonly _options: Passthrough.Options; + + constructor(_options: Passthrough.Options) { + this._options = _options; + } /** * Pull data from an endpoint not currently supported by Merge. @@ -68,20 +75,14 @@ export class Passthrough { "hris/v1/passthrough", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.hris.DataPassthroughRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -106,6 +107,7 @@ export class Passthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -114,12 +116,14 @@ export class Passthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /hris/v1/passthrough."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/payGroups/client/Client.ts b/src/api/resources/hris/resources/payGroups/client/Client.ts index e5a48d3de..1d294ac32 100644 --- a/src/api/resources/hris/resources/payGroups/client/Client.ts +++ b/src/api/resources/hris/resources/payGroups/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace PayGroups { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace PayGroups { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class PayGroups { - constructor(protected readonly _options: PayGroups.Options) {} + protected readonly _options: PayGroups.Options; + + constructor(_options: PayGroups.Options) { + this._options = _options; + } /** * Returns a list of `PayGroup` objects. @@ -118,23 +125,15 @@ export class PayGroups { "hris/v1/pay-groups", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -156,6 +155,7 @@ export class PayGroups { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -164,12 +164,14 @@ export class PayGroups { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/pay-groups."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -215,23 +217,15 @@ export class PayGroups { `hris/v1/pay-groups/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -253,6 +247,7 @@ export class PayGroups { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -261,12 +256,14 @@ export class PayGroups { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/pay-groups/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/payrollRuns/client/Client.ts b/src/api/resources/hris/resources/payrollRuns/client/Client.ts index 160fbc1df..0a3a868b5 100644 --- a/src/api/resources/hris/resources/payrollRuns/client/Client.ts +++ b/src/api/resources/hris/resources/payrollRuns/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace PayrollRuns { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace PayrollRuns { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class PayrollRuns { - constructor(protected readonly _options: PayrollRuns.Options) {} + protected readonly _options: PayrollRuns.Options; + + constructor(_options: PayrollRuns.Options) { + this._options = _options; + } /** * Returns a list of `PayrollRun` objects. @@ -161,23 +168,15 @@ export class PayrollRuns { "hris/v1/payroll-runs", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -199,6 +198,7 @@ export class PayrollRuns { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -207,12 +207,14 @@ export class PayrollRuns { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/payroll-runs."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -272,23 +274,15 @@ export class PayrollRuns { `hris/v1/payroll-runs/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -310,6 +304,7 @@ export class PayrollRuns { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -318,12 +313,14 @@ export class PayrollRuns { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/payroll-runs/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/regenerateKey/client/Client.ts b/src/api/resources/hris/resources/regenerateKey/client/Client.ts index 3bc51f9eb..074af496e 100644 --- a/src/api/resources/hris/resources/regenerateKey/client/Client.ts +++ b/src/api/resources/hris/resources/regenerateKey/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace RegenerateKey { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace RegenerateKey { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class RegenerateKey { - constructor(protected readonly _options: RegenerateKey.Options) {} + protected readonly _options: RegenerateKey.Options; + + constructor(_options: RegenerateKey.Options) { + this._options = _options; + } /** * Exchange remote keys. @@ -67,20 +74,14 @@ export class RegenerateKey { "hris/v1/regenerate-key", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.hris.RemoteKeyForRegenerationRequest.jsonOrThrow(request, { @@ -107,6 +108,7 @@ export class RegenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -115,12 +117,14 @@ export class RegenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /hris/v1/regenerate-key."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/scopes/client/Client.ts b/src/api/resources/hris/resources/scopes/client/Client.ts index 2bd492eab..4a4c179df 100644 --- a/src/api/resources/hris/resources/scopes/client/Client.ts +++ b/src/api/resources/hris/resources/scopes/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Scopes { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Scopes { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Scopes { - constructor(protected readonly _options: Scopes.Options) {} + protected readonly _options: Scopes.Options; + + constructor(_options: Scopes.Options) { + this._options = _options; + } /** * Get the default permissions for Merge Common Models and fields across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). @@ -62,22 +69,14 @@ export class Scopes { "hris/v1/default-scopes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/default-scopes."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -142,22 +144,14 @@ export class Scopes { "hris/v1/linked-account-scopes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -179,6 +173,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -187,12 +182,14 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/linked-account-scopes."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -248,20 +245,14 @@ export class Scopes { "hris/v1/linked-account-scopes", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.hris.LinkedAccountCommonModelScopeDeserializerRequest.jsonOrThrow(request, { @@ -288,6 +279,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -296,6 +288,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -304,6 +297,7 @@ export class Scopes { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/syncStatus/client/Client.ts b/src/api/resources/hris/resources/syncStatus/client/Client.ts index e95ff3f5e..28dff6d25 100644 --- a/src/api/resources/hris/resources/syncStatus/client/Client.ts +++ b/src/api/resources/hris/resources/syncStatus/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace SyncStatus { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace SyncStatus { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class SyncStatus { - constructor(protected readonly _options: SyncStatus.Options) {} + protected readonly _options: SyncStatus.Options; + + constructor(_options: SyncStatus.Options) { + this._options = _options; + } /** * Get sync status for the current sync and the most recently finished sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` represents the most recent time any sync completed. These timestamps may correspond to different sync instances which may result in a sync start time being later than a separate sync completed time. To ensure you are retrieving the latest available data reference the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). @@ -75,23 +82,15 @@ export class SyncStatus { "hris/v1/sync-status", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -113,6 +112,7 @@ export class SyncStatus { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -121,12 +121,14 @@ export class SyncStatus { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/sync-status."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/teams/client/Client.ts b/src/api/resources/hris/resources/teams/client/Client.ts index e31a2a483..be4f5eedc 100644 --- a/src/api/resources/hris/resources/teams/client/Client.ts +++ b/src/api/resources/hris/resources/teams/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Teams { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Teams { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Teams { - constructor(protected readonly _options: Teams.Options) {} + protected readonly _options: Teams.Options; + + constructor(_options: Teams.Options) { + this._options = _options; + } /** * Returns a list of `Team` objects. @@ -128,23 +135,15 @@ export class Teams { "hris/v1/teams", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -166,6 +165,7 @@ export class Teams { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -174,12 +174,14 @@ export class Teams { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/teams."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -229,23 +231,15 @@ export class Teams { `hris/v1/teams/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -267,6 +261,7 @@ export class Teams { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -275,12 +270,14 @@ export class Teams { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/teams/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/timeOff/client/Client.ts b/src/api/resources/hris/resources/timeOff/client/Client.ts index 516332920..df05893d0 100644 --- a/src/api/resources/hris/resources/timeOff/client/Client.ts +++ b/src/api/resources/hris/resources/timeOff/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace TimeOff { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace TimeOff { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class TimeOff { - constructor(protected readonly _options: TimeOff.Options) {} + protected readonly _options: TimeOff.Options; + + constructor(_options: TimeOff.Options) { + this._options = _options; + } /** * Returns a list of `TimeOff` objects. @@ -184,23 +191,15 @@ export class TimeOff { "hris/v1/time-off", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -222,6 +221,7 @@ export class TimeOff { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -230,12 +230,14 @@ export class TimeOff { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/time-off."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -280,20 +282,14 @@ export class TimeOff { "hris/v1/time-off", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -319,6 +315,7 @@ export class TimeOff { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -327,12 +324,14 @@ export class TimeOff { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /hris/v1/time-off."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -398,23 +397,15 @@ export class TimeOff { `hris/v1/time-off/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -436,6 +427,7 @@ export class TimeOff { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -444,12 +436,14 @@ export class TimeOff { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/time-off/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -479,22 +473,14 @@ export class TimeOff { "hris/v1/time-off/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -516,6 +502,7 @@ export class TimeOff { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -524,12 +511,14 @@ export class TimeOff { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/time-off/meta/post."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/timeOffBalances/client/Client.ts b/src/api/resources/hris/resources/timeOffBalances/client/Client.ts index 4660c1657..481946904 100644 --- a/src/api/resources/hris/resources/timeOffBalances/client/Client.ts +++ b/src/api/resources/hris/resources/timeOffBalances/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace TimeOffBalances { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace TimeOffBalances { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class TimeOffBalances { - constructor(protected readonly _options: TimeOffBalances.Options) {} + protected readonly _options: TimeOffBalances.Options; + + constructor(_options: TimeOffBalances.Options) { + this._options = _options; + } /** * Returns a list of `TimeOffBalance` objects. @@ -146,23 +153,15 @@ export class TimeOffBalances { "hris/v1/time-off-balances", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -184,6 +183,7 @@ export class TimeOffBalances { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -192,12 +192,14 @@ export class TimeOffBalances { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/time-off-balances."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -255,23 +257,15 @@ export class TimeOffBalances { `hris/v1/time-off-balances/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -293,6 +287,7 @@ export class TimeOffBalances { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -301,6 +296,7 @@ export class TimeOffBalances { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -309,6 +305,7 @@ export class TimeOffBalances { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/timesheetEntries/client/Client.ts b/src/api/resources/hris/resources/timesheetEntries/client/Client.ts index 1050b2227..703473d9b 100644 --- a/src/api/resources/hris/resources/timesheetEntries/client/Client.ts +++ b/src/api/resources/hris/resources/timesheetEntries/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace TimesheetEntries { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace TimesheetEntries { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class TimesheetEntries { - constructor(protected readonly _options: TimesheetEntries.Options) {} + protected readonly _options: TimesheetEntries.Options; + + constructor(_options: TimesheetEntries.Options) { + this._options = _options; + } /** * Returns a list of `TimesheetEntry` objects. @@ -155,23 +162,15 @@ export class TimesheetEntries { "hris/v1/timesheet-entries", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -193,6 +192,7 @@ export class TimesheetEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -201,12 +201,14 @@ export class TimesheetEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/timesheet-entries."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -251,20 +253,14 @@ export class TimesheetEntries { "hris/v1/timesheet-entries", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -292,6 +288,7 @@ export class TimesheetEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -300,12 +297,14 @@ export class TimesheetEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /hris/v1/timesheet-entries."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -355,23 +354,15 @@ export class TimesheetEntries { `hris/v1/timesheet-entries/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -393,6 +384,7 @@ export class TimesheetEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -401,6 +393,7 @@ export class TimesheetEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -409,6 +402,7 @@ export class TimesheetEntries { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -438,22 +432,14 @@ export class TimesheetEntries { "hris/v1/timesheet-entries/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -475,6 +461,7 @@ export class TimesheetEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -483,6 +470,7 @@ export class TimesheetEntries { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -491,6 +479,7 @@ export class TimesheetEntries { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/resources/webhookReceivers/client/Client.ts b/src/api/resources/hris/resources/webhookReceivers/client/Client.ts index 67d59e21a..4b616a2aa 100644 --- a/src/api/resources/hris/resources/webhookReceivers/client/Client.ts +++ b/src/api/resources/hris/resources/webhookReceivers/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace WebhookReceivers { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace WebhookReceivers { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class WebhookReceivers { - constructor(protected readonly _options: WebhookReceivers.Options) {} + protected readonly _options: WebhookReceivers.Options; + + constructor(_options: WebhookReceivers.Options) { + this._options = _options; + } /** * Returns a list of `WebhookReceiver` objects. @@ -62,22 +69,14 @@ export class WebhookReceivers { "hris/v1/webhook-receivers", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /hris/v1/webhook-receivers."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -148,20 +150,14 @@ export class WebhookReceivers { "hris/v1/webhook-receivers", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.hris.WebhookReceiverRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -186,6 +182,7 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -194,12 +191,14 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /hris/v1/webhook-receivers."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/hris/types/AccountDetails.ts b/src/api/resources/hris/types/AccountDetails.ts index 9f13eeffa..089f64c45 100644 --- a/src/api/resources/hris/types/AccountDetails.ts +++ b/src/api/resources/hris/types/AccountDetails.ts @@ -8,7 +8,7 @@ export interface AccountDetails { id?: string; integration?: string; integrationSlug?: string; - category?: Merge.hris.CategoryEnum; + category?: Merge.hris.AccountDetailsCategory; endUserOriginId?: string; endUserOrganizationName?: string; endUserEmailAddress?: string; diff --git a/src/api/resources/hris/types/AccountDetailsAndActions.ts b/src/api/resources/hris/types/AccountDetailsAndActions.ts index ec0c62b50..10b19aca0 100644 --- a/src/api/resources/hris/types/AccountDetailsAndActions.ts +++ b/src/api/resources/hris/types/AccountDetailsAndActions.ts @@ -14,7 +14,7 @@ import * as Merge from "../../../index"; */ export interface AccountDetailsAndActions { id: string; - category?: Merge.hris.CategoryEnum; + category?: Merge.hris.AccountDetailsAndActionsCategory; status: Merge.hris.AccountDetailsAndActionsStatusEnum; statusDetail?: string; endUserOriginId?: string; @@ -28,4 +28,5 @@ export interface AccountDetailsAndActions { integration?: Merge.hris.AccountDetailsAndActionsIntegration; accountType: string; completedAt: Date; + integrationSpecificFields?: Record; } diff --git a/src/api/resources/hris/types/AccountDetailsAndActionsCategory.ts b/src/api/resources/hris/types/AccountDetailsAndActionsCategory.ts new file mode 100644 index 000000000..1254b1af4 --- /dev/null +++ b/src/api/resources/hris/types/AccountDetailsAndActionsCategory.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type AccountDetailsAndActionsCategory = Merge.hris.CategoryEnum | string; diff --git a/src/api/resources/hris/types/AccountDetailsCategory.ts b/src/api/resources/hris/types/AccountDetailsCategory.ts new file mode 100644 index 000000000..7d59d5ce3 --- /dev/null +++ b/src/api/resources/hris/types/AccountDetailsCategory.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type AccountDetailsCategory = Merge.hris.CategoryEnum | string; diff --git a/src/api/resources/hris/types/AuditLogEvent.ts b/src/api/resources/hris/types/AuditLogEvent.ts index 6f1a8dce2..417817f22 100644 --- a/src/api/resources/hris/types/AuditLogEvent.ts +++ b/src/api/resources/hris/types/AuditLogEvent.ts @@ -30,6 +30,7 @@ export interface AuditLogEvent { * * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY * * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY * * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE * * `INVITED_USER` - INVITED_USER * * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED * * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED diff --git a/src/api/resources/hris/types/AuditLogEventEventType.ts b/src/api/resources/hris/types/AuditLogEventEventType.ts index edef9133e..4cb7b4586 100644 --- a/src/api/resources/hris/types/AuditLogEventEventType.ts +++ b/src/api/resources/hris/types/AuditLogEventEventType.ts @@ -12,6 +12,7 @@ import * as Merge from "../../../index"; * * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY * * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY * * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE * * `INVITED_USER` - INVITED_USER * * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED * * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED diff --git a/src/api/resources/hris/types/EventTypeEnum.ts b/src/api/resources/hris/types/EventTypeEnum.ts index 316d8531b..261c00e43 100644 --- a/src/api/resources/hris/types/EventTypeEnum.ts +++ b/src/api/resources/hris/types/EventTypeEnum.ts @@ -8,6 +8,7 @@ * * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY * * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY * * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE * * `INVITED_USER` - INVITED_USER * * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED * * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED @@ -52,6 +53,7 @@ export type EventTypeEnum = | "CREATED_TEST_API_KEY" | "DELETED_TEST_API_KEY" | "REGENERATED_PRODUCTION_API_KEY" + | "REGENERATED_WEBHOOK_SIGNATURE" | "INVITED_USER" | "TWO_FACTOR_AUTH_ENABLED" | "TWO_FACTOR_AUTH_DISABLED" @@ -95,6 +97,7 @@ export const EventTypeEnum = { CreatedTestApiKey: "CREATED_TEST_API_KEY", DeletedTestApiKey: "DELETED_TEST_API_KEY", RegeneratedProductionApiKey: "REGENERATED_PRODUCTION_API_KEY", + RegeneratedWebhookSignature: "REGENERATED_WEBHOOK_SIGNATURE", InvitedUser: "INVITED_USER", TwoFactorAuthEnabled: "TWO_FACTOR_AUTH_ENABLED", TwoFactorAuthDisabled: "TWO_FACTOR_AUTH_DISABLED", diff --git a/src/api/resources/hris/types/index.ts b/src/api/resources/hris/types/index.ts index c8ff15989..01b502a34 100644 --- a/src/api/resources/hris/types/index.ts +++ b/src/api/resources/hris/types/index.ts @@ -1,4 +1,6 @@ +export * from "./AccountDetailsCategory"; export * from "./AccountDetails"; +export * from "./AccountDetailsAndActionsCategory"; export * from "./AccountDetailsAndActions"; export * from "./AccountDetailsAndActionsIntegration"; export * from "./AccountDetailsAndActionsStatusEnum"; diff --git a/src/api/resources/index.ts b/src/api/resources/index.ts index f63211951..2be011c93 100644 --- a/src/api/resources/index.ts +++ b/src/api/resources/index.ts @@ -1,6 +1,6 @@ export * as ats from "./ats"; +export * as crm from "./crm"; export * as filestorage from "./filestorage"; export * as hris from "./hris"; export * as ticketing from "./ticketing"; -export * as crm from "./crm"; export * as accounting from "./accounting"; diff --git a/src/api/resources/ticketing/client/Client.ts b/src/api/resources/ticketing/client/Client.ts index 149776271..93deb1982 100644 --- a/src/api/resources/ticketing/client/Client.ts +++ b/src/api/resources/ticketing/client/Client.ts @@ -41,11 +41,14 @@ export declare namespace Ticketing { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } } export class Ticketing { + protected readonly _options: Ticketing.Options; protected _accountDetails: AccountDetails | undefined; protected _accountToken: AccountToken | undefined; protected _accounts: Accounts | undefined; @@ -75,7 +78,9 @@ export class Ticketing { protected _users: Users | undefined; protected _webhookReceivers: WebhookReceivers | undefined; - constructor(protected readonly _options: Ticketing.Options) {} + constructor(_options: Ticketing.Options) { + this._options = _options; + } public get accountDetails(): AccountDetails { return (this._accountDetails ??= new AccountDetails(this._options)); diff --git a/src/api/resources/ticketing/resources/accountDetails/client/Client.ts b/src/api/resources/ticketing/resources/accountDetails/client/Client.ts index d04bd2ac4..b4295afa5 100644 --- a/src/api/resources/ticketing/resources/accountDetails/client/Client.ts +++ b/src/api/resources/ticketing/resources/accountDetails/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AccountDetails { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AccountDetails { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AccountDetails { - constructor(protected readonly _options: AccountDetails.Options) {} + protected readonly _options: AccountDetails.Options; + + constructor(_options: AccountDetails.Options) { + this._options = _options; + } /** * Get details for a linked account. @@ -62,22 +69,14 @@ export class AccountDetails { "ticketing/v1/account-details", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class AccountDetails { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class AccountDetails { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/account-details."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/accountToken/client/Client.ts b/src/api/resources/ticketing/resources/accountToken/client/Client.ts index c72412402..8fb30482b 100644 --- a/src/api/resources/ticketing/resources/accountToken/client/Client.ts +++ b/src/api/resources/ticketing/resources/accountToken/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AccountToken { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AccountToken { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AccountToken { - constructor(protected readonly _options: AccountToken.Options) {} + protected readonly _options: AccountToken.Options; + + constructor(_options: AccountToken.Options) { + this._options = _options; + } /** * Returns the account token for the end user with the provided public token. @@ -65,22 +72,14 @@ export class AccountToken { `ticketing/v1/account-token/${encodeURIComponent(publicToken)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -102,6 +101,7 @@ export class AccountToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -110,6 +110,7 @@ export class AccountToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -118,6 +119,7 @@ export class AccountToken { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/accounts/client/Client.ts b/src/api/resources/ticketing/resources/accounts/client/Client.ts index 8a634460d..6ac2681a3 100644 --- a/src/api/resources/ticketing/resources/accounts/client/Client.ts +++ b/src/api/resources/ticketing/resources/accounts/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Accounts { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Accounts { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Accounts { - constructor(protected readonly _options: Accounts.Options) {} + protected readonly _options: Accounts.Options; + + constructor(_options: Accounts.Options) { + this._options = _options; + } /** * Returns a list of `Account` objects. @@ -118,23 +125,15 @@ export class Accounts { "ticketing/v1/accounts", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -156,6 +155,7 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -164,12 +164,14 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/accounts."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -215,23 +217,15 @@ export class Accounts { `ticketing/v1/accounts/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -253,6 +247,7 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -261,12 +256,14 @@ export class Accounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/accounts/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/asyncPassthrough/client/Client.ts b/src/api/resources/ticketing/resources/asyncPassthrough/client/Client.ts index b1ff2799a..d1666fee6 100644 --- a/src/api/resources/ticketing/resources/asyncPassthrough/client/Client.ts +++ b/src/api/resources/ticketing/resources/asyncPassthrough/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AsyncPassthrough { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AsyncPassthrough { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AsyncPassthrough { - constructor(protected readonly _options: AsyncPassthrough.Options) {} + protected readonly _options: AsyncPassthrough.Options; + + constructor(_options: AsyncPassthrough.Options) { + this._options = _options; + } /** * Asynchronously pull data from an endpoint not currently supported by Merge. @@ -68,20 +75,14 @@ export class AsyncPassthrough { "ticketing/v1/async-passthrough", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.ticketing.DataPassthroughRequest.jsonOrThrow(request, { @@ -108,6 +109,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -116,6 +118,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -124,6 +127,7 @@ export class AsyncPassthrough { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -156,22 +160,14 @@ export class AsyncPassthrough { `ticketing/v1/async-passthrough/${encodeURIComponent(asyncPassthroughReceiptId)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -193,6 +189,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -201,6 +198,7 @@ export class AsyncPassthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -209,6 +207,7 @@ export class AsyncPassthrough { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/attachments/client/Client.ts b/src/api/resources/ticketing/resources/attachments/client/Client.ts index d8520356d..3999dd4ab 100644 --- a/src/api/resources/ticketing/resources/attachments/client/Client.ts +++ b/src/api/resources/ticketing/resources/attachments/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -18,6 +19,8 @@ export declare namespace Attachments { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -31,12 +34,16 @@ export declare namespace Attachments { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Attachments { - constructor(protected readonly _options: Attachments.Options) {} + protected readonly _options: Attachments.Options; + + constructor(_options: Attachments.Options) { + this._options = _options; + } /** * Returns a list of `Attachment` objects. @@ -134,23 +141,15 @@ export class Attachments { "ticketing/v1/attachments", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -172,6 +171,7 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -180,12 +180,14 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/attachments."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -230,20 +232,14 @@ export class Attachments { "ticketing/v1/attachments", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -271,6 +267,7 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -279,12 +276,14 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ticketing/v1/attachments."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -334,23 +333,15 @@ export class Attachments { `ticketing/v1/attachments/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -372,6 +363,7 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -380,12 +372,14 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/attachments/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -424,23 +418,15 @@ export class Attachments { `ticketing/v1/attachments/${encodeURIComponent(id)}/download`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", responseType: "streaming", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, @@ -454,6 +440,7 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -462,6 +449,7 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -470,6 +458,7 @@ export class Attachments { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -499,22 +488,14 @@ export class Attachments { "ticketing/v1/attachments/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -536,6 +517,7 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -544,6 +526,7 @@ export class Attachments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -552,6 +535,7 @@ export class Attachments { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/auditTrail/client/Client.ts b/src/api/resources/ticketing/resources/auditTrail/client/Client.ts index 7d8819424..86c64188e 100644 --- a/src/api/resources/ticketing/resources/auditTrail/client/Client.ts +++ b/src/api/resources/ticketing/resources/auditTrail/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AuditTrail { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AuditTrail { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AuditTrail { - constructor(protected readonly _options: AuditTrail.Options) {} + protected readonly _options: AuditTrail.Options; + + constructor(_options: AuditTrail.Options) { + this._options = _options; + } /** * Gets a list of audit trail events. @@ -91,23 +98,15 @@ export class AuditTrail { "ticketing/v1/audit-trail", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -129,6 +128,7 @@ export class AuditTrail { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -137,12 +137,14 @@ export class AuditTrail { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/audit-trail."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/auditTrail/client/requests/AuditTrailListRequest.ts b/src/api/resources/ticketing/resources/auditTrail/client/requests/AuditTrailListRequest.ts index b3187c0db..99ee8b1ad 100644 --- a/src/api/resources/ticketing/resources/auditTrail/client/requests/AuditTrailListRequest.ts +++ b/src/api/resources/ticketing/resources/auditTrail/client/requests/AuditTrailListRequest.ts @@ -16,7 +16,7 @@ export interface AuditTrailListRequest { */ endDate?: string; /** - * If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` + * If included, will only include events with the given event type. Possible values include: `CREATED_REMOTE_PRODUCTION_API_KEY`, `DELETED_REMOTE_PRODUCTION_API_KEY`, `CREATED_TEST_API_KEY`, `DELETED_TEST_API_KEY`, `REGENERATED_PRODUCTION_API_KEY`, `REGENERATED_WEBHOOK_SIGNATURE`, `INVITED_USER`, `TWO_FACTOR_AUTH_ENABLED`, `TWO_FACTOR_AUTH_DISABLED`, `DELETED_LINKED_ACCOUNT`, `DELETED_ALL_COMMON_MODELS_FOR_LINKED_ACCOUNT`, `CREATED_DESTINATION`, `DELETED_DESTINATION`, `CHANGED_DESTINATION`, `CHANGED_SCOPES`, `CHANGED_PERSONAL_INFORMATION`, `CHANGED_ORGANIZATION_SETTINGS`, `ENABLED_INTEGRATION`, `DISABLED_INTEGRATION`, `ENABLED_CATEGORY`, `DISABLED_CATEGORY`, `CHANGED_PASSWORD`, `RESET_PASSWORD`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `ENABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_ORGANIZATION`, `DISABLED_REDACT_UNMAPPED_DATA_FOR_LINKED_ACCOUNT`, `CREATED_INTEGRATION_WIDE_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_FIELD_MAPPING`, `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, `END_USER_CREDENTIALS_ACCESSED` */ eventType?: string; /** diff --git a/src/api/resources/ticketing/resources/availableActions/client/Client.ts b/src/api/resources/ticketing/resources/availableActions/client/Client.ts index 3f79a98a1..a761b213f 100644 --- a/src/api/resources/ticketing/resources/availableActions/client/Client.ts +++ b/src/api/resources/ticketing/resources/availableActions/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace AvailableActions { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace AvailableActions { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class AvailableActions { - constructor(protected readonly _options: AvailableActions.Options) {} + protected readonly _options: AvailableActions.Options; + + constructor(_options: AvailableActions.Options) { + this._options = _options; + } /** * Returns a list of models and actions available for an account. @@ -62,22 +69,14 @@ export class AvailableActions { "ticketing/v1/available-actions", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class AvailableActions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,6 +107,7 @@ export class AvailableActions { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -115,6 +116,7 @@ export class AvailableActions { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/collections/client/Client.ts b/src/api/resources/ticketing/resources/collections/client/Client.ts index 21d7115e9..907937013 100644 --- a/src/api/resources/ticketing/resources/collections/client/Client.ts +++ b/src/api/resources/ticketing/resources/collections/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Collections { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Collections { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Collections { - constructor(protected readonly _options: Collections.Options) {} + protected readonly _options: Collections.Options; + + constructor(_options: Collections.Options) { + this._options = _options; + } /** * Returns a list of `Collection` objects. @@ -143,23 +150,15 @@ export class Collections { "ticketing/v1/collections", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -181,6 +180,7 @@ export class Collections { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -189,12 +189,14 @@ export class Collections { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/collections."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -258,23 +260,15 @@ export class Collections { `ticketing/v1/collections/${encodeURIComponent(collectionId)}/viewers`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -296,6 +290,7 @@ export class Collections { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -304,6 +299,7 @@ export class Collections { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -312,6 +308,7 @@ export class Collections { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -369,23 +366,15 @@ export class Collections { `ticketing/v1/collections/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -407,6 +396,7 @@ export class Collections { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -415,12 +405,14 @@ export class Collections { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/collections/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/comments/client/Client.ts b/src/api/resources/ticketing/resources/comments/client/Client.ts index 0996c919b..c35c93af0 100644 --- a/src/api/resources/ticketing/resources/comments/client/Client.ts +++ b/src/api/resources/ticketing/resources/comments/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Comments { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Comments { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Comments { - constructor(protected readonly _options: Comments.Options) {} + protected readonly _options: Comments.Options; + + constructor(_options: Comments.Options) { + this._options = _options; + } /** * Returns a list of `Comment` objects. @@ -135,23 +142,15 @@ export class Comments { "ticketing/v1/comments", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -173,6 +172,7 @@ export class Comments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -181,12 +181,14 @@ export class Comments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/comments."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -231,20 +233,14 @@ export class Comments { "ticketing/v1/comments", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -270,6 +266,7 @@ export class Comments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -278,12 +275,14 @@ export class Comments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ticketing/v1/comments."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -335,23 +334,15 @@ export class Comments { `ticketing/v1/comments/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -373,6 +364,7 @@ export class Comments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -381,12 +373,14 @@ export class Comments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/comments/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -416,22 +410,14 @@ export class Comments { "ticketing/v1/comments/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -453,6 +439,7 @@ export class Comments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -461,6 +448,7 @@ export class Comments { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -469,6 +457,7 @@ export class Comments { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/contacts/client/Client.ts b/src/api/resources/ticketing/resources/contacts/client/Client.ts index 278d74cdc..78c67b2d6 100644 --- a/src/api/resources/ticketing/resources/contacts/client/Client.ts +++ b/src/api/resources/ticketing/resources/contacts/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Contacts { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Contacts { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Contacts { - constructor(protected readonly _options: Contacts.Options) {} + protected readonly _options: Contacts.Options; + + constructor(_options: Contacts.Options) { + this._options = _options; + } /** * Returns a list of `Contact` objects. @@ -123,23 +130,15 @@ export class Contacts { "ticketing/v1/contacts", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -161,6 +160,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -169,12 +169,14 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/contacts."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -219,20 +221,14 @@ export class Contacts { "ticketing/v1/contacts", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -260,6 +256,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -268,12 +265,14 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ticketing/v1/contacts."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -323,23 +322,15 @@ export class Contacts { `ticketing/v1/contacts/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -361,6 +352,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -369,12 +361,14 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/contacts/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -404,22 +398,14 @@ export class Contacts { "ticketing/v1/contacts/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -441,6 +427,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -449,6 +436,7 @@ export class Contacts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -457,6 +445,7 @@ export class Contacts { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/deleteAccount/client/Client.ts b/src/api/resources/ticketing/resources/deleteAccount/client/Client.ts index 2fb167a10..94f9575f9 100644 --- a/src/api/resources/ticketing/resources/deleteAccount/client/Client.ts +++ b/src/api/resources/ticketing/resources/deleteAccount/client/Client.ts @@ -4,6 +4,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -15,6 +16,8 @@ export declare namespace DeleteAccount { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -28,12 +31,16 @@ export declare namespace DeleteAccount { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class DeleteAccount { - constructor(protected readonly _options: DeleteAccount.Options) {} + protected readonly _options: DeleteAccount.Options; + + constructor(_options: DeleteAccount.Options) { + this._options = _options; + } /** * Delete a linked account. @@ -56,22 +63,14 @@ export class DeleteAccount { "ticketing/v1/delete-account", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -84,6 +83,7 @@ export class DeleteAccount { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -92,12 +92,14 @@ export class DeleteAccount { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ticketing/v1/delete-account."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/fieldMapping/client/Client.ts b/src/api/resources/ticketing/resources/fieldMapping/client/Client.ts index 4ac0f0031..df9bd523b 100644 --- a/src/api/resources/ticketing/resources/fieldMapping/client/Client.ts +++ b/src/api/resources/ticketing/resources/fieldMapping/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace FieldMapping { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace FieldMapping { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class FieldMapping { - constructor(protected readonly _options: FieldMapping.Options) {} + protected readonly _options: FieldMapping.Options; + + constructor(_options: FieldMapping.Options) { + this._options = _options; + } /** * Get all Field Mappings for this Linked Account. Field Mappings are mappings between third-party Remote Fields and user defined Merge fields. [Learn more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). @@ -71,23 +78,15 @@ export class FieldMapping { "ticketing/v1/field-mappings", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -109,6 +108,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -117,12 +117,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/field-mappings."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -168,20 +170,14 @@ export class FieldMapping { "ticketing/v1/field-mappings", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -209,6 +205,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -217,12 +214,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ticketing/v1/field-mappings."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -255,22 +254,14 @@ export class FieldMapping { `ticketing/v1/field-mappings/${encodeURIComponent(fieldMappingId)}`, ), method: "DELETE", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -292,6 +283,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -300,6 +292,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -308,6 +301,7 @@ export class FieldMapping { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -345,20 +339,14 @@ export class FieldMapping { `ticketing/v1/field-mappings/${encodeURIComponent(fieldMappingId)}`, ), method: "PATCH", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.ticketing.PatchedEditFieldMappingRequest.jsonOrThrow(request, { @@ -385,6 +373,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -393,6 +382,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -401,6 +391,7 @@ export class FieldMapping { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -443,23 +434,15 @@ export class FieldMapping { "ticketing/v1/remote-fields", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -481,6 +464,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -489,12 +473,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/remote-fields."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -524,22 +510,14 @@ export class FieldMapping { "ticketing/v1/target-fields", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -561,6 +539,7 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -569,12 +548,14 @@ export class FieldMapping { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/target-fields."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/forceResync/client/Client.ts b/src/api/resources/ticketing/resources/forceResync/client/Client.ts index 3f3348e9a..5ec2158c2 100644 --- a/src/api/resources/ticketing/resources/forceResync/client/Client.ts +++ b/src/api/resources/ticketing/resources/forceResync/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace ForceResync { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace ForceResync { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class ForceResync { - constructor(protected readonly _options: ForceResync.Options) {} + protected readonly _options: ForceResync.Options; + + constructor(_options: ForceResync.Options) { + this._options = _options; + } /** * Force re-sync of all models. This endpoint is available for monthly, quarterly, and highest sync frequency customers on the Professional or Enterprise plans. Doing so will consume a sync credit for the relevant linked account. Force re-syncs can also be triggered manually in the Merge Dashboard and is available for all customers. @@ -62,22 +69,14 @@ export class ForceResync { "ticketing/v1/sync-status/resync", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class ForceResync { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,6 +107,7 @@ export class ForceResync { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -115,6 +116,7 @@ export class ForceResync { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/generateKey/client/Client.ts b/src/api/resources/ticketing/resources/generateKey/client/Client.ts index 46638a5af..09f667d2f 100644 --- a/src/api/resources/ticketing/resources/generateKey/client/Client.ts +++ b/src/api/resources/ticketing/resources/generateKey/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace GenerateKey { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace GenerateKey { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class GenerateKey { - constructor(protected readonly _options: GenerateKey.Options) {} + protected readonly _options: GenerateKey.Options; + + constructor(_options: GenerateKey.Options) { + this._options = _options; + } /** * Create a remote key. @@ -67,20 +74,14 @@ export class GenerateKey { "ticketing/v1/generate-key", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.ticketing.GenerateRemoteKeyRequest.jsonOrThrow(request, { @@ -107,6 +108,7 @@ export class GenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -115,12 +117,14 @@ export class GenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ticketing/v1/generate-key."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/index.ts b/src/api/resources/ticketing/resources/index.ts index ca6db5fd5..ba2648211 100644 --- a/src/api/resources/ticketing/resources/index.ts +++ b/src/api/resources/ticketing/resources/index.ts @@ -6,6 +6,8 @@ export * as comments from "./comments"; export * from "./comments/types"; export * as issues from "./issues"; export * from "./issues/types"; +export * as linkToken from "./linkToken"; +export * from "./linkToken/types"; export * as linkedAccounts from "./linkedAccounts"; export * from "./linkedAccounts/types"; export * as projects from "./projects"; @@ -25,7 +27,6 @@ export * as scopes from "./scopes"; export * as deleteAccount from "./deleteAccount"; export * as fieldMapping from "./fieldMapping"; export * as generateKey from "./generateKey"; -export * as linkToken from "./linkToken"; export * as passthrough from "./passthrough"; export * as regenerateKey from "./regenerateKey"; export * as roles from "./roles"; diff --git a/src/api/resources/ticketing/resources/issues/client/Client.ts b/src/api/resources/ticketing/resources/issues/client/Client.ts index e6e59301e..45dde0397 100644 --- a/src/api/resources/ticketing/resources/issues/client/Client.ts +++ b/src/api/resources/ticketing/resources/issues/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Issues { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Issues { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Issues { - constructor(protected readonly _options: Issues.Options) {} + protected readonly _options: Issues.Options; + + constructor(_options: Issues.Options) { + this._options = _options; + } /** * Gets all issues for Organization. @@ -140,23 +147,15 @@ export class Issues { "ticketing/v1/issues", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -178,6 +177,7 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -186,12 +186,14 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/issues."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -224,22 +226,14 @@ export class Issues { `ticketing/v1/issues/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -261,6 +255,7 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -269,12 +264,14 @@ export class Issues { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/issues/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/linkToken/client/Client.ts b/src/api/resources/ticketing/resources/linkToken/client/Client.ts index 18712d6c4..c0b48d7f7 100644 --- a/src/api/resources/ticketing/resources/linkToken/client/Client.ts +++ b/src/api/resources/ticketing/resources/linkToken/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace LinkToken { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace LinkToken { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class LinkToken { - constructor(protected readonly _options: LinkToken.Options) {} + protected readonly _options: LinkToken.Options; + + constructor(_options: LinkToken.Options) { + this._options = _options; + } /** * Creates a link token to be used when linking a new end user. @@ -70,20 +77,14 @@ export class LinkToken { "ticketing/v1/link-token", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.ticketing.EndUserDetailsRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), @@ -108,6 +109,7 @@ export class LinkToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -116,12 +118,14 @@ export class LinkToken { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ticketing/v1/link-token."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/linkToken/client/requests/EndUserDetailsRequest.ts b/src/api/resources/ticketing/resources/linkToken/client/requests/EndUserDetailsRequest.ts index dd57088aa..c09546057 100644 --- a/src/api/resources/ticketing/resources/linkToken/client/requests/EndUserDetailsRequest.ts +++ b/src/api/resources/ticketing/resources/linkToken/client/requests/EndUserDetailsRequest.ts @@ -43,7 +43,7 @@ export interface EndUserDetailsRequest { * * `en` - en * * `de` - de */ - language?: Merge.ticketing.LanguageEnum; + language?: Merge.ticketing.EndUserDetailsRequestLanguage; /** The boolean that indicates whether initial, periodic, and force syncs will be disabled. */ areSyncsDisabled?: boolean; /** A JSON object containing integration-specific configuration options. */ diff --git a/src/api/resources/ticketing/resources/linkToken/index.ts b/src/api/resources/ticketing/resources/linkToken/index.ts index 5ec76921e..c9240f83b 100644 --- a/src/api/resources/ticketing/resources/linkToken/index.ts +++ b/src/api/resources/ticketing/resources/linkToken/index.ts @@ -1 +1,2 @@ +export * from "./types"; export * from "./client"; diff --git a/src/api/resources/ticketing/resources/linkToken/types/EndUserDetailsRequestLanguage.ts b/src/api/resources/ticketing/resources/linkToken/types/EndUserDetailsRequestLanguage.ts new file mode 100644 index 000000000..8ca0c442b --- /dev/null +++ b/src/api/resources/ticketing/resources/linkToken/types/EndUserDetailsRequestLanguage.ts @@ -0,0 +1,13 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../../../index"; + +/** + * The following subset of IETF language tags can be used to configure localization. + * + * * `en` - en + * * `de` - de + */ +export type EndUserDetailsRequestLanguage = Merge.ticketing.LanguageEnum | string; diff --git a/src/api/resources/ticketing/resources/linkToken/types/index.ts b/src/api/resources/ticketing/resources/linkToken/types/index.ts new file mode 100644 index 000000000..c90e13c37 --- /dev/null +++ b/src/api/resources/ticketing/resources/linkToken/types/index.ts @@ -0,0 +1 @@ +export * from "./EndUserDetailsRequestLanguage"; diff --git a/src/api/resources/ticketing/resources/linkedAccounts/client/Client.ts b/src/api/resources/ticketing/resources/linkedAccounts/client/Client.ts index 05837a89d..c91e4c625 100644 --- a/src/api/resources/ticketing/resources/linkedAccounts/client/Client.ts +++ b/src/api/resources/ticketing/resources/linkedAccounts/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace LinkedAccounts { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace LinkedAccounts { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class LinkedAccounts { - constructor(protected readonly _options: LinkedAccounts.Options) {} + protected readonly _options: LinkedAccounts.Options; + + constructor(_options: LinkedAccounts.Options) { + this._options = _options; + } /** * List linked accounts for your organization. @@ -135,23 +142,15 @@ export class LinkedAccounts { "ticketing/v1/linked-accounts", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -173,6 +172,7 @@ export class LinkedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -181,12 +181,14 @@ export class LinkedAccounts { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/linked-accounts."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/passthrough/client/Client.ts b/src/api/resources/ticketing/resources/passthrough/client/Client.ts index 9b9d3201e..77c20c6ec 100644 --- a/src/api/resources/ticketing/resources/passthrough/client/Client.ts +++ b/src/api/resources/ticketing/resources/passthrough/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Passthrough { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Passthrough { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Passthrough { - constructor(protected readonly _options: Passthrough.Options) {} + protected readonly _options: Passthrough.Options; + + constructor(_options: Passthrough.Options) { + this._options = _options; + } /** * Pull data from an endpoint not currently supported by Merge. @@ -68,20 +75,14 @@ export class Passthrough { "ticketing/v1/passthrough", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.ticketing.DataPassthroughRequest.jsonOrThrow(request, { @@ -108,6 +109,7 @@ export class Passthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -116,12 +118,14 @@ export class Passthrough { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ticketing/v1/passthrough."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/projects/client/Client.ts b/src/api/resources/ticketing/resources/projects/client/Client.ts index 729f427ae..faad6b3a5 100644 --- a/src/api/resources/ticketing/resources/projects/client/Client.ts +++ b/src/api/resources/ticketing/resources/projects/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Projects { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Projects { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Projects { - constructor(protected readonly _options: Projects.Options) {} + protected readonly _options: Projects.Options; + + constructor(_options: Projects.Options) { + this._options = _options; + } /** * Returns a list of `Project` objects. @@ -118,23 +125,15 @@ export class Projects { "ticketing/v1/projects", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -156,6 +155,7 @@ export class Projects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -164,12 +164,14 @@ export class Projects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/projects."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -215,23 +217,15 @@ export class Projects { `ticketing/v1/projects/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -253,6 +247,7 @@ export class Projects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -261,12 +256,14 @@ export class Projects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/projects/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -330,23 +327,15 @@ export class Projects { `ticketing/v1/projects/${encodeURIComponent(parentId)}/users`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -368,6 +357,7 @@ export class Projects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -376,6 +366,7 @@ export class Projects { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -384,6 +375,7 @@ export class Projects { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/regenerateKey/client/Client.ts b/src/api/resources/ticketing/resources/regenerateKey/client/Client.ts index 0d3a13694..95733f427 100644 --- a/src/api/resources/ticketing/resources/regenerateKey/client/Client.ts +++ b/src/api/resources/ticketing/resources/regenerateKey/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import * as serializers from "../../../../../../serialization/index"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace RegenerateKey { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace RegenerateKey { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class RegenerateKey { - constructor(protected readonly _options: RegenerateKey.Options) {} + protected readonly _options: RegenerateKey.Options; + + constructor(_options: RegenerateKey.Options) { + this._options = _options; + } /** * Exchange remote keys. @@ -67,20 +74,14 @@ export class RegenerateKey { "ticketing/v1/regenerate-key", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.ticketing.RemoteKeyForRegenerationRequest.jsonOrThrow(request, { @@ -107,6 +108,7 @@ export class RegenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -115,12 +117,14 @@ export class RegenerateKey { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ticketing/v1/regenerate-key."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/roles/client/Client.ts b/src/api/resources/ticketing/resources/roles/client/Client.ts index 6a33c37df..548fc5edc 100644 --- a/src/api/resources/ticketing/resources/roles/client/Client.ts +++ b/src/api/resources/ticketing/resources/roles/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Roles { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Roles { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Roles { - constructor(protected readonly _options: Roles.Options) {} + protected readonly _options: Roles.Options; + + constructor(_options: Roles.Options) { + this._options = _options; + } /** * Returns a list of `Role` objects. @@ -118,23 +125,15 @@ export class Roles { "ticketing/v1/roles", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -156,6 +155,7 @@ export class Roles { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -164,12 +164,14 @@ export class Roles { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/roles."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -215,23 +217,15 @@ export class Roles { `ticketing/v1/roles/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -253,6 +247,7 @@ export class Roles { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -261,12 +256,14 @@ export class Roles { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/roles/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/scopes/client/Client.ts b/src/api/resources/ticketing/resources/scopes/client/Client.ts index 313845b0a..124240bab 100644 --- a/src/api/resources/ticketing/resources/scopes/client/Client.ts +++ b/src/api/resources/ticketing/resources/scopes/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Scopes { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Scopes { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Scopes { - constructor(protected readonly _options: Scopes.Options) {} + protected readonly _options: Scopes.Options; + + constructor(_options: Scopes.Options) { + this._options = _options; + } /** * Get the default permissions for Merge Common Models and fields across all Linked Accounts of a given category. [Learn more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). @@ -62,22 +69,14 @@ export class Scopes { "ticketing/v1/default-scopes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,12 +107,14 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/default-scopes."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -142,22 +144,14 @@ export class Scopes { "ticketing/v1/linked-account-scopes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -179,6 +173,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -187,6 +182,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -195,6 +191,7 @@ export class Scopes { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -250,20 +247,14 @@ export class Scopes { "ticketing/v1/linked-account-scopes", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.ticketing.LinkedAccountCommonModelScopeDeserializerRequest.jsonOrThrow(request, { @@ -290,6 +281,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -298,6 +290,7 @@ export class Scopes { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -306,6 +299,7 @@ export class Scopes { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/syncStatus/client/Client.ts b/src/api/resources/ticketing/resources/syncStatus/client/Client.ts index 7fbb25414..74b3f2013 100644 --- a/src/api/resources/ticketing/resources/syncStatus/client/Client.ts +++ b/src/api/resources/ticketing/resources/syncStatus/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace SyncStatus { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace SyncStatus { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class SyncStatus { - constructor(protected readonly _options: SyncStatus.Options) {} + protected readonly _options: SyncStatus.Options; + + constructor(_options: SyncStatus.Options) { + this._options = _options; + } /** * Get sync status for the current sync and the most recently finished sync. `last_sync_start` represents the most recent time any sync began. `last_sync_finished` represents the most recent time any sync completed. These timestamps may correspond to different sync instances which may result in a sync start time being later than a separate sync completed time. To ensure you are retrieving the latest available data reference the `last_sync_finished` timestamp where `last_sync_result` is `DONE`. Possible values for `status` and `last_sync_result` are `DISABLED`, `DONE`, `FAILED`, `PARTIALLY_SYNCED`, `PAUSED`, `SYNCING`. Learn more about sync status in our [Help Center](https://help.merge.dev/en/articles/8184193-merge-sync-statuses). @@ -75,23 +82,15 @@ export class SyncStatus { "ticketing/v1/sync-status", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -113,6 +112,7 @@ export class SyncStatus { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -121,12 +121,14 @@ export class SyncStatus { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/sync-status."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/tags/client/Client.ts b/src/api/resources/ticketing/resources/tags/client/Client.ts index da3b0822d..9efefdc8d 100644 --- a/src/api/resources/ticketing/resources/tags/client/Client.ts +++ b/src/api/resources/ticketing/resources/tags/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Tags { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Tags { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Tags { - constructor(protected readonly _options: Tags.Options) {} + protected readonly _options: Tags.Options; + + constructor(_options: Tags.Options) { + this._options = _options; + } /** * Returns a list of `Tag` objects. @@ -118,23 +125,15 @@ export class Tags { "ticketing/v1/tags", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -156,6 +155,7 @@ export class Tags { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -164,12 +164,14 @@ export class Tags { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/tags."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -215,23 +217,15 @@ export class Tags { `ticketing/v1/tags/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -253,6 +247,7 @@ export class Tags { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -261,12 +256,14 @@ export class Tags { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/tags/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/teams/client/Client.ts b/src/api/resources/ticketing/resources/teams/client/Client.ts index 170569e4a..e2084e8c6 100644 --- a/src/api/resources/ticketing/resources/teams/client/Client.ts +++ b/src/api/resources/ticketing/resources/teams/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Teams { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Teams { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Teams { - constructor(protected readonly _options: Teams.Options) {} + protected readonly _options: Teams.Options; + + constructor(_options: Teams.Options) { + this._options = _options; + } /** * Returns a list of `Team` objects. @@ -118,23 +125,15 @@ export class Teams { "ticketing/v1/teams", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -156,6 +155,7 @@ export class Teams { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -164,12 +164,14 @@ export class Teams { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/teams."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -215,23 +217,15 @@ export class Teams { `ticketing/v1/teams/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -253,6 +247,7 @@ export class Teams { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -261,12 +256,14 @@ export class Teams { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/teams/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/tickets/client/Client.ts b/src/api/resources/ticketing/resources/tickets/client/Client.ts index 6067f4b5d..9e4c4e4da 100644 --- a/src/api/resources/ticketing/resources/tickets/client/Client.ts +++ b/src/api/resources/ticketing/resources/tickets/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Tickets { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Tickets { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Tickets { - constructor(protected readonly _options: Tickets.Options) {} + protected readonly _options: Tickets.Options; + + constructor(_options: Tickets.Options) { + this._options = _options; + } /** * Returns a list of `Ticket` objects. @@ -238,23 +245,15 @@ export class Tickets { "ticketing/v1/tickets", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -276,6 +275,7 @@ export class Tickets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -284,12 +284,14 @@ export class Tickets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/tickets."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -334,20 +336,14 @@ export class Tickets { "ticketing/v1/tickets", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -373,6 +369,7 @@ export class Tickets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -381,12 +378,14 @@ export class Tickets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling POST /ticketing/v1/tickets."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -457,23 +456,15 @@ export class Tickets { `ticketing/v1/tickets/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -495,6 +486,7 @@ export class Tickets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -503,12 +495,14 @@ export class Tickets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/tickets/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -556,20 +550,14 @@ export class Tickets { `ticketing/v1/tickets/${encodeURIComponent(id)}`, ), method: "PATCH", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", queryParameters: _queryParams, requestType: "json", @@ -597,6 +585,7 @@ export class Tickets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -605,12 +594,14 @@ export class Tickets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling PATCH /ticketing/v1/tickets/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -674,23 +665,15 @@ export class Tickets { `ticketing/v1/tickets/${encodeURIComponent(ticketId)}/viewers`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -712,6 +695,7 @@ export class Tickets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -720,6 +704,7 @@ export class Tickets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -728,6 +713,7 @@ export class Tickets { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -760,22 +746,14 @@ export class Tickets { `ticketing/v1/tickets/meta/patch/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -797,6 +775,7 @@ export class Tickets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -805,6 +784,7 @@ export class Tickets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -813,6 +793,7 @@ export class Tickets { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -820,20 +801,33 @@ export class Tickets { /** * Returns metadata for `Ticket` POSTs. * + * @param {Merge.ticketing.TicketsMetaPostRetrieveRequest} request * @param {Tickets.RequestOptions} requestOptions - Request-specific configuration. * * @example * await client.ticketing.tickets.metaPostRetrieve() */ public metaPostRetrieve( + request: Merge.ticketing.TicketsMetaPostRetrieveRequest = {}, requestOptions?: Tickets.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__metaPostRetrieve(requestOptions)); + return core.HttpResponsePromise.fromPromise(this.__metaPostRetrieve(request, requestOptions)); } private async __metaPostRetrieve( + request: Merge.ticketing.TicketsMetaPostRetrieveRequest = {}, requestOptions?: Tickets.RequestOptions, ): Promise> { + const { collectionId, ticketType } = request; + const _queryParams: Record = {}; + if (collectionId != null) { + _queryParams["collection_id"] = collectionId; + } + + if (ticketType != null) { + _queryParams["ticket_type"] = ticketType; + } + const _response = await (this._options.fetcher ?? core.fetcher)({ url: urlJoin( (await core.Supplier.get(this._options.baseUrl)) ?? @@ -842,22 +836,15 @@ export class Tickets { "ticketing/v1/tickets/meta/post", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), + queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -879,6 +866,7 @@ export class Tickets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -887,6 +875,7 @@ export class Tickets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -895,6 +884,7 @@ export class Tickets { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -919,8 +909,16 @@ export class Tickets { request: Merge.ticketing.TicketsRemoteFieldClassesListRequest = {}, requestOptions?: Tickets.RequestOptions, ): Promise> { - const { cursor, ids, includeDeletedData, includeRemoteData, includeShellData, isCommonModelField, pageSize } = - request; + const { + cursor, + ids, + includeDeletedData, + includeRemoteData, + includeShellData, + isCommonModelField, + isCustom, + pageSize, + } = request; const _queryParams: Record = {}; if (cursor != null) { _queryParams["cursor"] = cursor; @@ -946,6 +944,10 @@ export class Tickets { _queryParams["is_common_model_field"] = isCommonModelField.toString(); } + if (isCustom != null) { + _queryParams["is_custom"] = isCustom.toString(); + } + if (pageSize != null) { _queryParams["page_size"] = pageSize.toString(); } @@ -958,23 +960,15 @@ export class Tickets { "ticketing/v1/tickets/remote-field-classes", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -996,6 +990,7 @@ export class Tickets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -1004,6 +999,7 @@ export class Tickets { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -1012,6 +1008,7 @@ export class Tickets { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/tickets/client/requests/TicketsMetaPostRetrieveRequest.ts b/src/api/resources/ticketing/resources/tickets/client/requests/TicketsMetaPostRetrieveRequest.ts new file mode 100644 index 000000000..808f42b28 --- /dev/null +++ b/src/api/resources/ticketing/resources/tickets/client/requests/TicketsMetaPostRetrieveRequest.ts @@ -0,0 +1,18 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * @example + * {} + */ +export interface TicketsMetaPostRetrieveRequest { + /** + * If provided, will only return tickets for this collection. + */ + collectionId?: string; + /** + * If provided, will only return tickets for this ticket type. + */ + ticketType?: string; +} diff --git a/src/api/resources/ticketing/resources/tickets/client/requests/TicketsRemoteFieldClassesListRequest.ts b/src/api/resources/ticketing/resources/tickets/client/requests/TicketsRemoteFieldClassesListRequest.ts index 83e327da2..e047d35a0 100644 --- a/src/api/resources/ticketing/resources/tickets/client/requests/TicketsRemoteFieldClassesListRequest.ts +++ b/src/api/resources/ticketing/resources/tickets/client/requests/TicketsRemoteFieldClassesListRequest.ts @@ -31,6 +31,10 @@ export interface TicketsRemoteFieldClassesListRequest { * If provided, will only return remote field classes with this is_common_model_field value */ isCommonModelField?: boolean; + /** + * If provided, will only return remote fields classes with this is_custom value + */ + isCustom?: boolean; /** * Number of results to return per page. */ diff --git a/src/api/resources/ticketing/resources/tickets/client/requests/index.ts b/src/api/resources/ticketing/resources/tickets/client/requests/index.ts index 91425126e..00140a3c7 100644 --- a/src/api/resources/ticketing/resources/tickets/client/requests/index.ts +++ b/src/api/resources/ticketing/resources/tickets/client/requests/index.ts @@ -3,4 +3,5 @@ export { type TicketEndpointRequest } from "./TicketEndpointRequest"; export { type TicketsRetrieveRequest } from "./TicketsRetrieveRequest"; export { type PatchedTicketEndpointRequest } from "./PatchedTicketEndpointRequest"; export { type TicketsViewersListRequest } from "./TicketsViewersListRequest"; +export { type TicketsMetaPostRetrieveRequest } from "./TicketsMetaPostRetrieveRequest"; export { type TicketsRemoteFieldClassesListRequest } from "./TicketsRemoteFieldClassesListRequest"; diff --git a/src/api/resources/ticketing/resources/users/client/Client.ts b/src/api/resources/ticketing/resources/users/client/Client.ts index 7676aa0d4..dd747b9e9 100644 --- a/src/api/resources/ticketing/resources/users/client/Client.ts +++ b/src/api/resources/ticketing/resources/users/client/Client.ts @@ -6,6 +6,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; import * as serializers from "../../../../../../serialization/index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace Users { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace Users { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class Users { - constructor(protected readonly _options: Users.Options) {} + protected readonly _options: Users.Options; + + constructor(_options: Users.Options) { + this._options = _options; + } /** * Returns a list of `User` objects. @@ -135,23 +142,15 @@ export class Users { "ticketing/v1/users", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -173,6 +172,7 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -181,12 +181,14 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/users."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -238,23 +240,15 @@ export class Users { `ticketing/v1/users/${encodeURIComponent(id)}`, ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), queryParameters: _queryParams, - requestType: "json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -276,6 +270,7 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -284,12 +279,14 @@ export class Users { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError("Timeout exceeded when calling GET /ticketing/v1/users/{id}."); case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/resources/webhookReceivers/client/Client.ts b/src/api/resources/ticketing/resources/webhookReceivers/client/Client.ts index abaf18dbc..9fb9cc57c 100644 --- a/src/api/resources/ticketing/resources/webhookReceivers/client/Client.ts +++ b/src/api/resources/ticketing/resources/webhookReceivers/client/Client.ts @@ -5,6 +5,7 @@ import * as environments from "../../../../../../environments"; import * as core from "../../../../../../core"; import * as Merge from "../../../../../index"; +import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; import urlJoin from "url-join"; import * as serializers from "../../../../../../serialization/index"; import * as errors from "../../../../../../errors/index"; @@ -17,6 +18,8 @@ export declare namespace WebhookReceivers { apiKey: core.Supplier; /** Override the X-Account-Token header */ accountToken?: core.Supplier; + /** Additional headers to include in requests. */ + headers?: Record | undefined>; fetcher?: core.FetchFunction; } @@ -30,12 +33,16 @@ export declare namespace WebhookReceivers { /** Override the X-Account-Token header */ accountToken?: string | undefined; /** Additional headers to include in the request. */ - headers?: Record; + headers?: Record | undefined>; } } export class WebhookReceivers { - constructor(protected readonly _options: WebhookReceivers.Options) {} + protected readonly _options: WebhookReceivers.Options; + + constructor(_options: WebhookReceivers.Options) { + this._options = _options; + } /** * Returns a list of `WebhookReceiver` objects. @@ -62,22 +69,14 @@ export class WebhookReceivers { "ticketing/v1/webhook-receivers", ), method: "GET", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, - contentType: "application/json", - requestType: "json", + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, abortSignal: requestOptions?.abortSignal, @@ -99,6 +98,7 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -107,6 +107,7 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -115,6 +116,7 @@ export class WebhookReceivers { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } @@ -150,20 +152,14 @@ export class WebhookReceivers { "ticketing/v1/webhook-receivers", ), method: "POST", - headers: { - Authorization: await this._getAuthorizationHeader(), - "X-Account-Token": - (await core.Supplier.get(this._options.accountToken)) != null - ? await core.Supplier.get(this._options.accountToken) - : undefined, - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "@mergeapi/merge-node-client", - "X-Fern-SDK-Version": "1.1.9", - "User-Agent": "@mergeapi/merge-node-client/1.1.9", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - ...requestOptions?.headers, - }, + headers: mergeHeaders( + this._options?.headers, + mergeOnlyDefinedHeaders({ + Authorization: await this._getAuthorizationHeader(), + "X-Account-Token": requestOptions?.accountToken, + }), + requestOptions?.headers, + ), contentType: "application/json", requestType: "json", body: serializers.ticketing.WebhookReceiverRequest.jsonOrThrow(request, { @@ -190,6 +186,7 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.body, + rawResponse: _response.rawResponse, }); } @@ -198,6 +195,7 @@ export class WebhookReceivers { throw new errors.MergeError({ statusCode: _response.error.statusCode, body: _response.error.rawBody, + rawResponse: _response.rawResponse, }); case "timeout": throw new errors.MergeTimeoutError( @@ -206,6 +204,7 @@ export class WebhookReceivers { case "unknown": throw new errors.MergeError({ message: _response.error.errorMessage, + rawResponse: _response.rawResponse, }); } } diff --git a/src/api/resources/ticketing/types/AccountDetails.ts b/src/api/resources/ticketing/types/AccountDetails.ts index 291e0fef0..f422d395f 100644 --- a/src/api/resources/ticketing/types/AccountDetails.ts +++ b/src/api/resources/ticketing/types/AccountDetails.ts @@ -8,7 +8,7 @@ export interface AccountDetails { id?: string; integration?: string; integrationSlug?: string; - category?: Merge.ticketing.CategoryEnum; + category?: Merge.ticketing.AccountDetailsCategory; endUserOriginId?: string; endUserOrganizationName?: string; endUserEmailAddress?: string; diff --git a/src/api/resources/ticketing/types/AccountDetailsAndActions.ts b/src/api/resources/ticketing/types/AccountDetailsAndActions.ts index c1676ae7d..77b6d04dd 100644 --- a/src/api/resources/ticketing/types/AccountDetailsAndActions.ts +++ b/src/api/resources/ticketing/types/AccountDetailsAndActions.ts @@ -14,8 +14,8 @@ import * as Merge from "../../../index"; */ export interface AccountDetailsAndActions { id: string; - category?: Merge.ticketing.CategoryEnum; - status: Merge.ticketing.AccountDetailsAndActionsStatusEnum; + category?: Merge.ticketing.AccountDetailsAndActionsCategory; + status: Merge.ticketing.AccountDetailsAndActionsStatus; statusDetail?: string; endUserOriginId?: string; endUserOrganizationName: string; @@ -28,4 +28,5 @@ export interface AccountDetailsAndActions { integration?: Merge.ticketing.AccountDetailsAndActionsIntegration; accountType: string; completedAt: Date; + integrationSpecificFields?: Record; } diff --git a/src/api/resources/ticketing/types/AccountDetailsAndActionsCategory.ts b/src/api/resources/ticketing/types/AccountDetailsAndActionsCategory.ts new file mode 100644 index 000000000..c98427608 --- /dev/null +++ b/src/api/resources/ticketing/types/AccountDetailsAndActionsCategory.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type AccountDetailsAndActionsCategory = Merge.ticketing.CategoryEnum | string; diff --git a/src/api/resources/ticketing/types/AccountDetailsAndActionsStatus.ts b/src/api/resources/ticketing/types/AccountDetailsAndActionsStatus.ts new file mode 100644 index 000000000..e393870c2 --- /dev/null +++ b/src/api/resources/ticketing/types/AccountDetailsAndActionsStatus.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type AccountDetailsAndActionsStatus = Merge.ticketing.AccountDetailsAndActionsStatusEnum | string; diff --git a/src/api/resources/ticketing/types/AccountDetailsCategory.ts b/src/api/resources/ticketing/types/AccountDetailsCategory.ts new file mode 100644 index 000000000..f466c19d9 --- /dev/null +++ b/src/api/resources/ticketing/types/AccountDetailsCategory.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type AccountDetailsCategory = Merge.ticketing.CategoryEnum | string; diff --git a/src/api/resources/ticketing/types/AuditLogEvent.ts b/src/api/resources/ticketing/types/AuditLogEvent.ts index afd9c3496..bc18549c8 100644 --- a/src/api/resources/ticketing/types/AuditLogEvent.ts +++ b/src/api/resources/ticketing/types/AuditLogEvent.ts @@ -30,6 +30,7 @@ export interface AuditLogEvent { * * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY * * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY * * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE * * `INVITED_USER` - INVITED_USER * * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED * * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED diff --git a/src/api/resources/ticketing/types/AuditLogEventEventType.ts b/src/api/resources/ticketing/types/AuditLogEventEventType.ts index d9483438e..49f627256 100644 --- a/src/api/resources/ticketing/types/AuditLogEventEventType.ts +++ b/src/api/resources/ticketing/types/AuditLogEventEventType.ts @@ -12,6 +12,7 @@ import * as Merge from "../../../index"; * * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY * * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY * * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE * * `INVITED_USER` - INVITED_USER * * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED * * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED diff --git a/src/api/resources/ticketing/types/Collection.ts b/src/api/resources/ticketing/types/Collection.ts index 119d629ba..d206d87a8 100644 --- a/src/api/resources/ticketing/types/Collection.ts +++ b/src/api/resources/ticketing/types/Collection.ts @@ -24,6 +24,15 @@ export interface Collection { name?: string; /** The collection's description. */ description?: string; + /** + * The level of access a User has to the Collection and its sub-objects. + * + * * `PRIVATE` - PRIVATE + * * `COMPANY` - COMPANY + * * `PUBLIC` - PUBLIC + * * `PARENT_COLLECTION` - PARENT_COLLECTION + */ + accessLevel?: Merge.ticketing.CollectionAccessLevel; /** * The collection's type. * @@ -35,14 +44,6 @@ export interface Collection { parentCollection?: Merge.ticketing.CollectionParentCollection; /** Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). */ remoteWasDeleted?: boolean; - /** - * The level of access a User has to the Collection and its sub-objects. - * - * * `PRIVATE` - PRIVATE - * * `COMPANY` - COMPANY - * * `PUBLIC` - PUBLIC - */ - accessLevel?: Merge.ticketing.CollectionAccessLevel; fieldMappings?: Record; remoteData?: Merge.ticketing.RemoteData[]; } diff --git a/src/api/resources/ticketing/types/CollectionAccessLevel.ts b/src/api/resources/ticketing/types/CollectionAccessLevel.ts index 2869895bb..bc64ed8a7 100644 --- a/src/api/resources/ticketing/types/CollectionAccessLevel.ts +++ b/src/api/resources/ticketing/types/CollectionAccessLevel.ts @@ -10,5 +10,6 @@ import * as Merge from "../../../index"; * * `PRIVATE` - PRIVATE * * `COMPANY` - COMPANY * * `PUBLIC` - PUBLIC + * * `PARENT_COLLECTION` - PARENT_COLLECTION */ -export type CollectionAccessLevel = Merge.ticketing.AccessLevelEnum | string; +export type CollectionAccessLevel = Merge.ticketing.CollectionAccessLevelEnum | string; diff --git a/src/api/resources/ticketing/types/CollectionAccessLevelEnum.ts b/src/api/resources/ticketing/types/CollectionAccessLevelEnum.ts new file mode 100644 index 000000000..ec46355a9 --- /dev/null +++ b/src/api/resources/ticketing/types/CollectionAccessLevelEnum.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +/** + * * `PRIVATE` - PRIVATE + * * `COMPANY` - COMPANY + * * `PUBLIC` - PUBLIC + * * `PARENT_COLLECTION` - PARENT_COLLECTION + */ +export type CollectionAccessLevelEnum = "PRIVATE" | "COMPANY" | "PUBLIC" | "PARENT_COLLECTION"; +export const CollectionAccessLevelEnum = { + Private: "PRIVATE", + Company: "COMPANY", + Public: "PUBLIC", + ParentCollection: "PARENT_COLLECTION", +} as const; diff --git a/src/api/resources/ticketing/types/EventTypeEnum.ts b/src/api/resources/ticketing/types/EventTypeEnum.ts index 316d8531b..261c00e43 100644 --- a/src/api/resources/ticketing/types/EventTypeEnum.ts +++ b/src/api/resources/ticketing/types/EventTypeEnum.ts @@ -8,6 +8,7 @@ * * `CREATED_TEST_API_KEY` - CREATED_TEST_API_KEY * * `DELETED_TEST_API_KEY` - DELETED_TEST_API_KEY * * `REGENERATED_PRODUCTION_API_KEY` - REGENERATED_PRODUCTION_API_KEY + * * `REGENERATED_WEBHOOK_SIGNATURE` - REGENERATED_WEBHOOK_SIGNATURE * * `INVITED_USER` - INVITED_USER * * `TWO_FACTOR_AUTH_ENABLED` - TWO_FACTOR_AUTH_ENABLED * * `TWO_FACTOR_AUTH_DISABLED` - TWO_FACTOR_AUTH_DISABLED @@ -52,6 +53,7 @@ export type EventTypeEnum = | "CREATED_TEST_API_KEY" | "DELETED_TEST_API_KEY" | "REGENERATED_PRODUCTION_API_KEY" + | "REGENERATED_WEBHOOK_SIGNATURE" | "INVITED_USER" | "TWO_FACTOR_AUTH_ENABLED" | "TWO_FACTOR_AUTH_DISABLED" @@ -95,6 +97,7 @@ export const EventTypeEnum = { CreatedTestApiKey: "CREATED_TEST_API_KEY", DeletedTestApiKey: "DELETED_TEST_API_KEY", RegeneratedProductionApiKey: "REGENERATED_PRODUCTION_API_KEY", + RegeneratedWebhookSignature: "REGENERATED_WEBHOOK_SIGNATURE", InvitedUser: "INVITED_USER", TwoFactorAuthEnabled: "TWO_FACTOR_AUTH_ENABLED", TwoFactorAuthDisabled: "TWO_FACTOR_AUTH_DISABLED", diff --git a/src/api/resources/ticketing/types/PatchedTicketRequest.ts b/src/api/resources/ticketing/types/PatchedTicketRequest.ts index 6108448b4..71f492aff 100644 --- a/src/api/resources/ticketing/types/PatchedTicketRequest.ts +++ b/src/api/resources/ticketing/types/PatchedTicketRequest.ts @@ -43,6 +43,15 @@ export interface PatchedTicketRequest { contact?: string; /** The ticket's parent ticket. */ parentTicket?: string; + /** + * The description of who is able to access a given ticket, or where access is inherited from. + * + * * `COMPANY` - COMPANY + * * `PUBLIC` - PUBLIC + * * `PRIVATE` - PRIVATE + * * `COLLECTION` - COLLECTION + */ + accessLevel?: Merge.ticketing.PatchedTicketRequestAccessLevel; tags?: (string | undefined)[]; roles?: (string | undefined)[]; /** When the ticket was completed. */ diff --git a/src/api/resources/ticketing/types/PatchedTicketRequestAccessLevel.ts b/src/api/resources/ticketing/types/PatchedTicketRequestAccessLevel.ts new file mode 100644 index 000000000..4c6cd9574 --- /dev/null +++ b/src/api/resources/ticketing/types/PatchedTicketRequestAccessLevel.ts @@ -0,0 +1,15 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +/** + * The description of who is able to access a given ticket, or where access is inherited from. + * + * * `COMPANY` - COMPANY + * * `PUBLIC` - PUBLIC + * * `PRIVATE` - PRIVATE + * * `COLLECTION` - COLLECTION + */ +export type PatchedTicketRequestAccessLevel = Merge.ticketing.TicketAccessLevelEnum | string; diff --git a/src/api/resources/ticketing/types/SyncStatus.ts b/src/api/resources/ticketing/types/SyncStatus.ts index 969514c47..3f976569e 100644 --- a/src/api/resources/ticketing/types/SyncStatus.ts +++ b/src/api/resources/ticketing/types/SyncStatus.ts @@ -17,7 +17,7 @@ export interface SyncStatus { modelId: string; lastSyncStart?: Date; nextSyncStart?: Date; - lastSyncResult?: Merge.ticketing.LastSyncResultEnum; + lastSyncResult?: Merge.ticketing.SyncStatusLastSyncResult; lastSyncFinished?: Date; status: Merge.ticketing.StatusFd5Enum; isInitialSync: boolean; diff --git a/src/api/resources/ticketing/types/SyncStatusLastSyncResult.ts b/src/api/resources/ticketing/types/SyncStatusLastSyncResult.ts new file mode 100644 index 000000000..8685891ae --- /dev/null +++ b/src/api/resources/ticketing/types/SyncStatusLastSyncResult.ts @@ -0,0 +1,7 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +export type SyncStatusLastSyncResult = Merge.ticketing.LastSyncResultEnum | string; diff --git a/src/api/resources/ticketing/types/Ticket.ts b/src/api/resources/ticketing/types/Ticket.ts index 55a23f4ec..2a2be76d1 100644 --- a/src/api/resources/ticketing/types/Ticket.ts +++ b/src/api/resources/ticketing/types/Ticket.ts @@ -51,6 +51,15 @@ export interface Ticket { /** The ticket's parent ticket. */ parentTicket?: Merge.ticketing.TicketParentTicket; attachments?: (Merge.ticketing.TicketAttachmentsItem | undefined)[]; + /** + * The description of who is able to access a given ticket, or where access is inherited from. + * + * * `COMPANY` - COMPANY + * * `PUBLIC` - PUBLIC + * * `PRIVATE` - PRIVATE + * * `COLLECTION` - COLLECTION + */ + accessLevel?: Merge.ticketing.TicketAccessLevel; tags?: (string | undefined)[]; roles?: (string | undefined)[]; /** When the third party's ticket was created. */ diff --git a/src/api/resources/ticketing/types/TicketAccessLevel.ts b/src/api/resources/ticketing/types/TicketAccessLevel.ts new file mode 100644 index 000000000..8413abac3 --- /dev/null +++ b/src/api/resources/ticketing/types/TicketAccessLevel.ts @@ -0,0 +1,15 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +/** + * The description of who is able to access a given ticket, or where access is inherited from. + * + * * `COMPANY` - COMPANY + * * `PUBLIC` - PUBLIC + * * `PRIVATE` - PRIVATE + * * `COLLECTION` - COLLECTION + */ +export type TicketAccessLevel = Merge.ticketing.TicketAccessLevelEnum | string; diff --git a/src/api/resources/ticketing/types/AccessLevelEnum.ts b/src/api/resources/ticketing/types/TicketAccessLevelEnum.ts similarity index 56% rename from src/api/resources/ticketing/types/AccessLevelEnum.ts rename to src/api/resources/ticketing/types/TicketAccessLevelEnum.ts index 03d2d3f74..69e3eb1bd 100644 --- a/src/api/resources/ticketing/types/AccessLevelEnum.ts +++ b/src/api/resources/ticketing/types/TicketAccessLevelEnum.ts @@ -3,13 +3,15 @@ */ /** - * * `PRIVATE` - PRIVATE * * `COMPANY` - COMPANY * * `PUBLIC` - PUBLIC + * * `PRIVATE` - PRIVATE + * * `COLLECTION` - COLLECTION */ -export type AccessLevelEnum = "PRIVATE" | "COMPANY" | "PUBLIC"; -export const AccessLevelEnum = { - Private: "PRIVATE", +export type TicketAccessLevelEnum = "COMPANY" | "PUBLIC" | "PRIVATE" | "COLLECTION"; +export const TicketAccessLevelEnum = { Company: "COMPANY", Public: "PUBLIC", + Private: "PRIVATE", + Collection: "COLLECTION", } as const; diff --git a/src/api/resources/ticketing/types/TicketRequest.ts b/src/api/resources/ticketing/types/TicketRequest.ts index 430220dc1..a472aeaf7 100644 --- a/src/api/resources/ticketing/types/TicketRequest.ts +++ b/src/api/resources/ticketing/types/TicketRequest.ts @@ -44,6 +44,15 @@ export interface TicketRequest { /** The ticket's parent ticket. */ parentTicket?: Merge.ticketing.TicketRequestParentTicket; attachments?: (Merge.ticketing.TicketRequestAttachmentsItem | undefined)[]; + /** + * The description of who is able to access a given ticket, or where access is inherited from. + * + * * `COMPANY` - COMPANY + * * `PUBLIC` - PUBLIC + * * `PRIVATE` - PRIVATE + * * `COLLECTION` - COLLECTION + */ + accessLevel?: Merge.ticketing.TicketRequestAccessLevel; tags?: (string | undefined)[]; roles?: (string | undefined)[]; /** When the ticket was completed. */ diff --git a/src/api/resources/ticketing/types/TicketRequestAccessLevel.ts b/src/api/resources/ticketing/types/TicketRequestAccessLevel.ts new file mode 100644 index 000000000..10aa1034f --- /dev/null +++ b/src/api/resources/ticketing/types/TicketRequestAccessLevel.ts @@ -0,0 +1,15 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as Merge from "../../../index"; + +/** + * The description of who is able to access a given ticket, or where access is inherited from. + * + * * `COMPANY` - COMPANY + * * `PUBLIC` - PUBLIC + * * `PRIVATE` - PRIVATE + * * `COLLECTION` - COLLECTION + */ +export type TicketRequestAccessLevel = Merge.ticketing.TicketAccessLevelEnum | string; diff --git a/src/api/resources/ticketing/types/index.ts b/src/api/resources/ticketing/types/index.ts index 1a7c5cb02..d1a8630e4 100644 --- a/src/api/resources/ticketing/types/index.ts +++ b/src/api/resources/ticketing/types/index.ts @@ -1,6 +1,8 @@ -export * from "./AccessLevelEnum"; export * from "./Account"; +export * from "./AccountDetailsCategory"; export * from "./AccountDetails"; +export * from "./AccountDetailsAndActionsCategory"; +export * from "./AccountDetailsAndActionsStatus"; export * from "./AccountDetailsAndActions"; export * from "./AccountDetailsAndActionsIntegration"; export * from "./AccountDetailsAndActionsStatusEnum"; @@ -18,10 +20,11 @@ export * from "./AuditLogEvent"; export * from "./AvailableActions"; export * from "./CategoriesEnum"; export * from "./CategoryEnum"; +export * from "./CollectionAccessLevel"; export * from "./CollectionCollectionType"; export * from "./CollectionParentCollection"; -export * from "./CollectionAccessLevel"; export * from "./Collection"; +export * from "./CollectionAccessLevelEnum"; export * from "./CollectionTypeEnum"; export * from "./CommentUser"; export * from "./CommentContact"; @@ -94,6 +97,7 @@ export * from "./PaginatedTicketList"; export * from "./PaginatedUserList"; export * from "./PaginatedViewerList"; export * from "./PatchedTicketRequestStatus"; +export * from "./PatchedTicketRequestAccessLevel"; export * from "./PatchedTicketRequestPriority"; export * from "./PatchedTicketRequest"; export * from "./PriorityEnum"; @@ -121,6 +125,7 @@ export * from "./Role"; export * from "./RoleEnum"; export * from "./SelectiveSyncConfigurationsUsageEnum"; export * from "./StatusFd5Enum"; +export * from "./SyncStatusLastSyncResult"; export * from "./SyncStatus"; export * from "./Tag"; export * from "./Team"; @@ -133,9 +138,11 @@ export * from "./TicketAccount"; export * from "./TicketContact"; export * from "./TicketParentTicket"; export * from "./TicketAttachmentsItem"; +export * from "./TicketAccessLevel"; export * from "./TicketPriority"; export * from "./Ticket"; export * from "./TicketAccessEnum"; +export * from "./TicketAccessLevelEnum"; export * from "./TicketActionsEnum"; export * from "./TicketRequestAssigneesItem"; export * from "./TicketRequestAssignedTeamsItem"; @@ -146,6 +153,7 @@ export * from "./TicketRequestAccount"; export * from "./TicketRequestContact"; export * from "./TicketRequestParentTicket"; export * from "./TicketRequestAttachmentsItem"; +export * from "./TicketRequestAccessLevel"; export * from "./TicketRequestPriority"; export * from "./TicketRequest"; export * from "./TicketResponse"; diff --git a/src/core/fetcher/Fetcher.ts b/src/core/fetcher/Fetcher.ts index 336ee10b9..ccc16a264 100644 --- a/src/core/fetcher/Fetcher.ts +++ b/src/core/fetcher/Fetcher.ts @@ -1,6 +1,7 @@ import { toJson } from "../json"; import { APIResponse } from "./APIResponse"; import { abortRawResponse, toRawResponse, unknownRawResponse } from "./RawResponse"; +import { Supplier } from "./Supplier"; import { createRequestUrl } from "./createRequestUrl"; import { getFetchFn } from "./getFetchFn"; import { getRequestBody } from "./getRequestBody"; @@ -15,7 +16,7 @@ export declare namespace Fetcher { url: string; method: string; contentType?: string; - headers?: Record; + headers?: Record | undefined>; queryParameters?: Record; body?: unknown; timeoutMs?: number; @@ -51,20 +52,31 @@ export declare namespace Fetcher { } } -export async function fetcherImpl(args: Fetcher.Args): Promise> { - const headers: Record = {}; +async function getHeaders(args: Fetcher.Args): Promise> { + const newHeaders: Record = {}; if (args.body !== undefined && args.contentType != null) { - headers["Content-Type"] = args.contentType; + newHeaders["Content-Type"] = args.contentType; + } + + if (args.headers == null) { + return newHeaders; } - if (args.headers != null) { - for (const [key, value] of Object.entries(args.headers)) { - if (value != null) { - headers[key] = value; - } + for (const [key, value] of Object.entries(args.headers)) { + const result = await Supplier.get(value); + if (typeof result === "string") { + newHeaders[key] = result; + continue; } + if (result == null) { + continue; + } + newHeaders[key] = `${result}`; } + return newHeaders; +} +export async function fetcherImpl(args: Fetcher.Args): Promise> { const url = createRequestUrl(args.url, args.queryParameters); const requestBody: BodyInit | undefined = await getRequestBody({ body: args.body, @@ -79,7 +91,7 @@ export async function fetcherImpl(args: Fetcher.Args): Promise; + + constructor(init?: HeadersInit) { + this.headers = new Map(); + + if (init) { + if (init instanceof Headers) { + init.forEach((value, key) => this.append(key, value)); + } else if (Array.isArray(init)) { + for (const [key, value] of init) { + if (typeof key === "string" && typeof value === "string") { + this.append(key, value); + } else { + throw new TypeError("Each header entry must be a [string, string] tuple"); + } + } + } else { + for (const [key, value] of Object.entries(init)) { + if (typeof value === "string") { + this.append(key, value); + } else { + throw new TypeError("Header values must be strings"); + } + } + } + } + } + + append(name: string, value: string): void { + const key = name.toLowerCase(); + const existing = this.headers.get(key) || []; + this.headers.set(key, [...existing, value]); + } + + delete(name: string): void { + const key = name.toLowerCase(); + this.headers.delete(key); + } + + get(name: string): string | null { + const key = name.toLowerCase(); + const values = this.headers.get(key); + return values ? values.join(", ") : null; + } + + has(name: string): boolean { + const key = name.toLowerCase(); + return this.headers.has(key); + } + + set(name: string, value: string): void { + const key = name.toLowerCase(); + this.headers.set(key, [value]); + } + + forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: unknown): void { + const boundCallback = thisArg ? callbackfn.bind(thisArg) : callbackfn; + this.headers.forEach((values, key) => boundCallback(values.join(", "), key, this)); + } + + getSetCookie(): string[] { + return this.headers.get("set-cookie") || []; + } + + *entries(): HeadersIterator<[string, string]> { + for (const [key, values] of this.headers.entries()) { + yield [key, values.join(", ")]; + } + } + + *keys(): HeadersIterator { + yield* this.headers.keys(); + } + + *values(): HeadersIterator { + for (const values of this.headers.values()) { + yield values.join(", "); + } + } + + [Symbol.iterator](): HeadersIterator<[string, string]> { + return this.entries(); + } + }; +} + +export { Headers }; diff --git a/src/core/fetcher/RawResponse.ts b/src/core/fetcher/RawResponse.ts index c975f23c7..bdaa614a3 100644 --- a/src/core/fetcher/RawResponse.ts +++ b/src/core/fetcher/RawResponse.ts @@ -1,3 +1,5 @@ +import { Headers } from "./Headers"; + /** * The raw response from the fetch call excluding the body. */ diff --git a/src/core/headers.ts b/src/core/headers.ts new file mode 100644 index 000000000..561314d2c --- /dev/null +++ b/src/core/headers.ts @@ -0,0 +1,35 @@ +import * as core from "./index.js"; + +export function mergeHeaders( + ...headersArray: (Record | undefined> | undefined)[] +): Record> { + const result: Record> = {}; + + for (const [key, value] of headersArray + .filter((headers) => headers != null) + .flatMap((headers) => Object.entries(headers))) { + if (value != null) { + result[key] = value; + } else if (key in result) { + delete result[key]; + } + } + + return result; +} + +export function mergeOnlyDefinedHeaders( + ...headersArray: (Record | undefined> | undefined)[] +): Record> { + const result: Record> = {}; + + for (const [key, value] of headersArray + .filter((headers) => headers != null) + .flatMap((headers) => Object.entries(headers))) { + if (value != null) { + result[key] = value; + } + } + + return result; +} diff --git a/src/core/index.ts b/src/core/index.ts index 2d20c46f3..53948f45b 100644 --- a/src/core/index.ts +++ b/src/core/index.ts @@ -1,4 +1,4 @@ export * from "./fetcher"; -export * from "./auth"; export * from "./runtime"; +export * from "./auth"; export * as serialization from "./schemas"; diff --git a/src/errors/MergeError.ts b/src/errors/MergeError.ts index c3d07530f..6df60960e 100644 --- a/src/errors/MergeError.ts +++ b/src/errors/MergeError.ts @@ -2,22 +2,30 @@ * This file was auto-generated by Fern from our API Definition. */ +import * as core from "../core"; import { toJson } from "../core/json"; export class MergeError extends Error { - readonly statusCode?: number; - readonly body?: unknown; - - constructor({ message, statusCode, body }: { message?: string; statusCode?: number; body?: unknown }) { + public readonly statusCode?: number; + public readonly body?: unknown; + public readonly rawResponse?: core.RawResponse; + + constructor({ + message, + statusCode, + body, + rawResponse, + }: { + message?: string; + statusCode?: number; + body?: unknown; + rawResponse?: core.RawResponse; + }) { super(buildMessage({ message, statusCode, body })); Object.setPrototypeOf(this, MergeError.prototype); - if (statusCode != null) { - this.statusCode = statusCode; - } - - if (body !== undefined) { - this.body = body; - } + this.statusCode = statusCode; + this.body = body; + this.rawResponse = rawResponse; } } diff --git a/src/serialization/resources/accounting/resources/index.ts b/src/serialization/resources/accounting/resources/index.ts index 716bf97bf..7c4d72d59 100644 --- a/src/serialization/resources/accounting/resources/index.ts +++ b/src/serialization/resources/accounting/resources/index.ts @@ -20,6 +20,8 @@ export * as items from "./items"; export * from "./items/types"; export * as journalEntries from "./journalEntries"; export * from "./journalEntries/types"; +export * as linkToken from "./linkToken"; +export * from "./linkToken/types"; export * as linkedAccounts from "./linkedAccounts"; export * from "./linkedAccounts/types"; export * as payments from "./payments"; @@ -51,8 +53,8 @@ export * from "./fieldMapping/client/requests"; export * as generateKey from "./generateKey"; export * from "./generateKey/client/requests"; export * from "./invoices/client/requests"; +export * from "./items/client/requests"; export * from "./journalEntries/client/requests"; -export * as linkToken from "./linkToken"; export * from "./linkToken/client/requests"; export * from "./payments/client/requests"; export * from "./purchaseOrders/client/requests"; diff --git a/src/serialization/resources/accounting/resources/items/client/index.ts b/src/serialization/resources/accounting/resources/items/client/index.ts new file mode 100644 index 000000000..415726b7f --- /dev/null +++ b/src/serialization/resources/accounting/resources/items/client/index.ts @@ -0,0 +1 @@ +export * from "./requests"; diff --git a/src/serialization/resources/accounting/resources/items/client/requests/ItemEndpointRequest.ts b/src/serialization/resources/accounting/resources/items/client/requests/ItemEndpointRequest.ts new file mode 100644 index 000000000..b284ce6d6 --- /dev/null +++ b/src/serialization/resources/accounting/resources/items/client/requests/ItemEndpointRequest.ts @@ -0,0 +1,21 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../../../../index"; +import * as Merge from "../../../../../../../api/index"; +import * as core from "../../../../../../../core"; +import { ItemRequestRequest } from "../../../../types/ItemRequestRequest"; + +export const ItemEndpointRequest: core.serialization.Schema< + serializers.accounting.ItemEndpointRequest.Raw, + Omit +> = core.serialization.object({ + model: ItemRequestRequest, +}); + +export declare namespace ItemEndpointRequest { + export interface Raw { + model: ItemRequestRequest.Raw; + } +} diff --git a/src/serialization/resources/accounting/resources/items/client/requests/PatchedItemEndpointRequest.ts b/src/serialization/resources/accounting/resources/items/client/requests/PatchedItemEndpointRequest.ts new file mode 100644 index 000000000..6a35c1592 --- /dev/null +++ b/src/serialization/resources/accounting/resources/items/client/requests/PatchedItemEndpointRequest.ts @@ -0,0 +1,21 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../../../../index"; +import * as Merge from "../../../../../../../api/index"; +import * as core from "../../../../../../../core"; +import { PatchedItemRequestRequest } from "../../../../types/PatchedItemRequestRequest"; + +export const PatchedItemEndpointRequest: core.serialization.Schema< + serializers.accounting.PatchedItemEndpointRequest.Raw, + Omit +> = core.serialization.object({ + model: PatchedItemRequestRequest, +}); + +export declare namespace PatchedItemEndpointRequest { + export interface Raw { + model: PatchedItemRequestRequest.Raw; + } +} diff --git a/src/serialization/resources/accounting/resources/items/client/requests/index.ts b/src/serialization/resources/accounting/resources/items/client/requests/index.ts new file mode 100644 index 000000000..f19cc85ed --- /dev/null +++ b/src/serialization/resources/accounting/resources/items/client/requests/index.ts @@ -0,0 +1,2 @@ +export { ItemEndpointRequest } from "./ItemEndpointRequest"; +export { PatchedItemEndpointRequest } from "./PatchedItemEndpointRequest"; diff --git a/src/serialization/resources/accounting/resources/items/index.ts b/src/serialization/resources/accounting/resources/items/index.ts index eea524d65..c9240f83b 100644 --- a/src/serialization/resources/accounting/resources/items/index.ts +++ b/src/serialization/resources/accounting/resources/items/index.ts @@ -1 +1,2 @@ export * from "./types"; +export * from "./client"; diff --git a/src/serialization/resources/accounting/resources/linkToken/client/requests/EndUserDetailsRequest.ts b/src/serialization/resources/accounting/resources/linkToken/client/requests/EndUserDetailsRequest.ts index 1d1da4b8a..ba7e83870 100644 --- a/src/serialization/resources/accounting/resources/linkToken/client/requests/EndUserDetailsRequest.ts +++ b/src/serialization/resources/accounting/resources/linkToken/client/requests/EndUserDetailsRequest.ts @@ -8,7 +8,7 @@ import * as core from "../../../../../../../core"; import { CategoriesEnum } from "../../../../types/CategoriesEnum"; import { CommonModelScopesBodyRequest } from "../../../../types/CommonModelScopesBodyRequest"; import { IndividualCommonModelScopeDeserializerRequest } from "../../../../types/IndividualCommonModelScopeDeserializerRequest"; -import { LanguageEnum } from "../../../../types/LanguageEnum"; +import { EndUserDetailsRequestLanguage } from "../../types/EndUserDetailsRequestLanguage"; export const EndUserDetailsRequest: core.serialization.Schema< serializers.accounting.EndUserDetailsRequest.Raw, @@ -38,7 +38,7 @@ export const EndUserDetailsRequest: core.serialization.Schema< ) .optional(), ), - language: LanguageEnum.optional(), + language: EndUserDetailsRequestLanguage.optional(), areSyncsDisabled: core.serialization.property("are_syncs_disabled", core.serialization.boolean().optional()), integrationSpecificConfig: core.serialization.property( "integration_specific_config", @@ -61,7 +61,7 @@ export declare namespace EndUserDetailsRequest { string, IndividualCommonModelScopeDeserializerRequest.Raw[] | null | undefined > | null; - language?: LanguageEnum.Raw | null; + language?: EndUserDetailsRequestLanguage.Raw | null; are_syncs_disabled?: boolean | null; integration_specific_config?: Record | null; } diff --git a/src/serialization/resources/accounting/resources/linkToken/index.ts b/src/serialization/resources/accounting/resources/linkToken/index.ts index 5ec76921e..c9240f83b 100644 --- a/src/serialization/resources/accounting/resources/linkToken/index.ts +++ b/src/serialization/resources/accounting/resources/linkToken/index.ts @@ -1 +1,2 @@ +export * from "./types"; export * from "./client"; diff --git a/src/serialization/resources/accounting/resources/linkToken/types/EndUserDetailsRequestLanguage.ts b/src/serialization/resources/accounting/resources/linkToken/types/EndUserDetailsRequestLanguage.ts new file mode 100644 index 000000000..f244e60b4 --- /dev/null +++ b/src/serialization/resources/accounting/resources/linkToken/types/EndUserDetailsRequestLanguage.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../../../index"; +import * as Merge from "../../../../../../api/index"; +import * as core from "../../../../../../core"; +import { LanguageEnum } from "../../../types/LanguageEnum"; + +export const EndUserDetailsRequestLanguage: core.serialization.Schema< + serializers.accounting.EndUserDetailsRequestLanguage.Raw, + Merge.accounting.EndUserDetailsRequestLanguage +> = core.serialization.undiscriminatedUnion([LanguageEnum, core.serialization.string()]); + +export declare namespace EndUserDetailsRequestLanguage { + export type Raw = LanguageEnum.Raw | string; +} diff --git a/src/serialization/resources/accounting/resources/linkToken/types/index.ts b/src/serialization/resources/accounting/resources/linkToken/types/index.ts new file mode 100644 index 000000000..c90e13c37 --- /dev/null +++ b/src/serialization/resources/accounting/resources/linkToken/types/index.ts @@ -0,0 +1 @@ +export * from "./EndUserDetailsRequestLanguage"; diff --git a/src/serialization/resources/accounting/types/AccountDetails.ts b/src/serialization/resources/accounting/types/AccountDetails.ts index 8ec4799f0..9829477ab 100644 --- a/src/serialization/resources/accounting/types/AccountDetails.ts +++ b/src/serialization/resources/accounting/types/AccountDetails.ts @@ -5,7 +5,7 @@ import * as serializers from "../../../index"; import * as Merge from "../../../../api/index"; import * as core from "../../../../core"; -import { CategoryEnum } from "./CategoryEnum"; +import { AccountDetailsCategory } from "./AccountDetailsCategory"; export const AccountDetails: core.serialization.ObjectSchema< serializers.accounting.AccountDetails.Raw, @@ -14,7 +14,7 @@ export const AccountDetails: core.serialization.ObjectSchema< id: core.serialization.string().optional(), integration: core.serialization.string().optional(), integrationSlug: core.serialization.property("integration_slug", core.serialization.string().optional()), - category: CategoryEnum.optional(), + category: AccountDetailsCategory.optional(), endUserOriginId: core.serialization.property("end_user_origin_id", core.serialization.string().optional()), endUserOrganizationName: core.serialization.property( "end_user_organization_name", @@ -33,7 +33,7 @@ export declare namespace AccountDetails { id?: string | null; integration?: string | null; integration_slug?: string | null; - category?: CategoryEnum.Raw | null; + category?: AccountDetailsCategory.Raw | null; end_user_origin_id?: string | null; end_user_organization_name?: string | null; end_user_email_address?: string | null; diff --git a/src/serialization/resources/accounting/types/AccountDetailsAndActions.ts b/src/serialization/resources/accounting/types/AccountDetailsAndActions.ts index fc9bb5865..1517a634e 100644 --- a/src/serialization/resources/accounting/types/AccountDetailsAndActions.ts +++ b/src/serialization/resources/accounting/types/AccountDetailsAndActions.ts @@ -5,8 +5,8 @@ import * as serializers from "../../../index"; import * as Merge from "../../../../api/index"; import * as core from "../../../../core"; -import { CategoryEnum } from "./CategoryEnum"; -import { AccountDetailsAndActionsStatusEnum } from "./AccountDetailsAndActionsStatusEnum"; +import { AccountDetailsAndActionsCategory } from "./AccountDetailsAndActionsCategory"; +import { AccountDetailsAndActionsStatus } from "./AccountDetailsAndActionsStatus"; import { AccountDetailsAndActionsIntegration } from "./AccountDetailsAndActionsIntegration"; export const AccountDetailsAndActions: core.serialization.ObjectSchema< @@ -14,8 +14,8 @@ export const AccountDetailsAndActions: core.serialization.ObjectSchema< Merge.accounting.AccountDetailsAndActions > = core.serialization.object({ id: core.serialization.string(), - category: CategoryEnum.optional(), - status: AccountDetailsAndActionsStatusEnum, + category: AccountDetailsAndActionsCategory.optional(), + status: AccountDetailsAndActionsStatus, statusDetail: core.serialization.property("status_detail", core.serialization.string().optional()), endUserOriginId: core.serialization.property("end_user_origin_id", core.serialization.string().optional()), endUserOrganizationName: core.serialization.property("end_user_organization_name", core.serialization.string()), @@ -26,13 +26,17 @@ export const AccountDetailsAndActions: core.serialization.ObjectSchema< integration: AccountDetailsAndActionsIntegration.optional(), accountType: core.serialization.property("account_type", core.serialization.string()), completedAt: core.serialization.property("completed_at", core.serialization.date()), + integrationSpecificFields: core.serialization.property( + "integration_specific_fields", + core.serialization.record(core.serialization.string(), core.serialization.unknown()).optional(), + ), }); export declare namespace AccountDetailsAndActions { export interface Raw { id: string; - category?: CategoryEnum.Raw | null; - status: AccountDetailsAndActionsStatusEnum.Raw; + category?: AccountDetailsAndActionsCategory.Raw | null; + status: AccountDetailsAndActionsStatus.Raw; status_detail?: string | null; end_user_origin_id?: string | null; end_user_organization_name: string; @@ -43,5 +47,6 @@ export declare namespace AccountDetailsAndActions { integration?: AccountDetailsAndActionsIntegration.Raw | null; account_type: string; completed_at: string; + integration_specific_fields?: Record | null; } } diff --git a/src/serialization/resources/accounting/types/AccountDetailsAndActionsCategory.ts b/src/serialization/resources/accounting/types/AccountDetailsAndActionsCategory.ts new file mode 100644 index 000000000..d10690fc3 --- /dev/null +++ b/src/serialization/resources/accounting/types/AccountDetailsAndActionsCategory.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { CategoryEnum } from "./CategoryEnum"; + +export const AccountDetailsAndActionsCategory: core.serialization.Schema< + serializers.accounting.AccountDetailsAndActionsCategory.Raw, + Merge.accounting.AccountDetailsAndActionsCategory +> = core.serialization.undiscriminatedUnion([CategoryEnum, core.serialization.string()]); + +export declare namespace AccountDetailsAndActionsCategory { + export type Raw = CategoryEnum.Raw | string; +} diff --git a/src/serialization/resources/accounting/types/AccountDetailsAndActionsStatus.ts b/src/serialization/resources/accounting/types/AccountDetailsAndActionsStatus.ts new file mode 100644 index 000000000..6f27ff1cb --- /dev/null +++ b/src/serialization/resources/accounting/types/AccountDetailsAndActionsStatus.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { AccountDetailsAndActionsStatusEnum } from "./AccountDetailsAndActionsStatusEnum"; + +export const AccountDetailsAndActionsStatus: core.serialization.Schema< + serializers.accounting.AccountDetailsAndActionsStatus.Raw, + Merge.accounting.AccountDetailsAndActionsStatus +> = core.serialization.undiscriminatedUnion([AccountDetailsAndActionsStatusEnum, core.serialization.string()]); + +export declare namespace AccountDetailsAndActionsStatus { + export type Raw = AccountDetailsAndActionsStatusEnum.Raw | string; +} diff --git a/src/serialization/resources/accounting/types/AccountDetailsCategory.ts b/src/serialization/resources/accounting/types/AccountDetailsCategory.ts new file mode 100644 index 000000000..66f4ddb60 --- /dev/null +++ b/src/serialization/resources/accounting/types/AccountDetailsCategory.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { CategoryEnum } from "./CategoryEnum"; + +export const AccountDetailsCategory: core.serialization.Schema< + serializers.accounting.AccountDetailsCategory.Raw, + Merge.accounting.AccountDetailsCategory +> = core.serialization.undiscriminatedUnion([CategoryEnum, core.serialization.string()]); + +export declare namespace AccountDetailsCategory { + export type Raw = CategoryEnum.Raw | string; +} diff --git a/src/serialization/resources/accounting/types/DataPassthroughRequest.ts b/src/serialization/resources/accounting/types/DataPassthroughRequest.ts index f4334015b..1bcc2b8da 100644 --- a/src/serialization/resources/accounting/types/DataPassthroughRequest.ts +++ b/src/serialization/resources/accounting/types/DataPassthroughRequest.ts @@ -5,7 +5,7 @@ import * as serializers from "../../../index"; import * as Merge from "../../../../api/index"; import * as core from "../../../../core"; -import { MethodEnum } from "./MethodEnum"; +import { DataPassthroughRequestMethod } from "./DataPassthroughRequestMethod"; import { MultipartFormFieldRequest } from "./MultipartFormFieldRequest"; import { RequestFormatEnum } from "./RequestFormatEnum"; @@ -13,7 +13,7 @@ export const DataPassthroughRequest: core.serialization.ObjectSchema< serializers.accounting.DataPassthroughRequest.Raw, Merge.accounting.DataPassthroughRequest > = core.serialization.object({ - method: MethodEnum, + method: DataPassthroughRequestMethod, path: core.serialization.string(), baseUrlOverride: core.serialization.property("base_url_override", core.serialization.string().optional()), data: core.serialization.string().optional(), @@ -28,7 +28,7 @@ export const DataPassthroughRequest: core.serialization.ObjectSchema< export declare namespace DataPassthroughRequest { export interface Raw { - method: MethodEnum.Raw; + method: DataPassthroughRequestMethod.Raw; path: string; base_url_override?: string | null; data?: string | null; diff --git a/src/serialization/resources/accounting/types/DataPassthroughRequestMethod.ts b/src/serialization/resources/accounting/types/DataPassthroughRequestMethod.ts new file mode 100644 index 000000000..c35dc150e --- /dev/null +++ b/src/serialization/resources/accounting/types/DataPassthroughRequestMethod.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { MethodEnum } from "./MethodEnum"; + +export const DataPassthroughRequestMethod: core.serialization.Schema< + serializers.accounting.DataPassthroughRequestMethod.Raw, + Merge.accounting.DataPassthroughRequestMethod +> = core.serialization.undiscriminatedUnion([MethodEnum, core.serialization.string()]); + +export declare namespace DataPassthroughRequestMethod { + export type Raw = MethodEnum.Raw | string; +} diff --git a/src/serialization/resources/accounting/types/EventTypeEnum.ts b/src/serialization/resources/accounting/types/EventTypeEnum.ts index 1ea07b368..69c13aaf5 100644 --- a/src/serialization/resources/accounting/types/EventTypeEnum.ts +++ b/src/serialization/resources/accounting/types/EventTypeEnum.ts @@ -15,6 +15,7 @@ export const EventTypeEnum: core.serialization.Schema< "CREATED_TEST_API_KEY", "DELETED_TEST_API_KEY", "REGENERATED_PRODUCTION_API_KEY", + "REGENERATED_WEBHOOK_SIGNATURE", "INVITED_USER", "TWO_FACTOR_AUTH_ENABLED", "TWO_FACTOR_AUTH_DISABLED", @@ -61,6 +62,7 @@ export declare namespace EventTypeEnum { | "CREATED_TEST_API_KEY" | "DELETED_TEST_API_KEY" | "REGENERATED_PRODUCTION_API_KEY" + | "REGENERATED_WEBHOOK_SIGNATURE" | "INVITED_USER" | "TWO_FACTOR_AUTH_ENABLED" | "TWO_FACTOR_AUTH_DISABLED" diff --git a/src/serialization/resources/accounting/types/ItemRequestRequest.ts b/src/serialization/resources/accounting/types/ItemRequestRequest.ts new file mode 100644 index 000000000..3720d4e33 --- /dev/null +++ b/src/serialization/resources/accounting/types/ItemRequestRequest.ts @@ -0,0 +1,55 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { ItemRequestRequestStatus } from "./ItemRequestRequestStatus"; +import { ItemRequestRequestType } from "./ItemRequestRequestType"; +import { ItemRequestRequestPurchaseAccount } from "./ItemRequestRequestPurchaseAccount"; +import { ItemRequestRequestSalesAccount } from "./ItemRequestRequestSalesAccount"; +import { ItemRequestRequestCompany } from "./ItemRequestRequestCompany"; +import { ItemRequestRequestPurchaseTaxRate } from "./ItemRequestRequestPurchaseTaxRate"; +import { ItemRequestRequestSalesTaxRate } from "./ItemRequestRequestSalesTaxRate"; + +export const ItemRequestRequest: core.serialization.ObjectSchema< + serializers.accounting.ItemRequestRequest.Raw, + Merge.accounting.ItemRequestRequest +> = core.serialization.object({ + name: core.serialization.string().optional(), + status: ItemRequestRequestStatus.optional(), + type: ItemRequestRequestType.optional(), + unitPrice: core.serialization.property("unit_price", core.serialization.number().optional()), + purchasePrice: core.serialization.property("purchase_price", core.serialization.number().optional()), + purchaseAccount: core.serialization.property("purchase_account", ItemRequestRequestPurchaseAccount.optional()), + salesAccount: core.serialization.property("sales_account", ItemRequestRequestSalesAccount.optional()), + company: ItemRequestRequestCompany.optional(), + purchaseTaxRate: core.serialization.property("purchase_tax_rate", ItemRequestRequestPurchaseTaxRate.optional()), + salesTaxRate: core.serialization.property("sales_tax_rate", ItemRequestRequestSalesTaxRate.optional()), + integrationParams: core.serialization.property( + "integration_params", + core.serialization.record(core.serialization.string(), core.serialization.unknown()).optional(), + ), + linkedAccountParams: core.serialization.property( + "linked_account_params", + core.serialization.record(core.serialization.string(), core.serialization.unknown()).optional(), + ), +}); + +export declare namespace ItemRequestRequest { + export interface Raw { + name?: string | null; + status?: ItemRequestRequestStatus.Raw | null; + type?: ItemRequestRequestType.Raw | null; + unit_price?: number | null; + purchase_price?: number | null; + purchase_account?: ItemRequestRequestPurchaseAccount.Raw | null; + sales_account?: ItemRequestRequestSalesAccount.Raw | null; + company?: ItemRequestRequestCompany.Raw | null; + purchase_tax_rate?: ItemRequestRequestPurchaseTaxRate.Raw | null; + sales_tax_rate?: ItemRequestRequestSalesTaxRate.Raw | null; + integration_params?: Record | null; + linked_account_params?: Record | null; + } +} diff --git a/src/serialization/resources/accounting/types/ItemRequestRequestCompany.ts b/src/serialization/resources/accounting/types/ItemRequestRequestCompany.ts new file mode 100644 index 000000000..9e5b67a89 --- /dev/null +++ b/src/serialization/resources/accounting/types/ItemRequestRequestCompany.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { CompanyInfo } from "./CompanyInfo"; + +export const ItemRequestRequestCompany: core.serialization.Schema< + serializers.accounting.ItemRequestRequestCompany.Raw, + Merge.accounting.ItemRequestRequestCompany +> = core.serialization.undiscriminatedUnion([core.serialization.string(), CompanyInfo]); + +export declare namespace ItemRequestRequestCompany { + export type Raw = string | CompanyInfo.Raw; +} diff --git a/src/serialization/resources/accounting/types/ItemRequestRequestPurchaseAccount.ts b/src/serialization/resources/accounting/types/ItemRequestRequestPurchaseAccount.ts new file mode 100644 index 000000000..c2c41b6c0 --- /dev/null +++ b/src/serialization/resources/accounting/types/ItemRequestRequestPurchaseAccount.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { Account } from "./Account"; + +export const ItemRequestRequestPurchaseAccount: core.serialization.Schema< + serializers.accounting.ItemRequestRequestPurchaseAccount.Raw, + Merge.accounting.ItemRequestRequestPurchaseAccount +> = core.serialization.undiscriminatedUnion([core.serialization.string(), Account]); + +export declare namespace ItemRequestRequestPurchaseAccount { + export type Raw = string | Account.Raw; +} diff --git a/src/serialization/resources/accounting/types/ItemRequestRequestPurchaseTaxRate.ts b/src/serialization/resources/accounting/types/ItemRequestRequestPurchaseTaxRate.ts new file mode 100644 index 000000000..9e4dbb259 --- /dev/null +++ b/src/serialization/resources/accounting/types/ItemRequestRequestPurchaseTaxRate.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { TaxRate } from "./TaxRate"; + +export const ItemRequestRequestPurchaseTaxRate: core.serialization.Schema< + serializers.accounting.ItemRequestRequestPurchaseTaxRate.Raw, + Merge.accounting.ItemRequestRequestPurchaseTaxRate +> = core.serialization.undiscriminatedUnion([core.serialization.string(), TaxRate]); + +export declare namespace ItemRequestRequestPurchaseTaxRate { + export type Raw = string | TaxRate.Raw; +} diff --git a/src/serialization/resources/accounting/types/ItemRequestRequestSalesAccount.ts b/src/serialization/resources/accounting/types/ItemRequestRequestSalesAccount.ts new file mode 100644 index 000000000..f9bba5120 --- /dev/null +++ b/src/serialization/resources/accounting/types/ItemRequestRequestSalesAccount.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { Account } from "./Account"; + +export const ItemRequestRequestSalesAccount: core.serialization.Schema< + serializers.accounting.ItemRequestRequestSalesAccount.Raw, + Merge.accounting.ItemRequestRequestSalesAccount +> = core.serialization.undiscriminatedUnion([core.serialization.string(), Account]); + +export declare namespace ItemRequestRequestSalesAccount { + export type Raw = string | Account.Raw; +} diff --git a/src/serialization/resources/accounting/types/ItemRequestRequestSalesTaxRate.ts b/src/serialization/resources/accounting/types/ItemRequestRequestSalesTaxRate.ts new file mode 100644 index 000000000..3f6aa6e31 --- /dev/null +++ b/src/serialization/resources/accounting/types/ItemRequestRequestSalesTaxRate.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { TaxRate } from "./TaxRate"; + +export const ItemRequestRequestSalesTaxRate: core.serialization.Schema< + serializers.accounting.ItemRequestRequestSalesTaxRate.Raw, + Merge.accounting.ItemRequestRequestSalesTaxRate +> = core.serialization.undiscriminatedUnion([core.serialization.string(), TaxRate]); + +export declare namespace ItemRequestRequestSalesTaxRate { + export type Raw = string | TaxRate.Raw; +} diff --git a/src/serialization/resources/accounting/types/ItemRequestRequestStatus.ts b/src/serialization/resources/accounting/types/ItemRequestRequestStatus.ts new file mode 100644 index 000000000..f7f42c83f --- /dev/null +++ b/src/serialization/resources/accounting/types/ItemRequestRequestStatus.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { Status7D1Enum } from "./Status7D1Enum"; + +export const ItemRequestRequestStatus: core.serialization.Schema< + serializers.accounting.ItemRequestRequestStatus.Raw, + Merge.accounting.ItemRequestRequestStatus +> = core.serialization.undiscriminatedUnion([Status7D1Enum, core.serialization.string()]); + +export declare namespace ItemRequestRequestStatus { + export type Raw = Status7D1Enum.Raw | string; +} diff --git a/src/serialization/resources/accounting/types/ItemRequestRequestType.ts b/src/serialization/resources/accounting/types/ItemRequestRequestType.ts new file mode 100644 index 000000000..f492e33e1 --- /dev/null +++ b/src/serialization/resources/accounting/types/ItemRequestRequestType.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { Type2BbEnum } from "./Type2BbEnum"; + +export const ItemRequestRequestType: core.serialization.Schema< + serializers.accounting.ItemRequestRequestType.Raw, + Merge.accounting.ItemRequestRequestType +> = core.serialization.undiscriminatedUnion([Type2BbEnum, core.serialization.string()]); + +export declare namespace ItemRequestRequestType { + export type Raw = Type2BbEnum.Raw | string; +} diff --git a/src/serialization/resources/accounting/types/ItemResponse.ts b/src/serialization/resources/accounting/types/ItemResponse.ts new file mode 100644 index 000000000..629d119bc --- /dev/null +++ b/src/serialization/resources/accounting/types/ItemResponse.ts @@ -0,0 +1,30 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { Item } from "./Item"; +import { WarningValidationProblem } from "./WarningValidationProblem"; +import { ErrorValidationProblem } from "./ErrorValidationProblem"; +import { DebugModeLog } from "./DebugModeLog"; + +export const ItemResponse: core.serialization.ObjectSchema< + serializers.accounting.ItemResponse.Raw, + Merge.accounting.ItemResponse +> = core.serialization.object({ + model: Item, + warnings: core.serialization.list(WarningValidationProblem), + errors: core.serialization.list(ErrorValidationProblem), + logs: core.serialization.list(DebugModeLog).optional(), +}); + +export declare namespace ItemResponse { + export interface Raw { + model: Item.Raw; + warnings: WarningValidationProblem.Raw[]; + errors: ErrorValidationProblem.Raw[]; + logs?: DebugModeLog.Raw[] | null; + } +} diff --git a/src/serialization/resources/accounting/types/PatchedItemRequestRequest.ts b/src/serialization/resources/accounting/types/PatchedItemRequestRequest.ts new file mode 100644 index 000000000..4cd8cba06 --- /dev/null +++ b/src/serialization/resources/accounting/types/PatchedItemRequestRequest.ts @@ -0,0 +1,50 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { PatchedItemRequestRequestStatus } from "./PatchedItemRequestRequestStatus"; +import { PatchedItemRequestRequestType } from "./PatchedItemRequestRequestType"; + +export const PatchedItemRequestRequest: core.serialization.ObjectSchema< + serializers.accounting.PatchedItemRequestRequest.Raw, + Merge.accounting.PatchedItemRequestRequest +> = core.serialization.object({ + name: core.serialization.string().optional(), + status: PatchedItemRequestRequestStatus.optional(), + type: PatchedItemRequestRequestType.optional(), + unitPrice: core.serialization.property("unit_price", core.serialization.number().optional()), + purchasePrice: core.serialization.property("purchase_price", core.serialization.number().optional()), + purchaseAccount: core.serialization.property("purchase_account", core.serialization.string().optional()), + salesAccount: core.serialization.property("sales_account", core.serialization.string().optional()), + company: core.serialization.string().optional(), + purchaseTaxRate: core.serialization.property("purchase_tax_rate", core.serialization.string().optional()), + salesTaxRate: core.serialization.property("sales_tax_rate", core.serialization.string().optional()), + integrationParams: core.serialization.property( + "integration_params", + core.serialization.record(core.serialization.string(), core.serialization.unknown()).optional(), + ), + linkedAccountParams: core.serialization.property( + "linked_account_params", + core.serialization.record(core.serialization.string(), core.serialization.unknown()).optional(), + ), +}); + +export declare namespace PatchedItemRequestRequest { + export interface Raw { + name?: string | null; + status?: PatchedItemRequestRequestStatus.Raw | null; + type?: PatchedItemRequestRequestType.Raw | null; + unit_price?: number | null; + purchase_price?: number | null; + purchase_account?: string | null; + sales_account?: string | null; + company?: string | null; + purchase_tax_rate?: string | null; + sales_tax_rate?: string | null; + integration_params?: Record | null; + linked_account_params?: Record | null; + } +} diff --git a/src/serialization/resources/accounting/types/PatchedItemRequestRequestStatus.ts b/src/serialization/resources/accounting/types/PatchedItemRequestRequestStatus.ts new file mode 100644 index 000000000..619ca4040 --- /dev/null +++ b/src/serialization/resources/accounting/types/PatchedItemRequestRequestStatus.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { Status7D1Enum } from "./Status7D1Enum"; + +export const PatchedItemRequestRequestStatus: core.serialization.Schema< + serializers.accounting.PatchedItemRequestRequestStatus.Raw, + Merge.accounting.PatchedItemRequestRequestStatus +> = core.serialization.undiscriminatedUnion([Status7D1Enum, core.serialization.string()]); + +export declare namespace PatchedItemRequestRequestStatus { + export type Raw = Status7D1Enum.Raw | string; +} diff --git a/src/serialization/resources/accounting/types/PatchedItemRequestRequestType.ts b/src/serialization/resources/accounting/types/PatchedItemRequestRequestType.ts new file mode 100644 index 000000000..9ac926599 --- /dev/null +++ b/src/serialization/resources/accounting/types/PatchedItemRequestRequestType.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { Type2BbEnum } from "./Type2BbEnum"; + +export const PatchedItemRequestRequestType: core.serialization.Schema< + serializers.accounting.PatchedItemRequestRequestType.Raw, + Merge.accounting.PatchedItemRequestRequestType +> = core.serialization.undiscriminatedUnion([Type2BbEnum, core.serialization.string()]); + +export declare namespace PatchedItemRequestRequestType { + export type Raw = Type2BbEnum.Raw | string; +} diff --git a/src/serialization/resources/accounting/types/SyncStatus.ts b/src/serialization/resources/accounting/types/SyncStatus.ts index 88eb1f1cf..c6c060cb9 100644 --- a/src/serialization/resources/accounting/types/SyncStatus.ts +++ b/src/serialization/resources/accounting/types/SyncStatus.ts @@ -6,7 +6,7 @@ import * as serializers from "../../../index"; import * as Merge from "../../../../api/index"; import * as core from "../../../../core"; import { LastSyncResultEnum } from "./LastSyncResultEnum"; -import { StatusFd5Enum } from "./StatusFd5Enum"; +import { SyncStatusStatus } from "./SyncStatusStatus"; import { SelectiveSyncConfigurationsUsageEnum } from "./SelectiveSyncConfigurationsUsageEnum"; export const SyncStatus: core.serialization.ObjectSchema< @@ -19,7 +19,7 @@ export const SyncStatus: core.serialization.ObjectSchema< nextSyncStart: core.serialization.property("next_sync_start", core.serialization.date().optional()), lastSyncResult: core.serialization.property("last_sync_result", LastSyncResultEnum.optional()), lastSyncFinished: core.serialization.property("last_sync_finished", core.serialization.date().optional()), - status: StatusFd5Enum, + status: SyncStatusStatus, isInitialSync: core.serialization.property("is_initial_sync", core.serialization.boolean()), selectiveSyncConfigurationsUsage: core.serialization.property( "selective_sync_configurations_usage", @@ -35,7 +35,7 @@ export declare namespace SyncStatus { next_sync_start?: string | null; last_sync_result?: LastSyncResultEnum.Raw | null; last_sync_finished?: string | null; - status: StatusFd5Enum.Raw; + status: SyncStatusStatus.Raw; is_initial_sync: boolean; selective_sync_configurations_usage?: SelectiveSyncConfigurationsUsageEnum.Raw | null; } diff --git a/src/serialization/resources/accounting/types/SyncStatusStatus.ts b/src/serialization/resources/accounting/types/SyncStatusStatus.ts new file mode 100644 index 000000000..41de26d9c --- /dev/null +++ b/src/serialization/resources/accounting/types/SyncStatusStatus.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { StatusFd5Enum } from "./StatusFd5Enum"; + +export const SyncStatusStatus: core.serialization.Schema< + serializers.accounting.SyncStatusStatus.Raw, + Merge.accounting.SyncStatusStatus +> = core.serialization.undiscriminatedUnion([StatusFd5Enum, core.serialization.string()]); + +export declare namespace SyncStatusStatus { + export type Raw = StatusFd5Enum.Raw | string; +} diff --git a/src/serialization/resources/accounting/types/Type2BbEnum.ts b/src/serialization/resources/accounting/types/Type2BbEnum.ts new file mode 100644 index 000000000..f7e17e07f --- /dev/null +++ b/src/serialization/resources/accounting/types/Type2BbEnum.ts @@ -0,0 +1,16 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; + +export const Type2BbEnum: core.serialization.Schema< + serializers.accounting.Type2BbEnum.Raw, + Merge.accounting.Type2BbEnum +> = core.serialization.enum_(["INVENTORY", "NON_INVENTORY", "SERVICE", "UNKNOWN"]); + +export declare namespace Type2BbEnum { + export type Raw = "INVENTORY" | "NON_INVENTORY" | "SERVICE" | "UNKNOWN"; +} diff --git a/src/serialization/resources/accounting/types/index.ts b/src/serialization/resources/accounting/types/index.ts index b6e905df2..ed233c5d8 100644 --- a/src/serialization/resources/accounting/types/index.ts +++ b/src/serialization/resources/accounting/types/index.ts @@ -4,7 +4,10 @@ export * from "./AccountStatus"; export * from "./AccountCurrency"; export * from "./Account"; export * from "./AccountAccountTypeEnum"; +export * from "./AccountDetailsCategory"; export * from "./AccountDetails"; +export * from "./AccountDetailsAndActionsCategory"; +export * from "./AccountDetailsAndActionsStatus"; export * from "./AccountDetailsAndActions"; export * from "./AccountDetailsAndActionsIntegration"; export * from "./AccountDetailsAndActionsStatusEnum"; @@ -119,6 +122,7 @@ export * from "./CreditNoteRequest"; export * from "./CreditNoteResponse"; export * from "./CreditNoteStatusEnum"; export * from "./CreditOrDebitEnum"; +export * from "./DataPassthroughRequestMethod"; export * from "./DataPassthroughRequest"; export * from "./DebugModeLog"; export * from "./DebugModelLogSummary"; @@ -256,6 +260,15 @@ export * from "./ItemPurchaseTaxRate"; export * from "./ItemSalesTaxRate"; export * from "./Item"; export * from "./ItemFormatEnum"; +export * from "./ItemRequestRequestStatus"; +export * from "./ItemRequestRequestType"; +export * from "./ItemRequestRequestPurchaseAccount"; +export * from "./ItemRequestRequestSalesAccount"; +export * from "./ItemRequestRequestCompany"; +export * from "./ItemRequestRequestPurchaseTaxRate"; +export * from "./ItemRequestRequestSalesTaxRate"; +export * from "./ItemRequestRequest"; +export * from "./ItemResponse"; export * from "./ItemSchema"; export * from "./ItemTypeEnum"; export * from "./JournalEntryPaymentsItem"; @@ -328,6 +341,9 @@ export * from "./PaginatedTaxRateList"; export * from "./PaginatedTrackingCategoryList"; export * from "./PaginatedTransactionList"; export * from "./PaginatedVendorCreditList"; +export * from "./PatchedItemRequestRequestStatus"; +export * from "./PatchedItemRequestRequestType"; +export * from "./PatchedItemRequestRequest"; export * from "./PatchedPaymentRequestContact"; export * from "./PatchedPaymentRequestAccount"; export * from "./PatchedPaymentRequestPaymentMethod"; @@ -415,6 +431,7 @@ export * from "./SelectiveSyncConfigurationsUsageEnum"; export * from "./Status7D1Enum"; export * from "./Status895Enum"; export * from "./StatusFd5Enum"; +export * from "./SyncStatusStatus"; export * from "./SyncStatus"; export * from "./TaxComponentComponentType"; export * from "./TaxComponent"; @@ -436,6 +453,7 @@ export * from "./TransactionCurrencyEnum"; export * from "./TransactionLineItemItem"; export * from "./TransactionLineItemCurrency"; export * from "./TransactionLineItem"; +export * from "./Type2BbEnum"; export * from "./UnderlyingTransactionTypeEnum"; export * from "./ValidationProblemSource"; export * from "./VendorCreditVendor"; diff --git a/src/serialization/resources/ats/resources/candidates/client/requests/IgnoreCommonModelRequest.ts b/src/serialization/resources/ats/resources/candidates/client/requests/IgnoreCommonModelRequest.ts index e7b8861b4..8cb5d39c7 100644 --- a/src/serialization/resources/ats/resources/candidates/client/requests/IgnoreCommonModelRequest.ts +++ b/src/serialization/resources/ats/resources/candidates/client/requests/IgnoreCommonModelRequest.ts @@ -5,19 +5,19 @@ import * as serializers from "../../../../../../index"; import * as Merge from "../../../../../../../api/index"; import * as core from "../../../../../../../core"; -import { ReasonEnum } from "../../../../types/ReasonEnum"; +import { IgnoreCommonModelRequestReason } from "../../types/IgnoreCommonModelRequestReason"; export const IgnoreCommonModelRequest: core.serialization.Schema< serializers.ats.IgnoreCommonModelRequest.Raw, Merge.ats.IgnoreCommonModelRequest > = core.serialization.object({ - reason: ReasonEnum, + reason: IgnoreCommonModelRequestReason, message: core.serialization.string().optional(), }); export declare namespace IgnoreCommonModelRequest { export interface Raw { - reason: ReasonEnum.Raw; + reason: IgnoreCommonModelRequestReason.Raw; message?: string | null; } } diff --git a/src/serialization/resources/ats/resources/candidates/types/IgnoreCommonModelRequestReason.ts b/src/serialization/resources/ats/resources/candidates/types/IgnoreCommonModelRequestReason.ts new file mode 100644 index 000000000..6c38b550d --- /dev/null +++ b/src/serialization/resources/ats/resources/candidates/types/IgnoreCommonModelRequestReason.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../../../index"; +import * as Merge from "../../../../../../api/index"; +import * as core from "../../../../../../core"; +import { ReasonEnum } from "../../../types/ReasonEnum"; + +export const IgnoreCommonModelRequestReason: core.serialization.Schema< + serializers.ats.IgnoreCommonModelRequestReason.Raw, + Merge.ats.IgnoreCommonModelRequestReason +> = core.serialization.undiscriminatedUnion([ReasonEnum, core.serialization.string()]); + +export declare namespace IgnoreCommonModelRequestReason { + export type Raw = ReasonEnum.Raw | string; +} diff --git a/src/serialization/resources/ats/resources/candidates/types/index.ts b/src/serialization/resources/ats/resources/candidates/types/index.ts index 61344cf86..36e0b3d6e 100644 --- a/src/serialization/resources/ats/resources/candidates/types/index.ts +++ b/src/serialization/resources/ats/resources/candidates/types/index.ts @@ -1,2 +1,3 @@ export * from "./CandidatesListRequestExpand"; export * from "./CandidatesRetrieveRequestExpand"; +export * from "./IgnoreCommonModelRequestReason"; diff --git a/src/serialization/resources/ats/resources/index.ts b/src/serialization/resources/ats/resources/index.ts index dfc547705..4c6c6fad9 100644 --- a/src/serialization/resources/ats/resources/index.ts +++ b/src/serialization/resources/ats/resources/index.ts @@ -16,6 +16,8 @@ export * as jobPostings from "./jobPostings"; export * from "./jobPostings/types"; export * as jobs from "./jobs"; export * from "./jobs/types"; +export * as linkToken from "./linkToken"; +export * from "./linkToken/types"; export * as linkedAccounts from "./linkedAccounts"; export * from "./linkedAccounts/types"; export * as offers from "./offers"; @@ -36,7 +38,6 @@ export * from "./fieldMapping/client/requests"; export * as generateKey from "./generateKey"; export * from "./generateKey/client/requests"; export * from "./interviews/client/requests"; -export * as linkToken from "./linkToken"; export * from "./linkToken/client/requests"; export * as regenerateKey from "./regenerateKey"; export * from "./regenerateKey/client/requests"; diff --git a/src/serialization/resources/ats/resources/linkToken/client/requests/EndUserDetailsRequest.ts b/src/serialization/resources/ats/resources/linkToken/client/requests/EndUserDetailsRequest.ts index ff2256f65..c21e8fa0f 100644 --- a/src/serialization/resources/ats/resources/linkToken/client/requests/EndUserDetailsRequest.ts +++ b/src/serialization/resources/ats/resources/linkToken/client/requests/EndUserDetailsRequest.ts @@ -8,7 +8,7 @@ import * as core from "../../../../../../../core"; import { CategoriesEnum } from "../../../../types/CategoriesEnum"; import { CommonModelScopesBodyRequest } from "../../../../types/CommonModelScopesBodyRequest"; import { IndividualCommonModelScopeDeserializerRequest } from "../../../../types/IndividualCommonModelScopeDeserializerRequest"; -import { LanguageEnum } from "../../../../types/LanguageEnum"; +import { EndUserDetailsRequestLanguage } from "../../types/EndUserDetailsRequestLanguage"; export const EndUserDetailsRequest: core.serialization.Schema< serializers.ats.EndUserDetailsRequest.Raw, @@ -38,7 +38,7 @@ export const EndUserDetailsRequest: core.serialization.Schema< ) .optional(), ), - language: LanguageEnum.optional(), + language: EndUserDetailsRequestLanguage.optional(), areSyncsDisabled: core.serialization.property("are_syncs_disabled", core.serialization.boolean().optional()), integrationSpecificConfig: core.serialization.property( "integration_specific_config", @@ -61,7 +61,7 @@ export declare namespace EndUserDetailsRequest { string, IndividualCommonModelScopeDeserializerRequest.Raw[] | null | undefined > | null; - language?: LanguageEnum.Raw | null; + language?: EndUserDetailsRequestLanguage.Raw | null; are_syncs_disabled?: boolean | null; integration_specific_config?: Record | null; } diff --git a/src/serialization/resources/ats/resources/linkToken/index.ts b/src/serialization/resources/ats/resources/linkToken/index.ts index 5ec76921e..c9240f83b 100644 --- a/src/serialization/resources/ats/resources/linkToken/index.ts +++ b/src/serialization/resources/ats/resources/linkToken/index.ts @@ -1 +1,2 @@ +export * from "./types"; export * from "./client"; diff --git a/src/serialization/resources/ats/resources/linkToken/types/EndUserDetailsRequestLanguage.ts b/src/serialization/resources/ats/resources/linkToken/types/EndUserDetailsRequestLanguage.ts new file mode 100644 index 000000000..8c3bf6a9e --- /dev/null +++ b/src/serialization/resources/ats/resources/linkToken/types/EndUserDetailsRequestLanguage.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../../../index"; +import * as Merge from "../../../../../../api/index"; +import * as core from "../../../../../../core"; +import { LanguageEnum } from "../../../types/LanguageEnum"; + +export const EndUserDetailsRequestLanguage: core.serialization.Schema< + serializers.ats.EndUserDetailsRequestLanguage.Raw, + Merge.ats.EndUserDetailsRequestLanguage +> = core.serialization.undiscriminatedUnion([LanguageEnum, core.serialization.string()]); + +export declare namespace EndUserDetailsRequestLanguage { + export type Raw = LanguageEnum.Raw | string; +} diff --git a/src/serialization/resources/ats/resources/linkToken/types/index.ts b/src/serialization/resources/ats/resources/linkToken/types/index.ts new file mode 100644 index 000000000..c90e13c37 --- /dev/null +++ b/src/serialization/resources/ats/resources/linkToken/types/index.ts @@ -0,0 +1 @@ +export * from "./EndUserDetailsRequestLanguage"; diff --git a/src/serialization/resources/ats/types/AccountDetails.ts b/src/serialization/resources/ats/types/AccountDetails.ts index de1aa782e..e9aed2be8 100644 --- a/src/serialization/resources/ats/types/AccountDetails.ts +++ b/src/serialization/resources/ats/types/AccountDetails.ts @@ -5,7 +5,7 @@ import * as serializers from "../../../index"; import * as Merge from "../../../../api/index"; import * as core from "../../../../core"; -import { CategoryEnum } from "./CategoryEnum"; +import { AccountDetailsCategory } from "./AccountDetailsCategory"; export const AccountDetails: core.serialization.ObjectSchema< serializers.ats.AccountDetails.Raw, @@ -14,7 +14,7 @@ export const AccountDetails: core.serialization.ObjectSchema< id: core.serialization.string().optional(), integration: core.serialization.string().optional(), integrationSlug: core.serialization.property("integration_slug", core.serialization.string().optional()), - category: CategoryEnum.optional(), + category: AccountDetailsCategory.optional(), endUserOriginId: core.serialization.property("end_user_origin_id", core.serialization.string().optional()), endUserOrganizationName: core.serialization.property( "end_user_organization_name", @@ -33,7 +33,7 @@ export declare namespace AccountDetails { id?: string | null; integration?: string | null; integration_slug?: string | null; - category?: CategoryEnum.Raw | null; + category?: AccountDetailsCategory.Raw | null; end_user_origin_id?: string | null; end_user_organization_name?: string | null; end_user_email_address?: string | null; diff --git a/src/serialization/resources/ats/types/AccountDetailsAndActions.ts b/src/serialization/resources/ats/types/AccountDetailsAndActions.ts index 60c0cb160..70c3d148a 100644 --- a/src/serialization/resources/ats/types/AccountDetailsAndActions.ts +++ b/src/serialization/resources/ats/types/AccountDetailsAndActions.ts @@ -5,8 +5,8 @@ import * as serializers from "../../../index"; import * as Merge from "../../../../api/index"; import * as core from "../../../../core"; -import { CategoryEnum } from "./CategoryEnum"; -import { AccountDetailsAndActionsStatusEnum } from "./AccountDetailsAndActionsStatusEnum"; +import { AccountDetailsAndActionsCategory } from "./AccountDetailsAndActionsCategory"; +import { AccountDetailsAndActionsStatus } from "./AccountDetailsAndActionsStatus"; import { AccountDetailsAndActionsIntegration } from "./AccountDetailsAndActionsIntegration"; export const AccountDetailsAndActions: core.serialization.ObjectSchema< @@ -14,8 +14,8 @@ export const AccountDetailsAndActions: core.serialization.ObjectSchema< Merge.ats.AccountDetailsAndActions > = core.serialization.object({ id: core.serialization.string(), - category: CategoryEnum.optional(), - status: AccountDetailsAndActionsStatusEnum, + category: AccountDetailsAndActionsCategory.optional(), + status: AccountDetailsAndActionsStatus, statusDetail: core.serialization.property("status_detail", core.serialization.string().optional()), endUserOriginId: core.serialization.property("end_user_origin_id", core.serialization.string().optional()), endUserOrganizationName: core.serialization.property("end_user_organization_name", core.serialization.string()), @@ -26,13 +26,17 @@ export const AccountDetailsAndActions: core.serialization.ObjectSchema< integration: AccountDetailsAndActionsIntegration.optional(), accountType: core.serialization.property("account_type", core.serialization.string()), completedAt: core.serialization.property("completed_at", core.serialization.date()), + integrationSpecificFields: core.serialization.property( + "integration_specific_fields", + core.serialization.record(core.serialization.string(), core.serialization.unknown()).optional(), + ), }); export declare namespace AccountDetailsAndActions { export interface Raw { id: string; - category?: CategoryEnum.Raw | null; - status: AccountDetailsAndActionsStatusEnum.Raw; + category?: AccountDetailsAndActionsCategory.Raw | null; + status: AccountDetailsAndActionsStatus.Raw; status_detail?: string | null; end_user_origin_id?: string | null; end_user_organization_name: string; @@ -43,5 +47,6 @@ export declare namespace AccountDetailsAndActions { integration?: AccountDetailsAndActionsIntegration.Raw | null; account_type: string; completed_at: string; + integration_specific_fields?: Record | null; } } diff --git a/src/serialization/resources/ats/types/AccountDetailsAndActionsCategory.ts b/src/serialization/resources/ats/types/AccountDetailsAndActionsCategory.ts new file mode 100644 index 000000000..01d67c3e6 --- /dev/null +++ b/src/serialization/resources/ats/types/AccountDetailsAndActionsCategory.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { CategoryEnum } from "./CategoryEnum"; + +export const AccountDetailsAndActionsCategory: core.serialization.Schema< + serializers.ats.AccountDetailsAndActionsCategory.Raw, + Merge.ats.AccountDetailsAndActionsCategory +> = core.serialization.undiscriminatedUnion([CategoryEnum, core.serialization.string()]); + +export declare namespace AccountDetailsAndActionsCategory { + export type Raw = CategoryEnum.Raw | string; +} diff --git a/src/serialization/resources/ats/types/AccountDetailsAndActionsStatus.ts b/src/serialization/resources/ats/types/AccountDetailsAndActionsStatus.ts new file mode 100644 index 000000000..619e31c13 --- /dev/null +++ b/src/serialization/resources/ats/types/AccountDetailsAndActionsStatus.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { AccountDetailsAndActionsStatusEnum } from "./AccountDetailsAndActionsStatusEnum"; + +export const AccountDetailsAndActionsStatus: core.serialization.Schema< + serializers.ats.AccountDetailsAndActionsStatus.Raw, + Merge.ats.AccountDetailsAndActionsStatus +> = core.serialization.undiscriminatedUnion([AccountDetailsAndActionsStatusEnum, core.serialization.string()]); + +export declare namespace AccountDetailsAndActionsStatus { + export type Raw = AccountDetailsAndActionsStatusEnum.Raw | string; +} diff --git a/src/serialization/resources/ats/types/AccountDetailsCategory.ts b/src/serialization/resources/ats/types/AccountDetailsCategory.ts new file mode 100644 index 000000000..ce57f5e7d --- /dev/null +++ b/src/serialization/resources/ats/types/AccountDetailsCategory.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { CategoryEnum } from "./CategoryEnum"; + +export const AccountDetailsCategory: core.serialization.Schema< + serializers.ats.AccountDetailsCategory.Raw, + Merge.ats.AccountDetailsCategory +> = core.serialization.undiscriminatedUnion([CategoryEnum, core.serialization.string()]); + +export declare namespace AccountDetailsCategory { + export type Raw = CategoryEnum.Raw | string; +} diff --git a/src/serialization/resources/ats/types/Job.ts b/src/serialization/resources/ats/types/Job.ts index ab392f53a..f4bd30f60 100644 --- a/src/serialization/resources/ats/types/Job.ts +++ b/src/serialization/resources/ats/types/Job.ts @@ -6,7 +6,7 @@ import * as serializers from "../../../index"; import * as Merge from "../../../../api/index"; import * as core from "../../../../core"; import { JobStatus } from "./JobStatus"; -import { JobTypeEnum } from "./JobTypeEnum"; +import { JobType } from "./JobType"; import { Url } from "./Url"; import { JobDepartmentsItem } from "./JobDepartmentsItem"; import { JobOfficesItem } from "./JobOfficesItem"; @@ -23,7 +23,7 @@ export const Job: core.serialization.ObjectSchema = @@ -22,7 +22,7 @@ export const JobPosting: core.serialization.ObjectSchema = core.serialization.undiscriminatedUnion([JobPostingStatusEnum, core.serialization.string()]); + +export declare namespace JobPostingStatus { + export type Raw = JobPostingStatusEnum.Raw | string; +} diff --git a/src/serialization/resources/ats/types/JobType.ts b/src/serialization/resources/ats/types/JobType.ts new file mode 100644 index 000000000..c66cf6495 --- /dev/null +++ b/src/serialization/resources/ats/types/JobType.ts @@ -0,0 +1,15 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { JobTypeEnum } from "./JobTypeEnum"; + +export const JobType: core.serialization.Schema = + core.serialization.undiscriminatedUnion([JobTypeEnum, core.serialization.string()]); + +export declare namespace JobType { + export type Raw = JobTypeEnum.Raw | string; +} diff --git a/src/serialization/resources/ats/types/SyncStatus.ts b/src/serialization/resources/ats/types/SyncStatus.ts index f58591451..598445d90 100644 --- a/src/serialization/resources/ats/types/SyncStatus.ts +++ b/src/serialization/resources/ats/types/SyncStatus.ts @@ -5,8 +5,8 @@ import * as serializers from "../../../index"; import * as Merge from "../../../../api/index"; import * as core from "../../../../core"; -import { LastSyncResultEnum } from "./LastSyncResultEnum"; -import { StatusFd5Enum } from "./StatusFd5Enum"; +import { SyncStatusLastSyncResult } from "./SyncStatusLastSyncResult"; +import { SyncStatusStatus } from "./SyncStatusStatus"; import { SelectiveSyncConfigurationsUsageEnum } from "./SelectiveSyncConfigurationsUsageEnum"; export const SyncStatus: core.serialization.ObjectSchema = @@ -15,9 +15,9 @@ export const SyncStatus: core.serialization.ObjectSchema = core.serialization.undiscriminatedUnion([LastSyncResultEnum, core.serialization.string()]); + +export declare namespace SyncStatusLastSyncResult { + export type Raw = LastSyncResultEnum.Raw | string; +} diff --git a/src/serialization/resources/ats/types/SyncStatusStatus.ts b/src/serialization/resources/ats/types/SyncStatusStatus.ts new file mode 100644 index 000000000..a3799a390 --- /dev/null +++ b/src/serialization/resources/ats/types/SyncStatusStatus.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { StatusFd5Enum } from "./StatusFd5Enum"; + +export const SyncStatusStatus: core.serialization.Schema< + serializers.ats.SyncStatusStatus.Raw, + Merge.ats.SyncStatusStatus +> = core.serialization.undiscriminatedUnion([StatusFd5Enum, core.serialization.string()]); + +export declare namespace SyncStatusStatus { + export type Raw = StatusFd5Enum.Raw | string; +} diff --git a/src/serialization/resources/ats/types/index.ts b/src/serialization/resources/ats/types/index.ts index cd0b71865..b5bd450ee 100644 --- a/src/serialization/resources/ats/types/index.ts +++ b/src/serialization/resources/ats/types/index.ts @@ -1,5 +1,8 @@ export * from "./AccessRoleEnum"; +export * from "./AccountDetailsCategory"; export * from "./AccountDetails"; +export * from "./AccountDetailsAndActionsCategory"; +export * from "./AccountDetailsAndActionsStatus"; export * from "./AccountDetailsAndActions"; export * from "./AccountDetailsAndActionsIntegration"; export * from "./AccountDetailsAndActionsStatusEnum"; @@ -92,6 +95,7 @@ export * from "./IssueStatus"; export * from "./Issue"; export * from "./IssueStatusEnum"; export * from "./JobStatus"; +export * from "./JobType"; export * from "./JobDepartmentsItem"; export * from "./JobOfficesItem"; export * from "./JobHiringManagersItem"; @@ -101,6 +105,7 @@ export * from "./JobInterviewStageJob"; export * from "./JobInterviewStage"; export * from "./JobPostingJobPostingUrlsItem"; export * from "./JobPostingJob"; +export * from "./JobPostingStatus"; export * from "./JobPosting"; export * from "./JobPostingStatusEnum"; export * from "./JobStatusEnum"; @@ -196,6 +201,8 @@ export * from "./ScreeningQuestionOption"; export * from "./ScreeningQuestionTypeEnum"; export * from "./SelectiveSyncConfigurationsUsageEnum"; export * from "./StatusFd5Enum"; +export * from "./SyncStatusLastSyncResult"; +export * from "./SyncStatusStatus"; export * from "./SyncStatus"; export * from "./Tag"; export * from "./UrlUrlType"; diff --git a/src/serialization/resources/crm/resources/index.ts b/src/serialization/resources/crm/resources/index.ts index 201599f8c..3518a48a6 100644 --- a/src/serialization/resources/crm/resources/index.ts +++ b/src/serialization/resources/crm/resources/index.ts @@ -8,6 +8,8 @@ export * as issues from "./issues"; export * from "./issues/types"; export * as leads from "./leads"; export * from "./leads/types"; +export * as linkToken from "./linkToken"; +export * from "./linkToken/types"; export * as linkedAccounts from "./linkedAccounts"; export * from "./linkedAccounts/types"; export * as notes from "./notes"; @@ -33,7 +35,6 @@ export * from "./fieldMapping/client/requests"; export * as generateKey from "./generateKey"; export * from "./generateKey/client/requests"; export * from "./leads/client/requests"; -export * as linkToken from "./linkToken"; export * from "./linkToken/client/requests"; export * from "./notes/client/requests"; export * from "./opportunities/client/requests"; diff --git a/src/serialization/resources/crm/resources/linkToken/client/requests/EndUserDetailsRequest.ts b/src/serialization/resources/crm/resources/linkToken/client/requests/EndUserDetailsRequest.ts index edf0f5dc1..e0b3cc33c 100644 --- a/src/serialization/resources/crm/resources/linkToken/client/requests/EndUserDetailsRequest.ts +++ b/src/serialization/resources/crm/resources/linkToken/client/requests/EndUserDetailsRequest.ts @@ -8,7 +8,7 @@ import * as core from "../../../../../../../core"; import { CategoriesEnum } from "../../../../types/CategoriesEnum"; import { CommonModelScopesBodyRequest } from "../../../../types/CommonModelScopesBodyRequest"; import { IndividualCommonModelScopeDeserializerRequest } from "../../../../types/IndividualCommonModelScopeDeserializerRequest"; -import { LanguageEnum } from "../../../../types/LanguageEnum"; +import { EndUserDetailsRequestLanguage } from "../../types/EndUserDetailsRequestLanguage"; export const EndUserDetailsRequest: core.serialization.Schema< serializers.crm.EndUserDetailsRequest.Raw, @@ -38,7 +38,7 @@ export const EndUserDetailsRequest: core.serialization.Schema< ) .optional(), ), - language: LanguageEnum.optional(), + language: EndUserDetailsRequestLanguage.optional(), areSyncsDisabled: core.serialization.property("are_syncs_disabled", core.serialization.boolean().optional()), integrationSpecificConfig: core.serialization.property( "integration_specific_config", @@ -61,7 +61,7 @@ export declare namespace EndUserDetailsRequest { string, IndividualCommonModelScopeDeserializerRequest.Raw[] | null | undefined > | null; - language?: LanguageEnum.Raw | null; + language?: EndUserDetailsRequestLanguage.Raw | null; are_syncs_disabled?: boolean | null; integration_specific_config?: Record | null; } diff --git a/src/serialization/resources/crm/resources/linkToken/index.ts b/src/serialization/resources/crm/resources/linkToken/index.ts index 5ec76921e..c9240f83b 100644 --- a/src/serialization/resources/crm/resources/linkToken/index.ts +++ b/src/serialization/resources/crm/resources/linkToken/index.ts @@ -1 +1,2 @@ +export * from "./types"; export * from "./client"; diff --git a/src/serialization/resources/crm/resources/linkToken/types/EndUserDetailsRequestLanguage.ts b/src/serialization/resources/crm/resources/linkToken/types/EndUserDetailsRequestLanguage.ts new file mode 100644 index 000000000..63a5fcb71 --- /dev/null +++ b/src/serialization/resources/crm/resources/linkToken/types/EndUserDetailsRequestLanguage.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../../../index"; +import * as Merge from "../../../../../../api/index"; +import * as core from "../../../../../../core"; +import { LanguageEnum } from "../../../types/LanguageEnum"; + +export const EndUserDetailsRequestLanguage: core.serialization.Schema< + serializers.crm.EndUserDetailsRequestLanguage.Raw, + Merge.crm.EndUserDetailsRequestLanguage +> = core.serialization.undiscriminatedUnion([LanguageEnum, core.serialization.string()]); + +export declare namespace EndUserDetailsRequestLanguage { + export type Raw = LanguageEnum.Raw | string; +} diff --git a/src/serialization/resources/crm/resources/linkToken/types/index.ts b/src/serialization/resources/crm/resources/linkToken/types/index.ts new file mode 100644 index 000000000..c90e13c37 --- /dev/null +++ b/src/serialization/resources/crm/resources/linkToken/types/index.ts @@ -0,0 +1 @@ +export * from "./EndUserDetailsRequestLanguage"; diff --git a/src/serialization/resources/crm/types/AccountDetails.ts b/src/serialization/resources/crm/types/AccountDetails.ts index ad81c2366..dece4fdd4 100644 --- a/src/serialization/resources/crm/types/AccountDetails.ts +++ b/src/serialization/resources/crm/types/AccountDetails.ts @@ -5,7 +5,7 @@ import * as serializers from "../../../index"; import * as Merge from "../../../../api/index"; import * as core from "../../../../core"; -import { CategoryEnum } from "./CategoryEnum"; +import { AccountDetailsCategory } from "./AccountDetailsCategory"; export const AccountDetails: core.serialization.ObjectSchema< serializers.crm.AccountDetails.Raw, @@ -14,7 +14,7 @@ export const AccountDetails: core.serialization.ObjectSchema< id: core.serialization.string().optional(), integration: core.serialization.string().optional(), integrationSlug: core.serialization.property("integration_slug", core.serialization.string().optional()), - category: CategoryEnum.optional(), + category: AccountDetailsCategory.optional(), endUserOriginId: core.serialization.property("end_user_origin_id", core.serialization.string().optional()), endUserOrganizationName: core.serialization.property( "end_user_organization_name", @@ -33,7 +33,7 @@ export declare namespace AccountDetails { id?: string | null; integration?: string | null; integration_slug?: string | null; - category?: CategoryEnum.Raw | null; + category?: AccountDetailsCategory.Raw | null; end_user_origin_id?: string | null; end_user_organization_name?: string | null; end_user_email_address?: string | null; diff --git a/src/serialization/resources/crm/types/AccountDetailsAndActions.ts b/src/serialization/resources/crm/types/AccountDetailsAndActions.ts index b47c2599c..168525325 100644 --- a/src/serialization/resources/crm/types/AccountDetailsAndActions.ts +++ b/src/serialization/resources/crm/types/AccountDetailsAndActions.ts @@ -5,8 +5,8 @@ import * as serializers from "../../../index"; import * as Merge from "../../../../api/index"; import * as core from "../../../../core"; -import { CategoryEnum } from "./CategoryEnum"; -import { AccountDetailsAndActionsStatusEnum } from "./AccountDetailsAndActionsStatusEnum"; +import { AccountDetailsAndActionsCategory } from "./AccountDetailsAndActionsCategory"; +import { AccountDetailsAndActionsStatus } from "./AccountDetailsAndActionsStatus"; import { AccountDetailsAndActionsIntegration } from "./AccountDetailsAndActionsIntegration"; export const AccountDetailsAndActions: core.serialization.ObjectSchema< @@ -14,8 +14,8 @@ export const AccountDetailsAndActions: core.serialization.ObjectSchema< Merge.crm.AccountDetailsAndActions > = core.serialization.object({ id: core.serialization.string(), - category: CategoryEnum.optional(), - status: AccountDetailsAndActionsStatusEnum, + category: AccountDetailsAndActionsCategory.optional(), + status: AccountDetailsAndActionsStatus, statusDetail: core.serialization.property("status_detail", core.serialization.string().optional()), endUserOriginId: core.serialization.property("end_user_origin_id", core.serialization.string().optional()), endUserOrganizationName: core.serialization.property("end_user_organization_name", core.serialization.string()), @@ -31,8 +31,8 @@ export const AccountDetailsAndActions: core.serialization.ObjectSchema< export declare namespace AccountDetailsAndActions { export interface Raw { id: string; - category?: CategoryEnum.Raw | null; - status: AccountDetailsAndActionsStatusEnum.Raw; + category?: AccountDetailsAndActionsCategory.Raw | null; + status: AccountDetailsAndActionsStatus.Raw; status_detail?: string | null; end_user_origin_id?: string | null; end_user_organization_name: string; diff --git a/src/serialization/resources/crm/types/AccountDetailsAndActionsCategory.ts b/src/serialization/resources/crm/types/AccountDetailsAndActionsCategory.ts new file mode 100644 index 000000000..1e5978872 --- /dev/null +++ b/src/serialization/resources/crm/types/AccountDetailsAndActionsCategory.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { CategoryEnum } from "./CategoryEnum"; + +export const AccountDetailsAndActionsCategory: core.serialization.Schema< + serializers.crm.AccountDetailsAndActionsCategory.Raw, + Merge.crm.AccountDetailsAndActionsCategory +> = core.serialization.undiscriminatedUnion([CategoryEnum, core.serialization.string()]); + +export declare namespace AccountDetailsAndActionsCategory { + export type Raw = CategoryEnum.Raw | string; +} diff --git a/src/serialization/resources/crm/types/AccountDetailsAndActionsStatus.ts b/src/serialization/resources/crm/types/AccountDetailsAndActionsStatus.ts new file mode 100644 index 000000000..f07fb6760 --- /dev/null +++ b/src/serialization/resources/crm/types/AccountDetailsAndActionsStatus.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { AccountDetailsAndActionsStatusEnum } from "./AccountDetailsAndActionsStatusEnum"; + +export const AccountDetailsAndActionsStatus: core.serialization.Schema< + serializers.crm.AccountDetailsAndActionsStatus.Raw, + Merge.crm.AccountDetailsAndActionsStatus +> = core.serialization.undiscriminatedUnion([AccountDetailsAndActionsStatusEnum, core.serialization.string()]); + +export declare namespace AccountDetailsAndActionsStatus { + export type Raw = AccountDetailsAndActionsStatusEnum.Raw | string; +} diff --git a/src/serialization/resources/crm/types/AccountDetailsCategory.ts b/src/serialization/resources/crm/types/AccountDetailsCategory.ts new file mode 100644 index 000000000..ba935a30a --- /dev/null +++ b/src/serialization/resources/crm/types/AccountDetailsCategory.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { CategoryEnum } from "./CategoryEnum"; + +export const AccountDetailsCategory: core.serialization.Schema< + serializers.crm.AccountDetailsCategory.Raw, + Merge.crm.AccountDetailsCategory +> = core.serialization.undiscriminatedUnion([CategoryEnum, core.serialization.string()]); + +export declare namespace AccountDetailsCategory { + export type Raw = CategoryEnum.Raw | string; +} diff --git a/src/serialization/resources/crm/types/CustomObjectRequest.ts b/src/serialization/resources/crm/types/CustomObjectRequest.ts index ac41f5523..79c5e5c7c 100644 --- a/src/serialization/resources/crm/types/CustomObjectRequest.ts +++ b/src/serialization/resources/crm/types/CustomObjectRequest.ts @@ -11,10 +11,20 @@ export const CustomObjectRequest: core.serialization.ObjectSchema< Merge.crm.CustomObjectRequest > = core.serialization.object({ fields: core.serialization.record(core.serialization.string(), core.serialization.unknown()), + integrationParams: core.serialization.property( + "integration_params", + core.serialization.record(core.serialization.string(), core.serialization.unknown()).optional(), + ), + linkedAccountParams: core.serialization.property( + "linked_account_params", + core.serialization.record(core.serialization.string(), core.serialization.unknown()).optional(), + ), }); export declare namespace CustomObjectRequest { export interface Raw { fields: Record; + integration_params?: Record | null; + linked_account_params?: Record | null; } } diff --git a/src/serialization/resources/crm/types/EventTypeEnum.ts b/src/serialization/resources/crm/types/EventTypeEnum.ts index 1388d033b..137bc86eb 100644 --- a/src/serialization/resources/crm/types/EventTypeEnum.ts +++ b/src/serialization/resources/crm/types/EventTypeEnum.ts @@ -13,6 +13,7 @@ export const EventTypeEnum: core.serialization.Schema = core.serialization.object({ - reason: ReasonEnum, + reason: IgnoreCommonModelRequestReason, message: core.serialization.string().optional(), }); export declare namespace IgnoreCommonModelRequest { export interface Raw { - reason: ReasonEnum.Raw; + reason: IgnoreCommonModelRequestReason.Raw; message?: string | null; } } diff --git a/src/serialization/resources/crm/types/IgnoreCommonModelRequestReason.ts b/src/serialization/resources/crm/types/IgnoreCommonModelRequestReason.ts new file mode 100644 index 000000000..4e5e060f4 --- /dev/null +++ b/src/serialization/resources/crm/types/IgnoreCommonModelRequestReason.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { ReasonEnum } from "./ReasonEnum"; + +export const IgnoreCommonModelRequestReason: core.serialization.Schema< + serializers.crm.IgnoreCommonModelRequestReason.Raw, + Merge.crm.IgnoreCommonModelRequestReason +> = core.serialization.undiscriminatedUnion([ReasonEnum, core.serialization.string()]); + +export declare namespace IgnoreCommonModelRequestReason { + export type Raw = ReasonEnum.Raw | string; +} diff --git a/src/serialization/resources/crm/types/SyncStatus.ts b/src/serialization/resources/crm/types/SyncStatus.ts index c1e78f4a4..f35cc650a 100644 --- a/src/serialization/resources/crm/types/SyncStatus.ts +++ b/src/serialization/resources/crm/types/SyncStatus.ts @@ -6,7 +6,7 @@ import * as serializers from "../../../index"; import * as Merge from "../../../../api/index"; import * as core from "../../../../core"; import { SyncStatusLastSyncResult } from "./SyncStatusLastSyncResult"; -import { StatusFd5Enum } from "./StatusFd5Enum"; +import { SyncStatusStatus } from "./SyncStatusStatus"; import { SelectiveSyncConfigurationsUsageEnum } from "./SelectiveSyncConfigurationsUsageEnum"; export const SyncStatus: core.serialization.ObjectSchema = @@ -17,7 +17,7 @@ export const SyncStatus: core.serialization.ObjectSchema = core.serialization.undiscriminatedUnion([StatusFd5Enum, core.serialization.string()]); + +export declare namespace SyncStatusStatus { + export type Raw = StatusFd5Enum.Raw | string; +} diff --git a/src/serialization/resources/crm/types/index.ts b/src/serialization/resources/crm/types/index.ts index cb702ba4d..7bd5d4b47 100644 --- a/src/serialization/resources/crm/types/index.ts +++ b/src/serialization/resources/crm/types/index.ts @@ -1,6 +1,9 @@ export * from "./AccountOwner"; export * from "./Account"; +export * from "./AccountDetailsCategory"; export * from "./AccountDetails"; +export * from "./AccountDetailsAndActionsCategory"; +export * from "./AccountDetailsAndActionsStatus"; export * from "./AccountDetailsAndActions"; export * from "./AccountDetailsAndActionsIntegration"; export * from "./AccountDetailsAndActionsStatusEnum"; @@ -84,6 +87,7 @@ export * from "./FieldMappingInstanceResponse"; export * from "./FieldPermissionDeserializer"; export * from "./FieldPermissionDeserializerRequest"; export * from "./FieldTypeEnum"; +export * from "./IgnoreCommonModelRequestReason"; export * from "./IgnoreCommonModelRequest"; export * from "./IndividualCommonModelScopeDeserializer"; export * from "./IndividualCommonModelScopeDeserializerRequest"; @@ -196,6 +200,7 @@ export * from "./SelectiveSyncConfigurationsUsageEnum"; export * from "./Stage"; export * from "./StatusFd5Enum"; export * from "./SyncStatusLastSyncResult"; +export * from "./SyncStatusStatus"; export * from "./SyncStatus"; export * from "./TaskOwner"; export * from "./TaskAccount"; diff --git a/src/serialization/resources/filestorage/resources/files/types/FilesDownloadRequestMetaListRequestOrderBy.ts b/src/serialization/resources/filestorage/resources/files/types/FilesDownloadRequestMetaListRequestOrderBy.ts new file mode 100644 index 000000000..e63c22279 --- /dev/null +++ b/src/serialization/resources/filestorage/resources/files/types/FilesDownloadRequestMetaListRequestOrderBy.ts @@ -0,0 +1,16 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../../../index"; +import * as Merge from "../../../../../../api/index"; +import * as core from "../../../../../../core"; + +export const FilesDownloadRequestMetaListRequestOrderBy: core.serialization.Schema< + serializers.filestorage.FilesDownloadRequestMetaListRequestOrderBy.Raw, + Merge.filestorage.FilesDownloadRequestMetaListRequestOrderBy +> = core.serialization.enum_(["-created_at", "-modified_at", "created_at", "modified_at"]); + +export declare namespace FilesDownloadRequestMetaListRequestOrderBy { + export type Raw = "-created_at" | "-modified_at" | "created_at" | "modified_at"; +} diff --git a/src/serialization/resources/filestorage/resources/files/types/FilesListRequestOrderBy.ts b/src/serialization/resources/filestorage/resources/files/types/FilesListRequestOrderBy.ts new file mode 100644 index 000000000..4e2608311 --- /dev/null +++ b/src/serialization/resources/filestorage/resources/files/types/FilesListRequestOrderBy.ts @@ -0,0 +1,16 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../../../index"; +import * as Merge from "../../../../../../api/index"; +import * as core from "../../../../../../core"; + +export const FilesListRequestOrderBy: core.serialization.Schema< + serializers.filestorage.FilesListRequestOrderBy.Raw, + Merge.filestorage.FilesListRequestOrderBy +> = core.serialization.enum_(["-created_at", "-modified_at", "created_at", "modified_at"]); + +export declare namespace FilesListRequestOrderBy { + export type Raw = "-created_at" | "-modified_at" | "created_at" | "modified_at"; +} diff --git a/src/serialization/resources/filestorage/resources/files/types/index.ts b/src/serialization/resources/filestorage/resources/files/types/index.ts index 33359ae56..0234e1536 100644 --- a/src/serialization/resources/filestorage/resources/files/types/index.ts +++ b/src/serialization/resources/filestorage/resources/files/types/index.ts @@ -1,2 +1,4 @@ export * from "./FilesListRequestExpand"; +export * from "./FilesListRequestOrderBy"; export * from "./FilesRetrieveRequestExpand"; +export * from "./FilesDownloadRequestMetaListRequestOrderBy"; diff --git a/src/serialization/resources/filestorage/types/AccountDetailsAndActions.ts b/src/serialization/resources/filestorage/types/AccountDetailsAndActions.ts index 3b71295f5..9c0e1b0d8 100644 --- a/src/serialization/resources/filestorage/types/AccountDetailsAndActions.ts +++ b/src/serialization/resources/filestorage/types/AccountDetailsAndActions.ts @@ -26,6 +26,10 @@ export const AccountDetailsAndActions: core.serialization.ObjectSchema< integration: AccountDetailsAndActionsIntegration.optional(), accountType: core.serialization.property("account_type", core.serialization.string()), completedAt: core.serialization.property("completed_at", core.serialization.date()), + integrationSpecificFields: core.serialization.property( + "integration_specific_fields", + core.serialization.record(core.serialization.string(), core.serialization.unknown()).optional(), + ), }); export declare namespace AccountDetailsAndActions { @@ -43,5 +47,6 @@ export declare namespace AccountDetailsAndActions { integration?: AccountDetailsAndActionsIntegration.Raw | null; account_type: string; completed_at: string; + integration_specific_fields?: Record | null; } } diff --git a/src/serialization/resources/filestorage/types/DownloadRequestMeta.ts b/src/serialization/resources/filestorage/types/DownloadRequestMeta.ts index 27d79c1e0..6337a2e2e 100644 --- a/src/serialization/resources/filestorage/types/DownloadRequestMeta.ts +++ b/src/serialization/resources/filestorage/types/DownloadRequestMeta.ts @@ -14,7 +14,6 @@ export const DownloadRequestMeta: core.serialization.ObjectSchema< url: core.serialization.string(), method: core.serialization.string(), headers: core.serialization.record(core.serialization.string(), core.serialization.unknown()), - body: core.serialization.record(core.serialization.string(), core.serialization.unknown()), }); export declare namespace DownloadRequestMeta { @@ -23,6 +22,5 @@ export declare namespace DownloadRequestMeta { url: string; method: string; headers: Record; - body: Record; } } diff --git a/src/serialization/resources/filestorage/types/EventTypeEnum.ts b/src/serialization/resources/filestorage/types/EventTypeEnum.ts index 09509522d..7798e18c8 100644 --- a/src/serialization/resources/filestorage/types/EventTypeEnum.ts +++ b/src/serialization/resources/filestorage/types/EventTypeEnum.ts @@ -15,6 +15,7 @@ export const EventTypeEnum: core.serialization.Schema< "CREATED_TEST_API_KEY", "DELETED_TEST_API_KEY", "REGENERATED_PRODUCTION_API_KEY", + "REGENERATED_WEBHOOK_SIGNATURE", "INVITED_USER", "TWO_FACTOR_AUTH_ENABLED", "TWO_FACTOR_AUTH_DISABLED", @@ -61,6 +62,7 @@ export declare namespace EventTypeEnum { | "CREATED_TEST_API_KEY" | "DELETED_TEST_API_KEY" | "REGENERATED_PRODUCTION_API_KEY" + | "REGENERATED_WEBHOOK_SIGNATURE" | "INVITED_USER" | "TWO_FACTOR_AUTH_ENABLED" | "TWO_FACTOR_AUTH_DISABLED" diff --git a/src/serialization/resources/filestorage/types/FileRequest.ts b/src/serialization/resources/filestorage/types/FileRequest.ts index f0ceb4590..112c23e3e 100644 --- a/src/serialization/resources/filestorage/types/FileRequest.ts +++ b/src/serialization/resources/filestorage/types/FileRequest.ts @@ -20,6 +20,7 @@ export const FileRequest: core.serialization.ObjectSchema< mimeType: core.serialization.property("mime_type", core.serialization.string().optional()), description: core.serialization.string().optional(), folder: FileRequestFolder.optional(), + checksum: core.serialization.record(core.serialization.string(), core.serialization.unknown()).optional(), permissions: FileRequestPermissions.optional(), drive: FileRequestDrive.optional(), integrationParams: core.serialization.property( @@ -41,6 +42,7 @@ export declare namespace FileRequest { mime_type?: string | null; description?: string | null; folder?: FileRequestFolder.Raw | null; + checksum?: Record | null; permissions?: FileRequestPermissions.Raw | null; drive?: FileRequestDrive.Raw | null; integration_params?: Record | null; diff --git a/src/serialization/resources/filestorage/types/File_.ts b/src/serialization/resources/filestorage/types/File_.ts index e22a0b7c4..e01ced708 100644 --- a/src/serialization/resources/filestorage/types/File_.ts +++ b/src/serialization/resources/filestorage/types/File_.ts @@ -23,6 +23,7 @@ export const File_: core.serialization.ObjectSchema | null; permissions?: FilePermissions.Raw | null; drive?: FileDrive.Raw | null; remote_created_at?: string | null; diff --git a/src/serialization/resources/hris/resources/index.ts b/src/serialization/resources/hris/resources/index.ts index 0b2ba34c6..21e13d98f 100644 --- a/src/serialization/resources/hris/resources/index.ts +++ b/src/serialization/resources/hris/resources/index.ts @@ -10,6 +10,8 @@ export * as employments from "./employments"; export * from "./employments/types"; export * as issues from "./issues"; export * from "./issues/types"; +export * as linkToken from "./linkToken"; +export * from "./linkToken/types"; export * as linkedAccounts from "./linkedAccounts"; export * from "./linkedAccounts/types"; export * as locations from "./locations"; @@ -31,7 +33,6 @@ export * as fieldMapping from "./fieldMapping"; export * from "./fieldMapping/client/requests"; export * as generateKey from "./generateKey"; export * from "./generateKey/client/requests"; -export * as linkToken from "./linkToken"; export * from "./linkToken/client/requests"; export * as regenerateKey from "./regenerateKey"; export * from "./regenerateKey/client/requests"; diff --git a/src/serialization/resources/hris/resources/linkToken/client/requests/EndUserDetailsRequest.ts b/src/serialization/resources/hris/resources/linkToken/client/requests/EndUserDetailsRequest.ts index c3cbf3371..da6fcda7b 100644 --- a/src/serialization/resources/hris/resources/linkToken/client/requests/EndUserDetailsRequest.ts +++ b/src/serialization/resources/hris/resources/linkToken/client/requests/EndUserDetailsRequest.ts @@ -8,7 +8,7 @@ import * as core from "../../../../../../../core"; import { CategoriesEnum } from "../../../../types/CategoriesEnum"; import { CommonModelScopesBodyRequest } from "../../../../types/CommonModelScopesBodyRequest"; import { IndividualCommonModelScopeDeserializerRequest } from "../../../../types/IndividualCommonModelScopeDeserializerRequest"; -import { LanguageEnum } from "../../../../types/LanguageEnum"; +import { EndUserDetailsRequestLanguage } from "../../types/EndUserDetailsRequestLanguage"; export const EndUserDetailsRequest: core.serialization.Schema< serializers.hris.EndUserDetailsRequest.Raw, @@ -38,7 +38,7 @@ export const EndUserDetailsRequest: core.serialization.Schema< ) .optional(), ), - language: LanguageEnum.optional(), + language: EndUserDetailsRequestLanguage.optional(), areSyncsDisabled: core.serialization.property("are_syncs_disabled", core.serialization.boolean().optional()), integrationSpecificConfig: core.serialization.property( "integration_specific_config", @@ -61,7 +61,7 @@ export declare namespace EndUserDetailsRequest { string, IndividualCommonModelScopeDeserializerRequest.Raw[] | null | undefined > | null; - language?: LanguageEnum.Raw | null; + language?: EndUserDetailsRequestLanguage.Raw | null; are_syncs_disabled?: boolean | null; integration_specific_config?: Record | null; } diff --git a/src/serialization/resources/hris/resources/linkToken/index.ts b/src/serialization/resources/hris/resources/linkToken/index.ts index 5ec76921e..c9240f83b 100644 --- a/src/serialization/resources/hris/resources/linkToken/index.ts +++ b/src/serialization/resources/hris/resources/linkToken/index.ts @@ -1 +1,2 @@ +export * from "./types"; export * from "./client"; diff --git a/src/serialization/resources/hris/resources/linkToken/types/EndUserDetailsRequestLanguage.ts b/src/serialization/resources/hris/resources/linkToken/types/EndUserDetailsRequestLanguage.ts new file mode 100644 index 000000000..22baf1198 --- /dev/null +++ b/src/serialization/resources/hris/resources/linkToken/types/EndUserDetailsRequestLanguage.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../../../index"; +import * as Merge from "../../../../../../api/index"; +import * as core from "../../../../../../core"; +import { LanguageEnum } from "../../../types/LanguageEnum"; + +export const EndUserDetailsRequestLanguage: core.serialization.Schema< + serializers.hris.EndUserDetailsRequestLanguage.Raw, + Merge.hris.EndUserDetailsRequestLanguage +> = core.serialization.undiscriminatedUnion([LanguageEnum, core.serialization.string()]); + +export declare namespace EndUserDetailsRequestLanguage { + export type Raw = LanguageEnum.Raw | string; +} diff --git a/src/serialization/resources/hris/resources/linkToken/types/index.ts b/src/serialization/resources/hris/resources/linkToken/types/index.ts new file mode 100644 index 000000000..c90e13c37 --- /dev/null +++ b/src/serialization/resources/hris/resources/linkToken/types/index.ts @@ -0,0 +1 @@ +export * from "./EndUserDetailsRequestLanguage"; diff --git a/src/serialization/resources/hris/types/AccountDetails.ts b/src/serialization/resources/hris/types/AccountDetails.ts index 16f637e92..1eafd79ea 100644 --- a/src/serialization/resources/hris/types/AccountDetails.ts +++ b/src/serialization/resources/hris/types/AccountDetails.ts @@ -5,7 +5,7 @@ import * as serializers from "../../../index"; import * as Merge from "../../../../api/index"; import * as core from "../../../../core"; -import { CategoryEnum } from "./CategoryEnum"; +import { AccountDetailsCategory } from "./AccountDetailsCategory"; export const AccountDetails: core.serialization.ObjectSchema< serializers.hris.AccountDetails.Raw, @@ -14,7 +14,7 @@ export const AccountDetails: core.serialization.ObjectSchema< id: core.serialization.string().optional(), integration: core.serialization.string().optional(), integrationSlug: core.serialization.property("integration_slug", core.serialization.string().optional()), - category: CategoryEnum.optional(), + category: AccountDetailsCategory.optional(), endUserOriginId: core.serialization.property("end_user_origin_id", core.serialization.string().optional()), endUserOrganizationName: core.serialization.property( "end_user_organization_name", @@ -33,7 +33,7 @@ export declare namespace AccountDetails { id?: string | null; integration?: string | null; integration_slug?: string | null; - category?: CategoryEnum.Raw | null; + category?: AccountDetailsCategory.Raw | null; end_user_origin_id?: string | null; end_user_organization_name?: string | null; end_user_email_address?: string | null; diff --git a/src/serialization/resources/hris/types/AccountDetailsAndActions.ts b/src/serialization/resources/hris/types/AccountDetailsAndActions.ts index 67ef9925c..b2357761c 100644 --- a/src/serialization/resources/hris/types/AccountDetailsAndActions.ts +++ b/src/serialization/resources/hris/types/AccountDetailsAndActions.ts @@ -5,7 +5,7 @@ import * as serializers from "../../../index"; import * as Merge from "../../../../api/index"; import * as core from "../../../../core"; -import { CategoryEnum } from "./CategoryEnum"; +import { AccountDetailsAndActionsCategory } from "./AccountDetailsAndActionsCategory"; import { AccountDetailsAndActionsStatusEnum } from "./AccountDetailsAndActionsStatusEnum"; import { AccountDetailsAndActionsIntegration } from "./AccountDetailsAndActionsIntegration"; @@ -14,7 +14,7 @@ export const AccountDetailsAndActions: core.serialization.ObjectSchema< Merge.hris.AccountDetailsAndActions > = core.serialization.object({ id: core.serialization.string(), - category: CategoryEnum.optional(), + category: AccountDetailsAndActionsCategory.optional(), status: AccountDetailsAndActionsStatusEnum, statusDetail: core.serialization.property("status_detail", core.serialization.string().optional()), endUserOriginId: core.serialization.property("end_user_origin_id", core.serialization.string().optional()), @@ -26,12 +26,16 @@ export const AccountDetailsAndActions: core.serialization.ObjectSchema< integration: AccountDetailsAndActionsIntegration.optional(), accountType: core.serialization.property("account_type", core.serialization.string()), completedAt: core.serialization.property("completed_at", core.serialization.date()), + integrationSpecificFields: core.serialization.property( + "integration_specific_fields", + core.serialization.record(core.serialization.string(), core.serialization.unknown()).optional(), + ), }); export declare namespace AccountDetailsAndActions { export interface Raw { id: string; - category?: CategoryEnum.Raw | null; + category?: AccountDetailsAndActionsCategory.Raw | null; status: AccountDetailsAndActionsStatusEnum.Raw; status_detail?: string | null; end_user_origin_id?: string | null; @@ -43,5 +47,6 @@ export declare namespace AccountDetailsAndActions { integration?: AccountDetailsAndActionsIntegration.Raw | null; account_type: string; completed_at: string; + integration_specific_fields?: Record | null; } } diff --git a/src/serialization/resources/hris/types/AccountDetailsAndActionsCategory.ts b/src/serialization/resources/hris/types/AccountDetailsAndActionsCategory.ts new file mode 100644 index 000000000..0f028195d --- /dev/null +++ b/src/serialization/resources/hris/types/AccountDetailsAndActionsCategory.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { CategoryEnum } from "./CategoryEnum"; + +export const AccountDetailsAndActionsCategory: core.serialization.Schema< + serializers.hris.AccountDetailsAndActionsCategory.Raw, + Merge.hris.AccountDetailsAndActionsCategory +> = core.serialization.undiscriminatedUnion([CategoryEnum, core.serialization.string()]); + +export declare namespace AccountDetailsAndActionsCategory { + export type Raw = CategoryEnum.Raw | string; +} diff --git a/src/serialization/resources/hris/types/AccountDetailsCategory.ts b/src/serialization/resources/hris/types/AccountDetailsCategory.ts new file mode 100644 index 000000000..05c821608 --- /dev/null +++ b/src/serialization/resources/hris/types/AccountDetailsCategory.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { CategoryEnum } from "./CategoryEnum"; + +export const AccountDetailsCategory: core.serialization.Schema< + serializers.hris.AccountDetailsCategory.Raw, + Merge.hris.AccountDetailsCategory +> = core.serialization.undiscriminatedUnion([CategoryEnum, core.serialization.string()]); + +export declare namespace AccountDetailsCategory { + export type Raw = CategoryEnum.Raw | string; +} diff --git a/src/serialization/resources/hris/types/EventTypeEnum.ts b/src/serialization/resources/hris/types/EventTypeEnum.ts index f5d0aa89a..05c68e9a1 100644 --- a/src/serialization/resources/hris/types/EventTypeEnum.ts +++ b/src/serialization/resources/hris/types/EventTypeEnum.ts @@ -13,6 +13,7 @@ export const EventTypeEnum: core.serialization.Schema | null; - language?: LanguageEnum.Raw | null; + language?: EndUserDetailsRequestLanguage.Raw | null; are_syncs_disabled?: boolean | null; integration_specific_config?: Record | null; } diff --git a/src/serialization/resources/ticketing/resources/linkToken/index.ts b/src/serialization/resources/ticketing/resources/linkToken/index.ts index 5ec76921e..c9240f83b 100644 --- a/src/serialization/resources/ticketing/resources/linkToken/index.ts +++ b/src/serialization/resources/ticketing/resources/linkToken/index.ts @@ -1 +1,2 @@ +export * from "./types"; export * from "./client"; diff --git a/src/serialization/resources/ticketing/resources/linkToken/types/EndUserDetailsRequestLanguage.ts b/src/serialization/resources/ticketing/resources/linkToken/types/EndUserDetailsRequestLanguage.ts new file mode 100644 index 000000000..b02be1dad --- /dev/null +++ b/src/serialization/resources/ticketing/resources/linkToken/types/EndUserDetailsRequestLanguage.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../../../index"; +import * as Merge from "../../../../../../api/index"; +import * as core from "../../../../../../core"; +import { LanguageEnum } from "../../../types/LanguageEnum"; + +export const EndUserDetailsRequestLanguage: core.serialization.Schema< + serializers.ticketing.EndUserDetailsRequestLanguage.Raw, + Merge.ticketing.EndUserDetailsRequestLanguage +> = core.serialization.undiscriminatedUnion([LanguageEnum, core.serialization.string()]); + +export declare namespace EndUserDetailsRequestLanguage { + export type Raw = LanguageEnum.Raw | string; +} diff --git a/src/serialization/resources/ticketing/resources/linkToken/types/index.ts b/src/serialization/resources/ticketing/resources/linkToken/types/index.ts new file mode 100644 index 000000000..c90e13c37 --- /dev/null +++ b/src/serialization/resources/ticketing/resources/linkToken/types/index.ts @@ -0,0 +1 @@ +export * from "./EndUserDetailsRequestLanguage"; diff --git a/src/serialization/resources/ticketing/types/AccessLevelEnum.ts b/src/serialization/resources/ticketing/types/AccessLevelEnum.ts deleted file mode 100644 index 4ebe31a43..000000000 --- a/src/serialization/resources/ticketing/types/AccessLevelEnum.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ - -import * as serializers from "../../../index"; -import * as Merge from "../../../../api/index"; -import * as core from "../../../../core"; - -export const AccessLevelEnum: core.serialization.Schema< - serializers.ticketing.AccessLevelEnum.Raw, - Merge.ticketing.AccessLevelEnum -> = core.serialization.enum_(["PRIVATE", "COMPANY", "PUBLIC"]); - -export declare namespace AccessLevelEnum { - export type Raw = "PRIVATE" | "COMPANY" | "PUBLIC"; -} diff --git a/src/serialization/resources/ticketing/types/AccountDetails.ts b/src/serialization/resources/ticketing/types/AccountDetails.ts index 1bc35292a..c80001b9a 100644 --- a/src/serialization/resources/ticketing/types/AccountDetails.ts +++ b/src/serialization/resources/ticketing/types/AccountDetails.ts @@ -5,7 +5,7 @@ import * as serializers from "../../../index"; import * as Merge from "../../../../api/index"; import * as core from "../../../../core"; -import { CategoryEnum } from "./CategoryEnum"; +import { AccountDetailsCategory } from "./AccountDetailsCategory"; export const AccountDetails: core.serialization.ObjectSchema< serializers.ticketing.AccountDetails.Raw, @@ -14,7 +14,7 @@ export const AccountDetails: core.serialization.ObjectSchema< id: core.serialization.string().optional(), integration: core.serialization.string().optional(), integrationSlug: core.serialization.property("integration_slug", core.serialization.string().optional()), - category: CategoryEnum.optional(), + category: AccountDetailsCategory.optional(), endUserOriginId: core.serialization.property("end_user_origin_id", core.serialization.string().optional()), endUserOrganizationName: core.serialization.property( "end_user_organization_name", @@ -33,7 +33,7 @@ export declare namespace AccountDetails { id?: string | null; integration?: string | null; integration_slug?: string | null; - category?: CategoryEnum.Raw | null; + category?: AccountDetailsCategory.Raw | null; end_user_origin_id?: string | null; end_user_organization_name?: string | null; end_user_email_address?: string | null; diff --git a/src/serialization/resources/ticketing/types/AccountDetailsAndActions.ts b/src/serialization/resources/ticketing/types/AccountDetailsAndActions.ts index cf572a1f9..82b9152ef 100644 --- a/src/serialization/resources/ticketing/types/AccountDetailsAndActions.ts +++ b/src/serialization/resources/ticketing/types/AccountDetailsAndActions.ts @@ -5,8 +5,8 @@ import * as serializers from "../../../index"; import * as Merge from "../../../../api/index"; import * as core from "../../../../core"; -import { CategoryEnum } from "./CategoryEnum"; -import { AccountDetailsAndActionsStatusEnum } from "./AccountDetailsAndActionsStatusEnum"; +import { AccountDetailsAndActionsCategory } from "./AccountDetailsAndActionsCategory"; +import { AccountDetailsAndActionsStatus } from "./AccountDetailsAndActionsStatus"; import { AccountDetailsAndActionsIntegration } from "./AccountDetailsAndActionsIntegration"; export const AccountDetailsAndActions: core.serialization.ObjectSchema< @@ -14,8 +14,8 @@ export const AccountDetailsAndActions: core.serialization.ObjectSchema< Merge.ticketing.AccountDetailsAndActions > = core.serialization.object({ id: core.serialization.string(), - category: CategoryEnum.optional(), - status: AccountDetailsAndActionsStatusEnum, + category: AccountDetailsAndActionsCategory.optional(), + status: AccountDetailsAndActionsStatus, statusDetail: core.serialization.property("status_detail", core.serialization.string().optional()), endUserOriginId: core.serialization.property("end_user_origin_id", core.serialization.string().optional()), endUserOrganizationName: core.serialization.property("end_user_organization_name", core.serialization.string()), @@ -26,13 +26,17 @@ export const AccountDetailsAndActions: core.serialization.ObjectSchema< integration: AccountDetailsAndActionsIntegration.optional(), accountType: core.serialization.property("account_type", core.serialization.string()), completedAt: core.serialization.property("completed_at", core.serialization.date()), + integrationSpecificFields: core.serialization.property( + "integration_specific_fields", + core.serialization.record(core.serialization.string(), core.serialization.unknown()).optional(), + ), }); export declare namespace AccountDetailsAndActions { export interface Raw { id: string; - category?: CategoryEnum.Raw | null; - status: AccountDetailsAndActionsStatusEnum.Raw; + category?: AccountDetailsAndActionsCategory.Raw | null; + status: AccountDetailsAndActionsStatus.Raw; status_detail?: string | null; end_user_origin_id?: string | null; end_user_organization_name: string; @@ -43,5 +47,6 @@ export declare namespace AccountDetailsAndActions { integration?: AccountDetailsAndActionsIntegration.Raw | null; account_type: string; completed_at: string; + integration_specific_fields?: Record | null; } } diff --git a/src/serialization/resources/ticketing/types/AccountDetailsAndActionsCategory.ts b/src/serialization/resources/ticketing/types/AccountDetailsAndActionsCategory.ts new file mode 100644 index 000000000..41ec5f36c --- /dev/null +++ b/src/serialization/resources/ticketing/types/AccountDetailsAndActionsCategory.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { CategoryEnum } from "./CategoryEnum"; + +export const AccountDetailsAndActionsCategory: core.serialization.Schema< + serializers.ticketing.AccountDetailsAndActionsCategory.Raw, + Merge.ticketing.AccountDetailsAndActionsCategory +> = core.serialization.undiscriminatedUnion([CategoryEnum, core.serialization.string()]); + +export declare namespace AccountDetailsAndActionsCategory { + export type Raw = CategoryEnum.Raw | string; +} diff --git a/src/serialization/resources/ticketing/types/AccountDetailsAndActionsStatus.ts b/src/serialization/resources/ticketing/types/AccountDetailsAndActionsStatus.ts new file mode 100644 index 000000000..9518f00cc --- /dev/null +++ b/src/serialization/resources/ticketing/types/AccountDetailsAndActionsStatus.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { AccountDetailsAndActionsStatusEnum } from "./AccountDetailsAndActionsStatusEnum"; + +export const AccountDetailsAndActionsStatus: core.serialization.Schema< + serializers.ticketing.AccountDetailsAndActionsStatus.Raw, + Merge.ticketing.AccountDetailsAndActionsStatus +> = core.serialization.undiscriminatedUnion([AccountDetailsAndActionsStatusEnum, core.serialization.string()]); + +export declare namespace AccountDetailsAndActionsStatus { + export type Raw = AccountDetailsAndActionsStatusEnum.Raw | string; +} diff --git a/src/serialization/resources/ticketing/types/AccountDetailsCategory.ts b/src/serialization/resources/ticketing/types/AccountDetailsCategory.ts new file mode 100644 index 000000000..401366e40 --- /dev/null +++ b/src/serialization/resources/ticketing/types/AccountDetailsCategory.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { CategoryEnum } from "./CategoryEnum"; + +export const AccountDetailsCategory: core.serialization.Schema< + serializers.ticketing.AccountDetailsCategory.Raw, + Merge.ticketing.AccountDetailsCategory +> = core.serialization.undiscriminatedUnion([CategoryEnum, core.serialization.string()]); + +export declare namespace AccountDetailsCategory { + export type Raw = CategoryEnum.Raw | string; +} diff --git a/src/serialization/resources/ticketing/types/Collection.ts b/src/serialization/resources/ticketing/types/Collection.ts index 63b3d9beb..53f59e513 100644 --- a/src/serialization/resources/ticketing/types/Collection.ts +++ b/src/serialization/resources/ticketing/types/Collection.ts @@ -5,8 +5,8 @@ import * as serializers from "../../../index"; import * as Merge from "../../../../api/index"; import * as core from "../../../../core"; -import { CollectionCollectionType } from "./CollectionCollectionType"; import { CollectionAccessLevel } from "./CollectionAccessLevel"; +import { CollectionCollectionType } from "./CollectionCollectionType"; import { RemoteData } from "./RemoteData"; export const Collection: core.serialization.ObjectSchema< @@ -19,13 +19,13 @@ export const Collection: core.serialization.ObjectSchema< modifiedAt: core.serialization.property("modified_at", core.serialization.date().optional()), name: core.serialization.string().optional(), description: core.serialization.string().optional(), + accessLevel: core.serialization.property("access_level", CollectionAccessLevel.optional()), collectionType: core.serialization.property("collection_type", CollectionCollectionType.optional()), parentCollection: core.serialization.property( "parent_collection", core.serialization.lazy(() => serializers.ticketing.CollectionParentCollection).optional(), ), remoteWasDeleted: core.serialization.property("remote_was_deleted", core.serialization.boolean().optional()), - accessLevel: core.serialization.property("access_level", CollectionAccessLevel.optional()), fieldMappings: core.serialization.property( "field_mappings", core.serialization.record(core.serialization.string(), core.serialization.unknown()).optional(), @@ -41,10 +41,10 @@ export declare namespace Collection { modified_at?: string | null; name?: string | null; description?: string | null; + access_level?: CollectionAccessLevel.Raw | null; collection_type?: CollectionCollectionType.Raw | null; parent_collection?: serializers.ticketing.CollectionParentCollection.Raw | null; remote_was_deleted?: boolean | null; - access_level?: CollectionAccessLevel.Raw | null; field_mappings?: Record | null; remote_data?: RemoteData.Raw[] | null; } diff --git a/src/serialization/resources/ticketing/types/CollectionAccessLevel.ts b/src/serialization/resources/ticketing/types/CollectionAccessLevel.ts index 461ece390..7df28bcb6 100644 --- a/src/serialization/resources/ticketing/types/CollectionAccessLevel.ts +++ b/src/serialization/resources/ticketing/types/CollectionAccessLevel.ts @@ -5,13 +5,13 @@ import * as serializers from "../../../index"; import * as Merge from "../../../../api/index"; import * as core from "../../../../core"; -import { AccessLevelEnum } from "./AccessLevelEnum"; +import { CollectionAccessLevelEnum } from "./CollectionAccessLevelEnum"; export const CollectionAccessLevel: core.serialization.Schema< serializers.ticketing.CollectionAccessLevel.Raw, Merge.ticketing.CollectionAccessLevel -> = core.serialization.undiscriminatedUnion([AccessLevelEnum, core.serialization.string()]); +> = core.serialization.undiscriminatedUnion([CollectionAccessLevelEnum, core.serialization.string()]); export declare namespace CollectionAccessLevel { - export type Raw = AccessLevelEnum.Raw | string; + export type Raw = CollectionAccessLevelEnum.Raw | string; } diff --git a/src/serialization/resources/ticketing/types/CollectionAccessLevelEnum.ts b/src/serialization/resources/ticketing/types/CollectionAccessLevelEnum.ts new file mode 100644 index 000000000..8e782a510 --- /dev/null +++ b/src/serialization/resources/ticketing/types/CollectionAccessLevelEnum.ts @@ -0,0 +1,16 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; + +export const CollectionAccessLevelEnum: core.serialization.Schema< + serializers.ticketing.CollectionAccessLevelEnum.Raw, + Merge.ticketing.CollectionAccessLevelEnum +> = core.serialization.enum_(["PRIVATE", "COMPANY", "PUBLIC", "PARENT_COLLECTION"]); + +export declare namespace CollectionAccessLevelEnum { + export type Raw = "PRIVATE" | "COMPANY" | "PUBLIC" | "PARENT_COLLECTION"; +} diff --git a/src/serialization/resources/ticketing/types/EventTypeEnum.ts b/src/serialization/resources/ticketing/types/EventTypeEnum.ts index 548deed66..4c242a39d 100644 --- a/src/serialization/resources/ticketing/types/EventTypeEnum.ts +++ b/src/serialization/resources/ticketing/types/EventTypeEnum.ts @@ -15,6 +15,7 @@ export const EventTypeEnum: core.serialization.Schema< "CREATED_TEST_API_KEY", "DELETED_TEST_API_KEY", "REGENERATED_PRODUCTION_API_KEY", + "REGENERATED_WEBHOOK_SIGNATURE", "INVITED_USER", "TWO_FACTOR_AUTH_ENABLED", "TWO_FACTOR_AUTH_DISABLED", @@ -61,6 +62,7 @@ export declare namespace EventTypeEnum { | "CREATED_TEST_API_KEY" | "DELETED_TEST_API_KEY" | "REGENERATED_PRODUCTION_API_KEY" + | "REGENERATED_WEBHOOK_SIGNATURE" | "INVITED_USER" | "TWO_FACTOR_AUTH_ENABLED" | "TWO_FACTOR_AUTH_DISABLED" diff --git a/src/serialization/resources/ticketing/types/PatchedTicketRequest.ts b/src/serialization/resources/ticketing/types/PatchedTicketRequest.ts index e1bfa1250..e059e4c29 100644 --- a/src/serialization/resources/ticketing/types/PatchedTicketRequest.ts +++ b/src/serialization/resources/ticketing/types/PatchedTicketRequest.ts @@ -6,6 +6,7 @@ import * as serializers from "../../../index"; import * as Merge from "../../../../api/index"; import * as core from "../../../../core"; import { PatchedTicketRequestStatus } from "./PatchedTicketRequestStatus"; +import { PatchedTicketRequestAccessLevel } from "./PatchedTicketRequestAccessLevel"; import { PatchedTicketRequestPriority } from "./PatchedTicketRequestPriority"; import { RemoteFieldRequest } from "./RemoteFieldRequest"; @@ -28,6 +29,7 @@ export const PatchedTicketRequest: core.serialization.ObjectSchema< account: core.serialization.string().optional(), contact: core.serialization.string().optional(), parentTicket: core.serialization.property("parent_ticket", core.serialization.string().optional()), + accessLevel: core.serialization.property("access_level", PatchedTicketRequestAccessLevel.optional()), tags: core.serialization.list(core.serialization.string().optional()).optional(), roles: core.serialization.list(core.serialization.string().optional()).optional(), completedAt: core.serialization.property("completed_at", core.serialization.date().optional()), @@ -58,6 +60,7 @@ export declare namespace PatchedTicketRequest { account?: string | null; contact?: string | null; parent_ticket?: string | null; + access_level?: PatchedTicketRequestAccessLevel.Raw | null; tags?: (string | null | undefined)[] | null; roles?: (string | null | undefined)[] | null; completed_at?: string | null; diff --git a/src/serialization/resources/ticketing/types/PatchedTicketRequestAccessLevel.ts b/src/serialization/resources/ticketing/types/PatchedTicketRequestAccessLevel.ts new file mode 100644 index 000000000..52bcdb3db --- /dev/null +++ b/src/serialization/resources/ticketing/types/PatchedTicketRequestAccessLevel.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { TicketAccessLevelEnum } from "./TicketAccessLevelEnum"; + +export const PatchedTicketRequestAccessLevel: core.serialization.Schema< + serializers.ticketing.PatchedTicketRequestAccessLevel.Raw, + Merge.ticketing.PatchedTicketRequestAccessLevel +> = core.serialization.undiscriminatedUnion([TicketAccessLevelEnum, core.serialization.string()]); + +export declare namespace PatchedTicketRequestAccessLevel { + export type Raw = TicketAccessLevelEnum.Raw | string; +} diff --git a/src/serialization/resources/ticketing/types/SyncStatus.ts b/src/serialization/resources/ticketing/types/SyncStatus.ts index 0436f0659..dadb0d3cf 100644 --- a/src/serialization/resources/ticketing/types/SyncStatus.ts +++ b/src/serialization/resources/ticketing/types/SyncStatus.ts @@ -5,7 +5,7 @@ import * as serializers from "../../../index"; import * as Merge from "../../../../api/index"; import * as core from "../../../../core"; -import { LastSyncResultEnum } from "./LastSyncResultEnum"; +import { SyncStatusLastSyncResult } from "./SyncStatusLastSyncResult"; import { StatusFd5Enum } from "./StatusFd5Enum"; import { SelectiveSyncConfigurationsUsageEnum } from "./SelectiveSyncConfigurationsUsageEnum"; @@ -17,7 +17,7 @@ export const SyncStatus: core.serialization.ObjectSchema< modelId: core.serialization.property("model_id", core.serialization.string()), lastSyncStart: core.serialization.property("last_sync_start", core.serialization.date().optional()), nextSyncStart: core.serialization.property("next_sync_start", core.serialization.date().optional()), - lastSyncResult: core.serialization.property("last_sync_result", LastSyncResultEnum.optional()), + lastSyncResult: core.serialization.property("last_sync_result", SyncStatusLastSyncResult.optional()), lastSyncFinished: core.serialization.property("last_sync_finished", core.serialization.date().optional()), status: StatusFd5Enum, isInitialSync: core.serialization.property("is_initial_sync", core.serialization.boolean()), @@ -33,7 +33,7 @@ export declare namespace SyncStatus { model_id: string; last_sync_start?: string | null; next_sync_start?: string | null; - last_sync_result?: LastSyncResultEnum.Raw | null; + last_sync_result?: SyncStatusLastSyncResult.Raw | null; last_sync_finished?: string | null; status: StatusFd5Enum.Raw; is_initial_sync: boolean; diff --git a/src/serialization/resources/ticketing/types/SyncStatusLastSyncResult.ts b/src/serialization/resources/ticketing/types/SyncStatusLastSyncResult.ts new file mode 100644 index 000000000..ea69e9ff2 --- /dev/null +++ b/src/serialization/resources/ticketing/types/SyncStatusLastSyncResult.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { LastSyncResultEnum } from "./LastSyncResultEnum"; + +export const SyncStatusLastSyncResult: core.serialization.Schema< + serializers.ticketing.SyncStatusLastSyncResult.Raw, + Merge.ticketing.SyncStatusLastSyncResult +> = core.serialization.undiscriminatedUnion([LastSyncResultEnum, core.serialization.string()]); + +export declare namespace SyncStatusLastSyncResult { + export type Raw = LastSyncResultEnum.Raw | string; +} diff --git a/src/serialization/resources/ticketing/types/Ticket.ts b/src/serialization/resources/ticketing/types/Ticket.ts index 62a95a4ab..4d7fe4d26 100644 --- a/src/serialization/resources/ticketing/types/Ticket.ts +++ b/src/serialization/resources/ticketing/types/Ticket.ts @@ -12,6 +12,7 @@ import { TicketStatus } from "./TicketStatus"; import { TicketCollectionsItem } from "./TicketCollectionsItem"; import { TicketAccount } from "./TicketAccount"; import { TicketContact } from "./TicketContact"; +import { TicketAccessLevel } from "./TicketAccessLevel"; import { TicketPriority } from "./TicketPriority"; import { RemoteData } from "./RemoteData"; import { RemoteField } from "./RemoteField"; @@ -43,6 +44,7 @@ export const Ticket: core.serialization.ObjectSchema serializers.ticketing.TicketAttachmentsItem).optional()) .optional(), + accessLevel: core.serialization.property("access_level", TicketAccessLevel.optional()), tags: core.serialization.list(core.serialization.string().optional()).optional(), roles: core.serialization.list(core.serialization.string().optional()).optional(), remoteCreatedAt: core.serialization.property("remote_created_at", core.serialization.date().optional()), @@ -78,6 +80,7 @@ export declare namespace Ticket { contact?: TicketContact.Raw | null; parent_ticket?: serializers.ticketing.TicketParentTicket.Raw | null; attachments?: (serializers.ticketing.TicketAttachmentsItem.Raw | null | undefined)[] | null; + access_level?: TicketAccessLevel.Raw | null; tags?: (string | null | undefined)[] | null; roles?: (string | null | undefined)[] | null; remote_created_at?: string | null; diff --git a/src/serialization/resources/ticketing/types/TicketAccessLevel.ts b/src/serialization/resources/ticketing/types/TicketAccessLevel.ts new file mode 100644 index 000000000..bd88f0bfb --- /dev/null +++ b/src/serialization/resources/ticketing/types/TicketAccessLevel.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { TicketAccessLevelEnum } from "./TicketAccessLevelEnum"; + +export const TicketAccessLevel: core.serialization.Schema< + serializers.ticketing.TicketAccessLevel.Raw, + Merge.ticketing.TicketAccessLevel +> = core.serialization.undiscriminatedUnion([TicketAccessLevelEnum, core.serialization.string()]); + +export declare namespace TicketAccessLevel { + export type Raw = TicketAccessLevelEnum.Raw | string; +} diff --git a/src/serialization/resources/ticketing/types/TicketAccessLevelEnum.ts b/src/serialization/resources/ticketing/types/TicketAccessLevelEnum.ts new file mode 100644 index 000000000..74517aae3 --- /dev/null +++ b/src/serialization/resources/ticketing/types/TicketAccessLevelEnum.ts @@ -0,0 +1,16 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; + +export const TicketAccessLevelEnum: core.serialization.Schema< + serializers.ticketing.TicketAccessLevelEnum.Raw, + Merge.ticketing.TicketAccessLevelEnum +> = core.serialization.enum_(["COMPANY", "PUBLIC", "PRIVATE", "COLLECTION"]); + +export declare namespace TicketAccessLevelEnum { + export type Raw = "COMPANY" | "PUBLIC" | "PRIVATE" | "COLLECTION"; +} diff --git a/src/serialization/resources/ticketing/types/TicketRequest.ts b/src/serialization/resources/ticketing/types/TicketRequest.ts index 4286b11a4..951594460 100644 --- a/src/serialization/resources/ticketing/types/TicketRequest.ts +++ b/src/serialization/resources/ticketing/types/TicketRequest.ts @@ -14,6 +14,7 @@ import { TicketRequestAccount } from "./TicketRequestAccount"; import { TicketRequestContact } from "./TicketRequestContact"; import { TicketRequestParentTicket } from "./TicketRequestParentTicket"; import { TicketRequestAttachmentsItem } from "./TicketRequestAttachmentsItem"; +import { TicketRequestAccessLevel } from "./TicketRequestAccessLevel"; import { TicketRequestPriority } from "./TicketRequestPriority"; import { RemoteFieldRequest } from "./RemoteFieldRequest"; @@ -37,6 +38,7 @@ export const TicketRequest: core.serialization.ObjectSchema< contact: TicketRequestContact.optional(), parentTicket: core.serialization.property("parent_ticket", TicketRequestParentTicket.optional()), attachments: core.serialization.list(TicketRequestAttachmentsItem.optional()).optional(), + accessLevel: core.serialization.property("access_level", TicketRequestAccessLevel.optional()), tags: core.serialization.list(core.serialization.string().optional()).optional(), roles: core.serialization.list(core.serialization.string().optional()).optional(), completedAt: core.serialization.property("completed_at", core.serialization.date().optional()), @@ -68,6 +70,7 @@ export declare namespace TicketRequest { contact?: TicketRequestContact.Raw | null; parent_ticket?: TicketRequestParentTicket.Raw | null; attachments?: (TicketRequestAttachmentsItem.Raw | null | undefined)[] | null; + access_level?: TicketRequestAccessLevel.Raw | null; tags?: (string | null | undefined)[] | null; roles?: (string | null | undefined)[] | null; completed_at?: string | null; diff --git a/src/serialization/resources/ticketing/types/TicketRequestAccessLevel.ts b/src/serialization/resources/ticketing/types/TicketRequestAccessLevel.ts new file mode 100644 index 000000000..f1317f140 --- /dev/null +++ b/src/serialization/resources/ticketing/types/TicketRequestAccessLevel.ts @@ -0,0 +1,17 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import * as serializers from "../../../index"; +import * as Merge from "../../../../api/index"; +import * as core from "../../../../core"; +import { TicketAccessLevelEnum } from "./TicketAccessLevelEnum"; + +export const TicketRequestAccessLevel: core.serialization.Schema< + serializers.ticketing.TicketRequestAccessLevel.Raw, + Merge.ticketing.TicketRequestAccessLevel +> = core.serialization.undiscriminatedUnion([TicketAccessLevelEnum, core.serialization.string()]); + +export declare namespace TicketRequestAccessLevel { + export type Raw = TicketAccessLevelEnum.Raw | string; +} diff --git a/src/serialization/resources/ticketing/types/index.ts b/src/serialization/resources/ticketing/types/index.ts index 1a7c5cb02..d1a8630e4 100644 --- a/src/serialization/resources/ticketing/types/index.ts +++ b/src/serialization/resources/ticketing/types/index.ts @@ -1,6 +1,8 @@ -export * from "./AccessLevelEnum"; export * from "./Account"; +export * from "./AccountDetailsCategory"; export * from "./AccountDetails"; +export * from "./AccountDetailsAndActionsCategory"; +export * from "./AccountDetailsAndActionsStatus"; export * from "./AccountDetailsAndActions"; export * from "./AccountDetailsAndActionsIntegration"; export * from "./AccountDetailsAndActionsStatusEnum"; @@ -18,10 +20,11 @@ export * from "./AuditLogEvent"; export * from "./AvailableActions"; export * from "./CategoriesEnum"; export * from "./CategoryEnum"; +export * from "./CollectionAccessLevel"; export * from "./CollectionCollectionType"; export * from "./CollectionParentCollection"; -export * from "./CollectionAccessLevel"; export * from "./Collection"; +export * from "./CollectionAccessLevelEnum"; export * from "./CollectionTypeEnum"; export * from "./CommentUser"; export * from "./CommentContact"; @@ -94,6 +97,7 @@ export * from "./PaginatedTicketList"; export * from "./PaginatedUserList"; export * from "./PaginatedViewerList"; export * from "./PatchedTicketRequestStatus"; +export * from "./PatchedTicketRequestAccessLevel"; export * from "./PatchedTicketRequestPriority"; export * from "./PatchedTicketRequest"; export * from "./PriorityEnum"; @@ -121,6 +125,7 @@ export * from "./Role"; export * from "./RoleEnum"; export * from "./SelectiveSyncConfigurationsUsageEnum"; export * from "./StatusFd5Enum"; +export * from "./SyncStatusLastSyncResult"; export * from "./SyncStatus"; export * from "./Tag"; export * from "./Team"; @@ -133,9 +138,11 @@ export * from "./TicketAccount"; export * from "./TicketContact"; export * from "./TicketParentTicket"; export * from "./TicketAttachmentsItem"; +export * from "./TicketAccessLevel"; export * from "./TicketPriority"; export * from "./Ticket"; export * from "./TicketAccessEnum"; +export * from "./TicketAccessLevelEnum"; export * from "./TicketActionsEnum"; export * from "./TicketRequestAssigneesItem"; export * from "./TicketRequestAssignedTeamsItem"; @@ -146,6 +153,7 @@ export * from "./TicketRequestAccount"; export * from "./TicketRequestContact"; export * from "./TicketRequestParentTicket"; export * from "./TicketRequestAttachmentsItem"; +export * from "./TicketRequestAccessLevel"; export * from "./TicketRequestPriority"; export * from "./TicketRequest"; export * from "./TicketResponse"; diff --git a/src/version.ts b/src/version.ts index 501466a5e..478f50d17 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const SDK_VERSION = "1.1.9"; +export const SDK_VERSION = "2.0.0"; diff --git a/tests/mock-server/MockServer.ts b/tests/mock-server/MockServer.ts new file mode 100644 index 000000000..6e258f172 --- /dev/null +++ b/tests/mock-server/MockServer.ts @@ -0,0 +1,29 @@ +import { RequestHandlerOptions } from "msw"; +import type { SetupServer } from "msw/node"; + +import { mockEndpointBuilder } from "./mockEndpointBuilder"; + +export interface MockServerOptions { + baseUrl: string; + server: SetupServer; +} + +export class MockServer { + private readonly server: SetupServer; + public readonly baseUrl: string; + + constructor({ baseUrl, server }: MockServerOptions) { + this.baseUrl = baseUrl.endsWith("/") ? baseUrl.slice(0, -1) : baseUrl; + this.server = server; + } + + public mockEndpoint(options?: RequestHandlerOptions): ReturnType { + const builder = mockEndpointBuilder({ + once: options?.once, + onBuild: (handler) => { + this.server.use(handler); + }, + }).baseUrl(this.baseUrl); + return builder; + } +} diff --git a/tests/mock-server/MockServerPool.ts b/tests/mock-server/MockServerPool.ts new file mode 100644 index 000000000..81608069e --- /dev/null +++ b/tests/mock-server/MockServerPool.ts @@ -0,0 +1,106 @@ +import { setupServer } from "msw/node"; + +import { fromJson, toJson } from "../../src/core/json"; +import { MockServer } from "./MockServer"; +import { randomBaseUrl } from "./randomBaseUrl"; + +const mswServer = setupServer(); +interface MockServerOptions { + baseUrl?: string; +} + +async function formatHttpRequest(request: Request, id?: string): Promise { + try { + const clone = request.clone(); + const headers = [...clone.headers.entries()].map(([k, v]) => `${k}: ${v}`).join("\n"); + + let body = ""; + try { + const contentType = clone.headers.get("content-type"); + if (contentType?.includes("application/json")) { + body = toJson(fromJson(await clone.text()), undefined, 2); + } else if (clone.body) { + body = await clone.text(); + } + } catch (e) { + body = "(unable to parse body)"; + } + + const title = id ? `### Request ${id} ###\n` : ""; + const firstLine = `${title}${request.method} ${request.url.toString()} HTTP/1.1`; + + return `\n${firstLine}\n${headers}\n\n${body || "(no body)"}\n`; + } catch (e) { + return `Error formatting request: ${e}`; + } +} + +async function formatHttpResponse(response: Response, id?: string): Promise { + try { + const clone = response.clone(); + const headers = [...clone.headers.entries()].map(([k, v]) => `${k}: ${v}`).join("\n"); + + let body = ""; + try { + const contentType = clone.headers.get("content-type"); + if (contentType?.includes("application/json")) { + body = toJson(fromJson(await clone.text()), undefined, 2); + } else if (clone.body) { + body = await clone.text(); + } + } catch (e) { + body = "(unable to parse body)"; + } + + const title = id ? `### Response for ${id} ###\n` : ""; + const firstLine = `${title}HTTP/1.1 ${response.status} ${response.statusText}`; + + return `\n${firstLine}\n${headers}\n\n${body || "(no body)"}\n`; + } catch (e) { + return `Error formatting response: ${e}`; + } +} + +class MockServerPool { + private servers: MockServer[] = []; + + public createServer(options?: Partial): MockServer { + const baseUrl = options?.baseUrl || randomBaseUrl(); + const server = new MockServer({ baseUrl, server: mswServer }); + this.servers.push(server); + return server; + } + + public getServers(): MockServer[] { + return [...this.servers]; + } + + public listen(): void { + const onUnhandledRequest = process.env.LOG_LEVEL === "debug" ? "warn" : "bypass"; + mswServer.listen({ onUnhandledRequest }); + + if (process.env.LOG_LEVEL === "debug") { + mswServer.events.on("request:start", async ({ request, requestId }) => { + const formattedRequest = await formatHttpRequest(request, requestId); + console.debug("request:start\n" + formattedRequest); + }); + + mswServer.events.on("request:unhandled", async ({ request, requestId }) => { + const formattedRequest = await formatHttpRequest(request, requestId); + console.debug("request:unhandled\n" + formattedRequest); + }); + + mswServer.events.on("response:mocked", async ({ request, response, requestId }) => { + const formattedResponse = await formatHttpResponse(response, requestId); + console.debug("response:mocked\n" + formattedResponse); + }); + } + } + + public close(): void { + this.servers = []; + mswServer.close(); + } +} + +export const mockServerPool = new MockServerPool(); diff --git a/tests/mock-server/mockEndpointBuilder.ts b/tests/mock-server/mockEndpointBuilder.ts new file mode 100644 index 000000000..390b22568 --- /dev/null +++ b/tests/mock-server/mockEndpointBuilder.ts @@ -0,0 +1,209 @@ +import { DefaultBodyType, HttpHandler, HttpResponse, HttpResponseResolver, http } from "msw"; + +import { toJson } from "../../src/core/json"; +import { withHeaders } from "./withHeaders"; +import { withJson } from "./withJson"; + +type HttpMethod = "all" | "get" | "post" | "put" | "delete" | "patch" | "options" | "head"; + +interface MethodStage { + baseUrl(baseUrl: string): MethodStage; + all(path: string): RequestHeadersStage; + get(path: string): RequestHeadersStage; + post(path: string): RequestHeadersStage; + put(path: string): RequestHeadersStage; + delete(path: string): RequestHeadersStage; + patch(path: string): RequestHeadersStage; + options(path: string): RequestHeadersStage; + head(path: string): RequestHeadersStage; +} + +interface RequestHeadersStage extends RequestBodyStage, ResponseStage { + header(name: string, value: string): RequestHeadersStage; + headers(headers: Record): RequestBodyStage; +} + +interface RequestBodyStage extends ResponseStage { + jsonBody(body: unknown): ResponseStage; +} + +interface ResponseStage { + respondWith(): ResponseStatusStage; +} +interface ResponseStatusStage { + statusCode(statusCode: number): ResponseHeaderStage; +} + +interface ResponseHeaderStage extends ResponseBodyStage, BuildStage { + header(name: string, value: string): ResponseHeaderStage; + headers(headers: Record): ResponseHeaderStage; +} + +interface ResponseBodyStage { + jsonBody(body: unknown): BuildStage; +} + +interface BuildStage { + build(): HttpHandler; +} + +export interface HttpHandlerBuilderOptions { + onBuild?: (handler: HttpHandler) => void; + once?: boolean; +} + +class RequestBuilder implements MethodStage, RequestHeadersStage, RequestBodyStage, ResponseStage { + private method: HttpMethod = "get"; + private _baseUrl: string = ""; + private path: string = "/"; + private readonly predicates: ((resolver: HttpResponseResolver) => HttpResponseResolver)[] = []; + private readonly handlerOptions?: HttpHandlerBuilderOptions; + + constructor(options?: HttpHandlerBuilderOptions) { + this.handlerOptions = options; + } + + baseUrl(baseUrl: string): MethodStage { + this._baseUrl = baseUrl; + return this; + } + + all(path: string): RequestHeadersStage { + this.method = "all"; + this.path = path; + return this; + } + + get(path: string): RequestHeadersStage { + this.method = "get"; + this.path = path; + return this; + } + + post(path: string): RequestHeadersStage { + this.method = "post"; + this.path = path; + return this; + } + + put(path: string): RequestHeadersStage { + this.method = "put"; + this.path = path; + return this; + } + + delete(path: string): RequestHeadersStage { + this.method = "delete"; + this.path = path; + return this; + } + + patch(path: string): RequestHeadersStage { + this.method = "patch"; + this.path = path; + return this; + } + + options(path: string): RequestHeadersStage { + this.method = "options"; + this.path = path; + return this; + } + + head(path: string): RequestHeadersStage { + this.method = "head"; + this.path = path; + return this; + } + + header(name: string, value: string): RequestHeadersStage { + this.predicates.push((resolver) => withHeaders({ [name]: value }, resolver)); + return this; + } + + headers(headers: Record): RequestBodyStage { + this.predicates.push((resolver) => withHeaders(headers, resolver)); + return this; + } + + jsonBody(body: unknown): ResponseStage { + this.predicates.push((resolver) => withJson(body, resolver)); + return this; + } + + respondWith(): ResponseStatusStage { + return new ResponseBuilder(this.method, this.buildPath(), this.predicates, this.handlerOptions); + } + + private buildPath(): string { + if (this._baseUrl.endsWith("/") && this.path.startsWith("/")) { + return this._baseUrl + this.path.slice(1); + } + if (!this._baseUrl.endsWith("/") && !this.path.startsWith("/")) { + return this._baseUrl + "/" + this.path; + } + return this._baseUrl + this.path; + } +} + +class ResponseBuilder implements ResponseStatusStage, ResponseHeaderStage, ResponseBodyStage, BuildStage { + private readonly method: HttpMethod; + private readonly path: string; + private readonly requestPredicates: ((resolver: HttpResponseResolver) => HttpResponseResolver)[]; + private readonly handlerOptions?: HttpHandlerBuilderOptions; + + private responseStatusCode: number = 200; + private responseHeaders: Record = {}; + private responseBody: DefaultBodyType = undefined; + + constructor( + method: HttpMethod, + path: string, + requestPredicates: ((resolver: HttpResponseResolver) => HttpResponseResolver)[], + options?: HttpHandlerBuilderOptions, + ) { + this.method = method; + this.path = path; + this.requestPredicates = requestPredicates; + this.handlerOptions = options; + } + + public statusCode(code: number): ResponseHeaderStage { + this.responseStatusCode = code; + return this; + } + + public header(name: string, value: string): ResponseHeaderStage { + this.responseHeaders[name] = value; + return this; + } + + public headers(headers: Record): ResponseHeaderStage { + this.responseHeaders = { ...this.responseHeaders, ...headers }; + return this; + } + + public jsonBody(body: unknown): BuildStage { + this.responseBody = toJson(body); + return this; + } + + public build(): HttpHandler { + const responseResolver: HttpResponseResolver = () => { + return new HttpResponse(this.responseBody, { + status: this.responseStatusCode, + headers: this.responseHeaders, + }); + }; + + const finalResolver = this.requestPredicates.reduceRight((acc, predicate) => predicate(acc), responseResolver); + + const handler = http[this.method](this.path, finalResolver, this.handlerOptions); + this.handlerOptions?.onBuild?.(handler); + return handler; + } +} + +export function mockEndpointBuilder(options?: HttpHandlerBuilderOptions): MethodStage { + return new RequestBuilder(options); +} diff --git a/tests/mock-server/randomBaseUrl.ts b/tests/mock-server/randomBaseUrl.ts new file mode 100644 index 000000000..031aa6408 --- /dev/null +++ b/tests/mock-server/randomBaseUrl.ts @@ -0,0 +1,4 @@ +export function randomBaseUrl(): string { + const randomString = Math.random().toString(36).substring(2, 15); + return `http://${randomString}.localhost`; +} diff --git a/tests/mock-server/setup.ts b/tests/mock-server/setup.ts new file mode 100644 index 000000000..c216d6074 --- /dev/null +++ b/tests/mock-server/setup.ts @@ -0,0 +1,10 @@ +import { afterAll, beforeAll } from "@jest/globals"; + +import { mockServerPool } from "./MockServerPool"; + +beforeAll(() => { + mockServerPool.listen(); +}); +afterAll(() => { + mockServerPool.close(); +}); diff --git a/tests/mock-server/withHeaders.ts b/tests/mock-server/withHeaders.ts new file mode 100644 index 000000000..e77c837d9 --- /dev/null +++ b/tests/mock-server/withHeaders.ts @@ -0,0 +1,70 @@ +import { HttpResponseResolver, passthrough } from "msw"; + +/** + * Creates a request matcher that validates if request headers match specified criteria + * @param expectedHeaders - Headers to match against + * @param resolver - Response resolver to execute if headers match + */ +export function withHeaders( + expectedHeaders: Record boolean)>, + resolver: HttpResponseResolver, +): HttpResponseResolver { + return (args) => { + const { request } = args; + const { headers } = request; + + const mismatches: Record< + string, + { actual: string | null; expected: string | RegExp | ((value: string) => boolean) } + > = {}; + + for (const [key, expectedValue] of Object.entries(expectedHeaders)) { + const actualValue = headers.get(key); + + if (actualValue === null) { + mismatches[key] = { actual: null, expected: expectedValue }; + continue; + } + + if (typeof expectedValue === "function") { + if (!expectedValue(actualValue)) { + mismatches[key] = { actual: actualValue, expected: expectedValue }; + } + } else if (expectedValue instanceof RegExp) { + if (!expectedValue.test(actualValue)) { + mismatches[key] = { actual: actualValue, expected: expectedValue }; + } + } else if (expectedValue !== actualValue) { + mismatches[key] = { actual: actualValue, expected: expectedValue }; + } + } + + if (Object.keys(mismatches).length > 0) { + const formattedMismatches = formatHeaderMismatches(mismatches); + console.error("Header mismatch:", formattedMismatches); + return passthrough(); + } + + return resolver(args); + }; +} + +function formatHeaderMismatches( + mismatches: Record boolean) }>, +): Record { + const formatted: Record = {}; + + for (const [key, { actual, expected }] of Object.entries(mismatches)) { + formatted[key] = { + actual, + expected: + expected instanceof RegExp + ? expected.toString() + : typeof expected === "function" + ? "[Function]" + : expected, + }; + } + + return formatted; +} diff --git a/tests/mock-server/withJson.ts b/tests/mock-server/withJson.ts new file mode 100644 index 000000000..4b4820c9c --- /dev/null +++ b/tests/mock-server/withJson.ts @@ -0,0 +1,146 @@ +import { HttpResponseResolver, passthrough } from "msw"; + +import { fromJson, toJson } from "../../src/core/json"; + +/** + * Creates a request matcher that validates if the request JSON body exactly matches the expected object + * @param expectedBody - The exact body object to match against + * @param resolver - Response resolver to execute if body matches + */ +export function withJson(expectedBody: unknown, resolver: HttpResponseResolver): HttpResponseResolver { + return async (args) => { + const { request } = args; + + let clonedRequest: Request; + let actualBody: unknown; + try { + clonedRequest = request.clone(); + actualBody = fromJson(await clonedRequest.text()); + } catch (error) { + console.error("Error processing request body:", error); + return passthrough(); + } + + const mismatches = findMismatches(actualBody, expectedBody); + if (Object.keys(mismatches).length > 0) { + console.error("JSON body mismatch:", toJson(mismatches, undefined, 2)); + return passthrough(); + } + + return resolver(args); + }; +} + +function findMismatches(actual: any, expected: any): Record { + const mismatches: Record = {}; + + if (typeof actual !== typeof expected) { + if (areEquivalent(actual, expected)) { + return {}; + } + return { value: { actual, expected } }; + } + + if (typeof actual !== "object" || actual === null || expected === null) { + if (actual !== expected) { + if (areEquivalent(actual, expected)) { + return {}; + } + return { value: { actual, expected } }; + } + return {}; + } + + if (Array.isArray(actual) && Array.isArray(expected)) { + if (actual.length !== expected.length) { + return { length: { actual: actual.length, expected: expected.length } }; + } + + const arrayMismatches: Record = {}; + for (let i = 0; i < actual.length; i++) { + const itemMismatches = findMismatches(actual[i], expected[i]); + if (Object.keys(itemMismatches).length > 0) { + for (const [mismatchKey, mismatchValue] of Object.entries(itemMismatches)) { + arrayMismatches[`[${i}]${mismatchKey === "value" ? "" : "." + mismatchKey}`] = mismatchValue; + } + } + } + return arrayMismatches; + } + + const actualKeys = Object.keys(actual); + const expectedKeys = Object.keys(expected); + + const allKeys = new Set([...actualKeys, ...expectedKeys]); + + for (const key of allKeys) { + if (!expectedKeys.includes(key)) { + mismatches[key] = { actual: actual[key], expected: undefined }; + } else if (!actualKeys.includes(key)) { + mismatches[key] = { actual: undefined, expected: expected[key] }; + } else if ( + typeof actual[key] === "object" && + actual[key] !== null && + typeof expected[key] === "object" && + expected[key] !== null + ) { + const nestedMismatches = findMismatches(actual[key], expected[key]); + if (Object.keys(nestedMismatches).length > 0) { + for (const [nestedKey, nestedValue] of Object.entries(nestedMismatches)) { + mismatches[`${key}${nestedKey === "value" ? "" : "." + nestedKey}`] = nestedValue; + } + } + } else if (actual[key] !== expected[key]) { + if (areEquivalent(actual[key], expected[key])) { + continue; + } + mismatches[key] = { actual: actual[key], expected: expected[key] }; + } + } + + return mismatches; +} + +function areEquivalent(actual: unknown, expected: unknown): boolean { + if (actual === expected) { + return true; + } + if (isEquivalentBigInt(actual, expected)) { + return true; + } + if (isEquivalentDatetime(actual, expected)) { + return true; + } + return false; +} + +function isEquivalentBigInt(actual: unknown, expected: unknown) { + if (typeof actual === "number") { + actual = BigInt(actual); + } + if (typeof expected === "number") { + expected = BigInt(expected); + } + if (typeof actual === "bigint" && typeof expected === "bigint") { + return actual === expected; + } + return false; +} + +function isEquivalentDatetime(str1: unknown, str2: unknown): boolean { + if (typeof str1 !== "string" || typeof str2 !== "string") { + return false; + } + const isoDatePattern = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z$/; + if (!isoDatePattern.test(str1) || !isoDatePattern.test(str2)) { + return false; + } + + try { + const date1 = new Date(str1).getTime(); + const date2 = new Date(str2).getTime(); + return date1 === date2; + } catch { + return false; + } +} diff --git a/tests/tsconfig.json b/tests/tsconfig.json new file mode 100644 index 000000000..10185ed2e --- /dev/null +++ b/tests/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../tsconfig.base.json", + "compilerOptions": { + "outDir": null, + "rootDir": "..", + "baseUrl": ".." + }, + "include": ["../src", "../tests"], + "exclude": [] +} diff --git a/tests/wire/accounting/accountDetails.test.ts b/tests/wire/accounting/accountDetails.test.ts new file mode 100644 index 000000000..7584723c4 --- /dev/null +++ b/tests/wire/accounting/accountDetails.test.ts @@ -0,0 +1,51 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AccountDetails", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + integration: "BambooHR", + integration_slug: "bamboohr", + category: "hris", + end_user_origin_id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + end_user_organization_name: "Waystar Royco", + end_user_email_address: "kendall.roy@waystar-royco.com", + status: "COMPLETE", + webhook_listener_url: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + is_duplicate: true, + account_type: "PRODUCTION", + completed_at: "2024-08-26T20:11:19Z", + }; + server + .mockEndpoint() + .get("/accounting/v1/account-details") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.accountDetails.retrieve(); + expect(response).toEqual({ + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + integration: "BambooHR", + integrationSlug: "bamboohr", + category: "hris", + endUserOriginId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + endUserOrganizationName: "Waystar Royco", + endUserEmailAddress: "kendall.roy@waystar-royco.com", + status: "COMPLETE", + webhookListenerUrl: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + isDuplicate: true, + accountType: "PRODUCTION", + completedAt: new Date("2024-08-26T20:11:19.000Z"), + }); + }); +}); diff --git a/tests/wire/accounting/accountToken.test.ts b/tests/wire/accounting/accountToken.test.ts new file mode 100644 index 000000000..fb9d5af11 --- /dev/null +++ b/tests/wire/accounting/accountToken.test.ts @@ -0,0 +1,59 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AccountToken", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + account_token: "T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB", + integration: { + name: "name", + abbreviated_name: "abbreviated_name", + categories: ["hris"], + image: "image", + square_image: "square_image", + color: "color", + slug: "slug", + api_endpoints_to_documentation_urls: { key: "value" }, + webhook_setup_guide_url: "webhook_setup_guide_url", + category_beta_status: { key: "value" }, + }, + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + }; + server + .mockEndpoint() + .get("/accounting/v1/account-token/public_token") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.accountToken.retrieve("public_token"); + expect(response).toEqual({ + accountToken: "T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB", + integration: { + name: "name", + abbreviatedName: "abbreviated_name", + categories: ["hris"], + image: "image", + squareImage: "square_image", + color: "color", + slug: "slug", + apiEndpointsToDocumentationUrls: { + key: "value", + }, + webhookSetupGuideUrl: "webhook_setup_guide_url", + categoryBetaStatus: { + key: "value", + }, + }, + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + }); + }); +}); diff --git a/tests/wire/accounting/accountingPeriods.test.ts b/tests/wire/accounting/accountingPeriods.test.ts new file mode 100644 index 000000000..18afd7112 --- /dev/null +++ b/tests/wire/accounting/accountingPeriods.test.ts @@ -0,0 +1,128 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AccountingPeriods", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3015f7b1-4d01-460d-bfab-02a52d16cbd0", + remote_id: "2804580", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "April 2020 Financials", + status: "ACTIVE", + start_date: "2020-03-31T00:00:00Z", + end_date: "2020-05-01T00:00:00Z", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/accounting-periods") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.accountingPeriods.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3015f7b1-4d01-460d-bfab-02a52d16cbd0", + remoteId: "2804580", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "April 2020 Financials", + status: "ACTIVE", + startDate: new Date("2020-03-31T00:00:00.000Z"), + endDate: new Date("2020-05-01T00:00:00.000Z"), + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "3015f7b1-4d01-460d-bfab-02a52d16cbd0", + remote_id: "2804580", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "April 2020 Financials", + status: "ACTIVE", + start_date: "2020-03-31T00:00:00Z", + end_date: "2020-05-01T00:00:00Z", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/accounting/v1/accounting-periods/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.accountingPeriods.retrieve("id"); + expect(response).toEqual({ + id: "3015f7b1-4d01-460d-bfab-02a52d16cbd0", + remoteId: "2804580", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "April 2020 Financials", + status: "ACTIVE", + startDate: new Date("2020-03-31T00:00:00.000Z"), + endDate: new Date("2020-05-01T00:00:00.000Z"), + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/accounts.test.ts b/tests/wire/accounting/accounts.test.ts new file mode 100644 index 000000000..6dfc05791 --- /dev/null +++ b/tests/wire/accounting/accounts.test.ts @@ -0,0 +1,711 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Accounts", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "21", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Cash", + description: "Cash", + classification: "ASSET", + type: "Asset", + account_type: "BANK", + status: "ACTIVE", + current_balance: 1.1, + currency: "XUA", + account_number: "X12Y9AB", + parent_account: "22d92d6c-22f9-11ed-861d-0242ac120002", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/accounts") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.accounts.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "21", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Cash", + description: "Cash", + classification: "ASSET", + type: "Asset", + accountType: "BANK", + status: "ACTIVE", + currentBalance: 1.1, + currency: "XUA", + accountNumber: "X12Y9AB", + parentAccount: "22d92d6c-22f9-11ed-861d-0242ac120002", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "21", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Cash", + description: "Cash", + classification: "ASSET", + type: "Asset", + account_type: "BANK", + status: "ACTIVE", + current_balance: 1.1, + currency: "XUA", + account_number: "X12Y9AB", + parent_account: "22d92d6c-22f9-11ed-861d-0242ac120002", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/accounting/v1/accounts") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.accounts.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "21", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Cash", + description: "Cash", + classification: "ASSET", + type: "Asset", + accountType: "BANK", + status: "ACTIVE", + currentBalance: 1.1, + currency: "XUA", + accountNumber: "X12Y9AB", + parentAccount: "22d92d6c-22f9-11ed-861d-0242ac120002", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "21", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Cash", + description: "Cash", + classification: "ASSET", + type: "Asset", + account_type: "BANK", + status: "ACTIVE", + current_balance: 1.1, + currency: "XUA", + account_number: "X12Y9AB", + parent_account: "22d92d6c-22f9-11ed-861d-0242ac120002", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/accounting/v1/accounts/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.accounts.retrieve("id"); + expect(response).toEqual({ + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "21", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Cash", + description: "Cash", + classification: "ASSET", + type: "Asset", + accountType: "BANK", + status: "ACTIVE", + currentBalance: 1.1, + currency: "XUA", + accountNumber: "X12Y9AB", + parentAccount: "22d92d6c-22f9-11ed-861d-0242ac120002", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/accounting/v1/accounts/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.accounts.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/accounting/addresses.test.ts b/tests/wire/accounting/addresses.test.ts new file mode 100644 index 000000000..ed1609930 --- /dev/null +++ b/tests/wire/accounting/addresses.test.ts @@ -0,0 +1,49 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Addresses", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + type: "BILLING", + street_1: "2920 Broadway", + street_2: "2nd Floor", + city: "New York", + state: { key: "value" }, + country_subdivision: "NY", + country: "AF", + zip_code: "10027", + }; + server + .mockEndpoint() + .get("/accounting/v1/addresses/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.addresses.retrieve("id"); + expect(response).toEqual({ + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + type: "BILLING", + street1: "2920 Broadway", + street2: "2nd Floor", + city: "New York", + state: { + key: "value", + }, + countrySubdivision: "NY", + country: "AF", + zipCode: "10027", + }); + }); +}); diff --git a/tests/wire/accounting/asyncPassthrough.test.ts b/tests/wire/accounting/asyncPassthrough.test.ts new file mode 100644 index 000000000..f067d319c --- /dev/null +++ b/tests/wire/accounting/asyncPassthrough.test.ts @@ -0,0 +1,71 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AsyncPassthrough", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { method: "GET", path: "/scooters" }; + const rawResponseBody = { async_passthrough_receipt_id: "fd29020f-2695-445e-922e-dcd5e81903fd" }; + server + .mockEndpoint() + .post("/accounting/v1/async-passthrough") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.asyncPassthrough.create({ + method: "GET", + path: "/scooters", + }); + expect(response).toEqual({ + asyncPassthroughReceiptId: "fd29020f-2695-445e-922e-dcd5e81903fd", + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + method: "GET", + path: "/scooters", + status: 200, + response: { key: "value" }, + response_headers: { "X-Page-Token": "value" }, + response_type: "JSON", + headers: { "EXTRA-HEADER": "value", Authorization: "" }, + }; + server + .mockEndpoint() + .get("/accounting/v1/async-passthrough/async_passthrough_receipt_id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.asyncPassthrough.retrieve("async_passthrough_receipt_id"); + expect(response).toEqual({ + method: "GET", + path: "/scooters", + status: 200, + response: { + key: "value", + }, + responseHeaders: { + "X-Page-Token": "value", + }, + responseType: "JSON", + headers: { + "EXTRA-HEADER": "value", + Authorization: "", + }, + }); + }); +}); diff --git a/tests/wire/accounting/asyncTasks.test.ts b/tests/wire/accounting/asyncTasks.test.ts new file mode 100644 index 000000000..077c7b448 --- /dev/null +++ b/tests/wire/accounting/asyncTasks.test.ts @@ -0,0 +1,142 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AsyncTasks", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + status: "QUEUED", + result: { + status_code: 201, + response: { + model: { + id: "9871b4a9-f5d2-4f3b-a66b-dfedbed42c46", + remote_id: "990110", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + integration_params: { unique_integration_field: "unique_integration_field_value" }, + linked_account_params: { unique_linked_account_field: "unique_linked_account_field_value" }, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + type: "ACCOUNTS_RECEIVABLE", + contact: "022a2bef-57e5-4def-8ed2-7c41bd9a5ed8", + number: "AIQ12546", + issue_date: "2020-03-31T00:00:00Z", + due_date: "2020-04-15T00:00:00Z", + memo: "Weekly Payment", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "7442f0d5-722d-45bd-b807-6e38489d37fe", + paid_on_date: "2020-04-01T00:00:00Z", + currency: "USD", + exchange_rate: "2.9", + status: "DRAFT", + total_discount: 0, + sub_total: 100, + total_tax_amount: 5, + total_amount: 105, + balance: 105, + inclusive_of_tax: false, + remote_updated_at: "2020-04-01T00:00:00Z", + tracking_categories: [ + "7dc5ca17-d311-44cd-9ce0-333080367a18", + "6aa0700c-48e1-4c4a-8162-02e6a582df05", + "8c933d61-8f5b-4360-ac0c-c9dc87bee763", + ], + purchase_orders: [ + "e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7", + "dd70ca2f-b120-46fa-889a-9604037f45fd", + "889b281d-739c-4759-95b8-0aedb3947131", + ], + accounting_period: "7dc5ca17-d311-44cd-9ce0-333080367a18", + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + applied_payments: ["9017594e-dc33-4113-a5d2-b0f928e34fdd"], + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + }, + }, + }; + server + .mockEndpoint() + .get("/accounting/v1/async-tasks/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.asyncTasks.retrieve("id"); + expect(response).toEqual({ + status: "QUEUED", + result: { + statusCode: 201, + response: { + model: { + id: "9871b4a9-f5d2-4f3b-a66b-dfedbed42c46", + remote_id: "990110", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + integration_params: { + unique_integration_field: "unique_integration_field_value", + }, + linked_account_params: { + unique_linked_account_field: "unique_linked_account_field_value", + }, + field_mappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + type: "ACCOUNTS_RECEIVABLE", + contact: "022a2bef-57e5-4def-8ed2-7c41bd9a5ed8", + number: "AIQ12546", + issue_date: "2020-03-31T00:00:00Z", + due_date: "2020-04-15T00:00:00Z", + memo: "Weekly Payment", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "7442f0d5-722d-45bd-b807-6e38489d37fe", + paid_on_date: "2020-04-01T00:00:00Z", + currency: "USD", + exchange_rate: "2.9", + status: "DRAFT", + total_discount: 0, + sub_total: 100, + total_tax_amount: 5, + total_amount: 105, + balance: 105, + inclusive_of_tax: false, + remote_updated_at: "2020-04-01T00:00:00Z", + tracking_categories: [ + "7dc5ca17-d311-44cd-9ce0-333080367a18", + "6aa0700c-48e1-4c4a-8162-02e6a582df05", + "8c933d61-8f5b-4360-ac0c-c9dc87bee763", + ], + purchase_orders: [ + "e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7", + "dd70ca2f-b120-46fa-889a-9604037f45fd", + "889b281d-739c-4759-95b8-0aedb3947131", + ], + accounting_period: "7dc5ca17-d311-44cd-9ce0-333080367a18", + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + applied_payments: ["9017594e-dc33-4113-a5d2-b0f928e34fdd"], + remote_data: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + }, + }, + }); + }); +}); diff --git a/tests/wire/accounting/attachments.test.ts b/tests/wire/accounting/attachments.test.ts new file mode 100644 index 000000000..872617a87 --- /dev/null +++ b/tests/wire/accounting/attachments.test.ts @@ -0,0 +1,663 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Attachments", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "1018270", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + file_name: "invoice.png", + file_url: "https://merge-brand.s3.amazonaws.com/20210315/rect-logo-270x80%402x.png", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/attachments") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.attachments.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "1018270", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + fileName: "invoice.png", + fileUrl: "https://merge-brand.s3.amazonaws.com/20210315/rect-logo-270x80%402x.png", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "1018270", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + file_name: "invoice.png", + file_url: "https://merge-brand.s3.amazonaws.com/20210315/rect-logo-270x80%402x.png", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/accounting/v1/attachments") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.attachments.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "1018270", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + fileName: "invoice.png", + fileUrl: "https://merge-brand.s3.amazonaws.com/20210315/rect-logo-270x80%402x.png", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "1018270", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + file_name: "invoice.png", + file_url: "https://merge-brand.s3.amazonaws.com/20210315/rect-logo-270x80%402x.png", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/accounting/v1/attachments/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.attachments.retrieve("id"); + expect(response).toEqual({ + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "1018270", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + fileName: "invoice.png", + fileUrl: "https://merge-brand.s3.amazonaws.com/20210315/rect-logo-270x80%402x.png", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/accounting/v1/attachments/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.attachments.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/accounting/auditTrail.test.ts b/tests/wire/accounting/auditTrail.test.ts new file mode 100644 index 000000000..0c0cb593b --- /dev/null +++ b/tests/wire/accounting/auditTrail.test.ts @@ -0,0 +1,57 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AuditTrail", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b5ceea2a-7171-47ce-8090-165cfce5572c", + user_name: "Gil Feig", + user_email: "hello@merge.dev", + role: "ADMIN", + ip_address: "192.0.2.123", + event_type: "CREATED_REMOTE_PRODUCTION_API_KEY", + event_description: + "Organization-wide Scopes for model hris.Employee updated from Read to Read+Write", + created_at: "2024-01-15T09:30:00Z", + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/audit-trail") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.auditTrail.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b5ceea2a-7171-47ce-8090-165cfce5572c", + userName: "Gil Feig", + userEmail: "hello@merge.dev", + role: "ADMIN", + ipAddress: "192.0.2.123", + eventType: "CREATED_REMOTE_PRODUCTION_API_KEY", + eventDescription: + "Organization-wide Scopes for model hris.Employee updated from Read to Read+Write", + createdAt: new Date("2024-01-15T09:30:00.000Z"), + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/availableActions.test.ts b/tests/wire/accounting/availableActions.test.ts new file mode 100644 index 000000000..b713e384b --- /dev/null +++ b/tests/wire/accounting/availableActions.test.ts @@ -0,0 +1,73 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AvailableActions", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + integration: { + name: "name", + abbreviated_name: "abbreviated_name", + categories: ["hris"], + image: "image", + square_image: "square_image", + color: "color", + slug: "slug", + api_endpoints_to_documentation_urls: { key: "value" }, + webhook_setup_guide_url: "webhook_setup_guide_url", + category_beta_status: { key: "value" }, + }, + passthrough_available: true, + available_model_operations: [ + { + model_name: "Candidate", + available_operations: ["FETCH", "CREATE"], + required_post_parameters: ["remote_user_id"], + supported_fields: ["first_name", "last_name", "company", "title"], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/available-actions") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.availableActions.retrieve(); + expect(response).toEqual({ + integration: { + name: "name", + abbreviatedName: "abbreviated_name", + categories: ["hris"], + image: "image", + squareImage: "square_image", + color: "color", + slug: "slug", + apiEndpointsToDocumentationUrls: { + key: "value", + }, + webhookSetupGuideUrl: "webhook_setup_guide_url", + categoryBetaStatus: { + key: "value", + }, + }, + passthroughAvailable: true, + availableModelOperations: [ + { + modelName: "Candidate", + availableOperations: ["FETCH", "CREATE"], + requiredPostParameters: ["remote_user_id"], + supportedFields: ["first_name", "last_name", "company", "title"], + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/balanceSheets.test.ts b/tests/wire/accounting/balanceSheets.test.ts new file mode 100644 index 000000000..84898ce20 --- /dev/null +++ b/tests/wire/accounting/balanceSheets.test.ts @@ -0,0 +1,357 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("BalanceSheets", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "9871b4a9-f5d2-4f3b-a66b-dfedbed42c46", + remote_id: "8937018", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "BalanceSheet", + currency: "XUA", + company: "company", + date: "2021-10-01T00:00:00Z", + net_assets: 1000, + assets: [ + { + remote_id: "10010", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Assets", + value: 1000, + sub_items: [ + { remote_id: "10300", name: "Revenue - San Francisco", value: 500 }, + { remote_id: "10301", name: "Revenue - New York", value: 500 }, + ], + }, + ], + liabilities: [ + { + remote_id: "10011", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Liabilities", + value: 500, + sub_items: [ + { remote_id: "10300", name: "Revenue - San Francisco", value: 500 }, + { remote_id: "10301", name: "Revenue - New York", value: 500 }, + ], + }, + ], + equity: [ + { + remote_id: "10012", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Equity", + value: 500, + sub_items: [ + { remote_id: "10300", name: "Revenue - San Francisco", value: 500 }, + { remote_id: "10301", name: "Revenue - New York", value: 500 }, + ], + }, + ], + remote_generated_at: "2021-10-01T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/balance-sheets") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.balanceSheets.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "9871b4a9-f5d2-4f3b-a66b-dfedbed42c46", + remoteId: "8937018", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "BalanceSheet", + currency: "XUA", + company: "company", + date: new Date("2021-10-01T00:00:00.000Z"), + netAssets: 1000, + assets: [ + { + remoteId: "10010", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Assets", + value: 1000, + subItems: [ + { + remote_id: "10300", + name: "Revenue - San Francisco", + value: 500, + }, + { + remote_id: "10301", + name: "Revenue - New York", + value: 500, + }, + ], + }, + ], + liabilities: [ + { + remoteId: "10011", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Liabilities", + value: 500, + subItems: [ + { + remote_id: "10300", + name: "Revenue - San Francisco", + value: 500, + }, + { + remote_id: "10301", + name: "Revenue - New York", + value: 500, + }, + ], + }, + ], + equity: [ + { + remoteId: "10012", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Equity", + value: 500, + subItems: [ + { + remote_id: "10300", + name: "Revenue - San Francisco", + value: 500, + }, + { + remote_id: "10301", + name: "Revenue - New York", + value: 500, + }, + ], + }, + ], + remoteGeneratedAt: new Date("2021-10-01T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "9871b4a9-f5d2-4f3b-a66b-dfedbed42c46", + remote_id: "8937018", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "BalanceSheet", + currency: "XUA", + company: "company", + date: "2021-10-01T00:00:00Z", + net_assets: 1000, + assets: [ + { + remote_id: "10010", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Assets", + value: 1000, + sub_items: [ + { remote_id: "10300", name: "Revenue - San Francisco", value: 500 }, + { remote_id: "10301", name: "Revenue - New York", value: 500 }, + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: true, + }, + ], + liabilities: [ + { + remote_id: "10011", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Liabilities", + value: 500, + sub_items: [ + { remote_id: "10300", name: "Revenue - San Francisco", value: 500 }, + { remote_id: "10301", name: "Revenue - New York", value: 500 }, + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: true, + }, + ], + equity: [ + { + remote_id: "10012", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Equity", + value: 500, + sub_items: [ + { remote_id: "10300", name: "Revenue - San Francisco", value: 500 }, + { remote_id: "10301", name: "Revenue - New York", value: 500 }, + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: true, + }, + ], + remote_generated_at: "2021-10-01T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint", data: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/accounting/v1/balance-sheets/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.balanceSheets.retrieve("id"); + expect(response).toEqual({ + id: "9871b4a9-f5d2-4f3b-a66b-dfedbed42c46", + remoteId: "8937018", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "BalanceSheet", + currency: "XUA", + company: "company", + date: new Date("2021-10-01T00:00:00.000Z"), + netAssets: 1000, + assets: [ + { + remoteId: "10010", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Assets", + value: 1000, + subItems: [ + { + remote_id: "10300", + name: "Revenue - San Francisco", + value: 500, + }, + { + remote_id: "10301", + name: "Revenue - New York", + value: 500, + }, + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: true, + }, + ], + liabilities: [ + { + remoteId: "10011", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Liabilities", + value: 500, + subItems: [ + { + remote_id: "10300", + name: "Revenue - San Francisco", + value: 500, + }, + { + remote_id: "10301", + name: "Revenue - New York", + value: 500, + }, + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: true, + }, + ], + equity: [ + { + remoteId: "10012", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Equity", + value: 500, + subItems: [ + { + remote_id: "10300", + name: "Revenue - San Francisco", + value: 500, + }, + { + remote_id: "10301", + name: "Revenue - New York", + value: 500, + }, + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: true, + }, + ], + remoteGeneratedAt: new Date("2021-10-01T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + data: { + key: "value", + }, + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/bankFeedAccounts.test.ts b/tests/wire/accounting/bankFeedAccounts.test.ts new file mode 100644 index 000000000..662cb1592 --- /dev/null +++ b/tests/wire/accounting/bankFeedAccounts.test.ts @@ -0,0 +1,696 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("BankFeedAccounts", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remote_id: "987300", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + source_account_id: "123566909", + target_account_id: "49cd5a42-b311-4750-9361-52e2ed1d4653", + source_account_name: "Travel Bank Account", + source_account_number: "12567", + target_account_name: "Netsuite Travel Bank Account", + currency: "XUA", + feed_status: "ACTIVE", + feed_start_date: "2024-02-02T00:00:00Z", + source_account_balance: 123.94, + account_type: "BANK", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/bank-feed-accounts") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.bankFeedAccounts.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remoteId: "987300", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + sourceAccountId: "123566909", + targetAccountId: "49cd5a42-b311-4750-9361-52e2ed1d4653", + sourceAccountName: "Travel Bank Account", + sourceAccountNumber: "12567", + targetAccountName: "Netsuite Travel Bank Account", + currency: "XUA", + feedStatus: "ACTIVE", + feedStartDate: new Date("2024-02-02T00:00:00.000Z"), + sourceAccountBalance: 123.94, + accountType: "BANK", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remote_id: "987300", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + source_account_id: "123566909", + target_account_id: "49cd5a42-b311-4750-9361-52e2ed1d4653", + source_account_name: "Travel Bank Account", + source_account_number: "12567", + target_account_name: "Netsuite Travel Bank Account", + currency: "XUA", + feed_status: "ACTIVE", + feed_start_date: "2024-02-02T00:00:00Z", + source_account_balance: 123.94, + account_type: "BANK", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ key: "value" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/accounting/v1/bank-feed-accounts") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.bankFeedAccounts.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remoteId: "987300", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + sourceAccountId: "123566909", + targetAccountId: "49cd5a42-b311-4750-9361-52e2ed1d4653", + sourceAccountName: "Travel Bank Account", + sourceAccountNumber: "12567", + targetAccountName: "Netsuite Travel Bank Account", + currency: "XUA", + feedStatus: "ACTIVE", + feedStartDate: new Date("2024-02-02T00:00:00.000Z"), + sourceAccountBalance: 123.94, + accountType: "BANK", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + key: "value", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remote_id: "987300", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + source_account_id: "123566909", + target_account_id: "49cd5a42-b311-4750-9361-52e2ed1d4653", + source_account_name: "Travel Bank Account", + source_account_number: "12567", + target_account_name: "Netsuite Travel Bank Account", + currency: "XUA", + feed_status: "ACTIVE", + feed_start_date: "2024-02-02T00:00:00Z", + source_account_balance: 123.94, + account_type: "BANK", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ key: "value" }], + }; + server + .mockEndpoint() + .get("/accounting/v1/bank-feed-accounts/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.bankFeedAccounts.retrieve("id"); + expect(response).toEqual({ + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remoteId: "987300", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + sourceAccountId: "123566909", + targetAccountId: "49cd5a42-b311-4750-9361-52e2ed1d4653", + sourceAccountName: "Travel Bank Account", + sourceAccountNumber: "12567", + targetAccountName: "Netsuite Travel Bank Account", + currency: "XUA", + feedStatus: "ACTIVE", + feedStartDate: new Date("2024-02-02T00:00:00.000Z"), + sourceAccountBalance: 123.94, + accountType: "BANK", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + key: "value", + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/accounting/v1/bank-feed-accounts/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.bankFeedAccounts.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/accounting/bankFeedTransactions.test.ts b/tests/wire/accounting/bankFeedTransactions.test.ts new file mode 100644 index 000000000..b82d4cbb9 --- /dev/null +++ b/tests/wire/accounting/bankFeedTransactions.test.ts @@ -0,0 +1,648 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("BankFeedTransactions", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remote_id: "987300", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + bank_feed_account: "bank_feed_account", + transaction_date: "2024-02-02T00:00:00Z", + posted_date: "2024-02-03T00:00:00Z", + amount: 100.1, + description: "Lunch expense", + transaction_type: "payment", + payee: "Elmo's diner", + credit_or_debit: "CREDIT", + source_transaction_id: "124569", + remote_was_deleted: true, + is_processed: true, + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/bank-feed-transactions") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.bankFeedTransactions.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remoteId: "987300", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + bankFeedAccount: "bank_feed_account", + transactionDate: new Date("2024-02-02T00:00:00.000Z"), + postedDate: new Date("2024-02-03T00:00:00.000Z"), + amount: 100.1, + description: "Lunch expense", + transactionType: "payment", + payee: "Elmo's diner", + creditOrDebit: "CREDIT", + sourceTransactionId: "124569", + remoteWasDeleted: true, + isProcessed: true, + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remote_id: "987300", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + bank_feed_account: "bank_feed_account", + transaction_date: "2024-02-02T00:00:00Z", + posted_date: "2024-02-03T00:00:00Z", + amount: 100.1, + description: "Lunch expense", + transaction_type: "payment", + payee: "Elmo's diner", + credit_or_debit: "CREDIT", + source_transaction_id: "124569", + remote_was_deleted: true, + is_processed: true, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/accounting/v1/bank-feed-transactions") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.bankFeedTransactions.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remoteId: "987300", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + bankFeedAccount: "bank_feed_account", + transactionDate: new Date("2024-02-02T00:00:00.000Z"), + postedDate: new Date("2024-02-03T00:00:00.000Z"), + amount: 100.1, + description: "Lunch expense", + transactionType: "payment", + payee: "Elmo's diner", + creditOrDebit: "CREDIT", + sourceTransactionId: "124569", + remoteWasDeleted: true, + isProcessed: true, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remote_id: "987300", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + bank_feed_account: "bank_feed_account", + transaction_date: "2024-02-02T00:00:00Z", + posted_date: "2024-02-03T00:00:00Z", + amount: 100.1, + description: "Lunch expense", + transaction_type: "payment", + payee: "Elmo's diner", + credit_or_debit: "CREDIT", + source_transaction_id: "124569", + remote_was_deleted: true, + is_processed: true, + }; + server + .mockEndpoint() + .get("/accounting/v1/bank-feed-transactions/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.bankFeedTransactions.retrieve("id"); + expect(response).toEqual({ + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remoteId: "987300", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + bankFeedAccount: "bank_feed_account", + transactionDate: new Date("2024-02-02T00:00:00.000Z"), + postedDate: new Date("2024-02-03T00:00:00.000Z"), + amount: 100.1, + description: "Lunch expense", + transactionType: "payment", + payee: "Elmo's diner", + creditOrDebit: "CREDIT", + sourceTransactionId: "124569", + remoteWasDeleted: true, + isProcessed: true, + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/accounting/v1/bank-feed-transactions/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.bankFeedTransactions.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/accounting/cashFlowStatements.test.ts b/tests/wire/accounting/cashFlowStatements.test.ts new file mode 100644 index 000000000..610ae9091 --- /dev/null +++ b/tests/wire/accounting/cashFlowStatements.test.ts @@ -0,0 +1,364 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("CashFlowStatements", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + remote_id: "8211088", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "CashFlow", + currency: "XUA", + company: "company", + start_period: "2020-01-01T00:00:00Z", + end_period: "2020-03-31T00:00:00Z", + cash_at_beginning_of_period: 5000, + cash_at_end_of_period: 4063.52, + operating_activities: [ + { + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-09-18T00:00:00Z", + name: "Operating Activities", + value: 1000, + sub_items: [ + { + remote_id: "23042938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-09-18T00:00:00Z", + name: "Net Income", + value: 1097.13, + }, + ], + }, + ], + investing_activities: [ + { + remote_id: "192406939", + created_at: "2021-11-15T00:00:00Z", + modified_at: "2021-11-18T00:00:00Z", + name: "Equipment", + value: 1000, + sub_items: [ + { + created_at: "2021-11-15T00:00:00Z", + modified_at: "2021-09-18T00:00:00Z", + name: "Equipment", + value: 1000, + }, + ], + }, + ], + financing_activities: [ + { + remote_id: "192406939", + created_at: "2021-11-15T00:00:00Z", + modified_at: "2021-11-15T00:00:00Z", + sub_items: [ + { remote_id: "10300", name: "Revenue - San Francisco", value: 500 }, + { remote_id: "10301", name: "Revenue - New York", value: 500 }, + ], + }, + ], + remote_generated_at: "2020-04-01T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/cash-flow-statements") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.cashFlowStatements.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + remoteId: "8211088", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "CashFlow", + currency: "XUA", + company: "company", + startPeriod: new Date("2020-01-01T00:00:00.000Z"), + endPeriod: new Date("2020-03-31T00:00:00.000Z"), + cashAtBeginningOfPeriod: 5000, + cashAtEndOfPeriod: 4063.52, + operatingActivities: [ + { + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-09-18T00:00:00.000Z"), + name: "Operating Activities", + value: 1000, + subItems: [ + { + remote_id: "23042938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-09-18T00:00:00Z", + name: "Net Income", + value: 1097.13, + }, + ], + }, + ], + investingActivities: [ + { + remoteId: "192406939", + createdAt: new Date("2021-11-15T00:00:00.000Z"), + modifiedAt: new Date("2021-11-18T00:00:00.000Z"), + name: "Equipment", + value: 1000, + subItems: [ + { + created_at: "2021-11-15T00:00:00Z", + modified_at: "2021-09-18T00:00:00Z", + name: "Equipment", + value: 1000, + }, + ], + }, + ], + financingActivities: [ + { + remoteId: "192406939", + createdAt: new Date("2021-11-15T00:00:00.000Z"), + modifiedAt: new Date("2021-11-15T00:00:00.000Z"), + subItems: [ + { + remote_id: "10300", + name: "Revenue - San Francisco", + value: 500, + }, + { + remote_id: "10301", + name: "Revenue - New York", + value: 500, + }, + ], + }, + ], + remoteGeneratedAt: new Date("2020-04-01T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + remote_id: "8211088", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "CashFlow", + currency: "XUA", + company: "company", + start_period: "2020-01-01T00:00:00Z", + end_period: "2020-03-31T00:00:00Z", + cash_at_beginning_of_period: 5000, + cash_at_end_of_period: 4063.52, + operating_activities: [ + { + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-09-18T00:00:00Z", + name: "Operating Activities", + value: 1000, + sub_items: [ + { + remote_id: "23042938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-09-18T00:00:00Z", + name: "Net Income", + value: 1097.13, + }, + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: true, + }, + ], + investing_activities: [ + { + remote_id: "192406939", + created_at: "2021-11-15T00:00:00Z", + modified_at: "2021-11-18T00:00:00Z", + name: "Equipment", + value: 1000, + sub_items: [ + { + created_at: "2021-11-15T00:00:00Z", + modified_at: "2021-09-18T00:00:00Z", + name: "Equipment", + value: 1000, + }, + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: true, + }, + ], + financing_activities: [ + { + remote_id: "192406939", + created_at: "2021-11-15T00:00:00Z", + modified_at: "2021-11-15T00:00:00Z", + name: "Revenue", + value: 1000, + sub_items: [ + { remote_id: "10300", name: "Revenue - San Francisco", value: 500 }, + { remote_id: "10301", name: "Revenue - New York", value: 500 }, + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: true, + }, + ], + remote_generated_at: "2020-04-01T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/accounting/v1/cash-flow-statements/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.cashFlowStatements.retrieve("id"); + expect(response).toEqual({ + id: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + remoteId: "8211088", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "CashFlow", + currency: "XUA", + company: "company", + startPeriod: new Date("2020-01-01T00:00:00.000Z"), + endPeriod: new Date("2020-03-31T00:00:00.000Z"), + cashAtBeginningOfPeriod: 5000, + cashAtEndOfPeriod: 4063.52, + operatingActivities: [ + { + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-09-18T00:00:00.000Z"), + name: "Operating Activities", + value: 1000, + subItems: [ + { + remote_id: "23042938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-09-18T00:00:00Z", + name: "Net Income", + value: 1097.13, + }, + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: true, + }, + ], + investingActivities: [ + { + remoteId: "192406939", + createdAt: new Date("2021-11-15T00:00:00.000Z"), + modifiedAt: new Date("2021-11-18T00:00:00.000Z"), + name: "Equipment", + value: 1000, + subItems: [ + { + created_at: "2021-11-15T00:00:00Z", + modified_at: "2021-09-18T00:00:00Z", + name: "Equipment", + value: 1000, + }, + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: true, + }, + ], + financingActivities: [ + { + remoteId: "192406939", + createdAt: new Date("2021-11-15T00:00:00.000Z"), + modifiedAt: new Date("2021-11-15T00:00:00.000Z"), + name: "Revenue", + value: 1000, + subItems: [ + { + remote_id: "10300", + name: "Revenue - San Francisco", + value: 500, + }, + { + remote_id: "10301", + name: "Revenue - New York", + value: 500, + }, + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: true, + }, + ], + remoteGeneratedAt: new Date("2020-04-01T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/companyInfo.test.ts b/tests/wire/accounting/companyInfo.test.ts new file mode 100644 index 000000000..0f04c24f5 --- /dev/null +++ b/tests/wire/accounting/companyInfo.test.ts @@ -0,0 +1,221 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("CompanyInfo", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "65d8ffd0-211b-4ba4-b85a-fbe2ce220982", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Merge Pickleball Company", + legal_name: "Merge Pickleball Company Inc.", + tax_number: "11-0011000", + fiscal_year_end_month: 12, + fiscal_year_end_day: 31, + currency: "XUA", + remote_created_at: "2020-03-31T00:00:00Z", + addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + street_1: "2920 Broadway", + street_2: "2nd Floor", + city: "New York", + state: "NY", + country: "US", + zip_code: "10027", + }, + ], + phone_numbers: [{ created_at: "2021-09-15T00:00:00Z", modified_at: "2021-10-16T00:00:00Z" }], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/company-info") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.companyInfo.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "65d8ffd0-211b-4ba4-b85a-fbe2ce220982", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Merge Pickleball Company", + legalName: "Merge Pickleball Company Inc.", + taxNumber: "11-0011000", + fiscalYearEndMonth: 12, + fiscalYearEndDay: 31, + currency: "XUA", + remoteCreatedAt: new Date("2020-03-31T00:00:00.000Z"), + addresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + street1: "2920 Broadway", + street2: "2nd Floor", + city: "New York", + state: "NY", + country: "US", + zipCode: "10027", + }, + ], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + }, + ], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "65d8ffd0-211b-4ba4-b85a-fbe2ce220982", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Merge Pickleball Company", + legal_name: "Merge Pickleball Company Inc.", + tax_number: "11-0011000", + fiscal_year_end_month: 12, + fiscal_year_end_day: 31, + currency: "XUA", + remote_created_at: "2020-03-31T00:00:00Z", + urls: ["urls"], + addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + type: "BILLING", + street_1: "2920 Broadway", + street_2: "2nd Floor", + city: "New York", + state: "NY", + country_subdivision: "NY", + country: "US", + zip_code: "10027", + }, + ], + phone_numbers: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + number: "+3198675309", + type: "Mobile", + }, + ], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/accounting/v1/company-info/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.companyInfo.retrieve("id"); + expect(response).toEqual({ + id: "65d8ffd0-211b-4ba4-b85a-fbe2ce220982", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Merge Pickleball Company", + legalName: "Merge Pickleball Company Inc.", + taxNumber: "11-0011000", + fiscalYearEndMonth: 12, + fiscalYearEndDay: 31, + currency: "XUA", + remoteCreatedAt: new Date("2020-03-31T00:00:00.000Z"), + urls: ["urls"], + addresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + type: "BILLING", + street1: "2920 Broadway", + street2: "2nd Floor", + city: "New York", + state: "NY", + countrySubdivision: "NY", + country: "US", + zipCode: "10027", + }, + ], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + number: "+3198675309", + type: "Mobile", + }, + ], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/contacts.test.ts b/tests/wire/accounting/contacts.test.ts new file mode 100644 index 000000000..fab40f7f1 --- /dev/null +++ b/tests/wire/accounting/contacts.test.ts @@ -0,0 +1,823 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Contacts", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "c640b80b-fac9-409f-aa19-1f9221aec445", + remote_id: "11167", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Gil Feig's pickleball store", + is_supplier: true, + is_customer: true, + email_address: "pickleball@merge.dev", + tax_number: "12-3456789", + status: "ACTIVE", + currency: "USD", + remote_updated_at: "2020-03-31T00:00:00Z", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + addresses: ["2f2702aa-8948-492b-a412-2acdf6d2c499", "d98c7428-8dda-48a8-a1da-c570f65e2375"], + phone_numbers: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + number: "+3198675309", + type: "Mobile", + }, + ], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/contacts") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.contacts.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "c640b80b-fac9-409f-aa19-1f9221aec445", + remoteId: "11167", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Gil Feig's pickleball store", + isSupplier: true, + isCustomer: true, + emailAddress: "pickleball@merge.dev", + taxNumber: "12-3456789", + status: "ACTIVE", + currency: "USD", + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + addresses: ["2f2702aa-8948-492b-a412-2acdf6d2c499", "d98c7428-8dda-48a8-a1da-c570f65e2375"], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + number: "+3198675309", + type: "Mobile", + }, + ], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "c640b80b-fac9-409f-aa19-1f9221aec445", + remote_id: "11167", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Gil Feig's pickleball store", + is_supplier: true, + is_customer: true, + email_address: "pickleball@merge.dev", + tax_number: "12-3456789", + status: "ACTIVE", + currency: "USD", + remote_updated_at: "2020-03-31T00:00:00Z", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + addresses: ["2f2702aa-8948-492b-a412-2acdf6d2c499", "d98c7428-8dda-48a8-a1da-c570f65e2375"], + phone_numbers: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + number: "+3198675309", + type: "Mobile", + }, + ], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/accounting/v1/contacts") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.contacts.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "c640b80b-fac9-409f-aa19-1f9221aec445", + remoteId: "11167", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Gil Feig's pickleball store", + isSupplier: true, + isCustomer: true, + emailAddress: "pickleball@merge.dev", + taxNumber: "12-3456789", + status: "ACTIVE", + currency: "USD", + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + addresses: ["2f2702aa-8948-492b-a412-2acdf6d2c499", "d98c7428-8dda-48a8-a1da-c570f65e2375"], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + number: "+3198675309", + type: "Mobile", + }, + ], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "c640b80b-fac9-409f-aa19-1f9221aec445", + remote_id: "11167", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Gil Feig's pickleball store", + is_supplier: true, + is_customer: true, + email_address: "pickleball@merge.dev", + tax_number: "12-3456789", + status: "ACTIVE", + currency: "USD", + remote_updated_at: "2020-03-31T00:00:00Z", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + addresses: ["2f2702aa-8948-492b-a412-2acdf6d2c499", "d98c7428-8dda-48a8-a1da-c570f65e2375"], + phone_numbers: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + number: "+3198675309", + type: "Mobile", + }, + ], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class", value: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/accounting/v1/contacts/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.contacts.retrieve("id"); + expect(response).toEqual({ + id: "c640b80b-fac9-409f-aa19-1f9221aec445", + remoteId: "11167", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Gil Feig's pickleball store", + isSupplier: true, + isCustomer: true, + emailAddress: "pickleball@merge.dev", + taxNumber: "12-3456789", + status: "ACTIVE", + currency: "USD", + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + addresses: ["2f2702aa-8948-492b-a412-2acdf6d2c499", "d98c7428-8dda-48a8-a1da-c570f65e2375"], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + number: "+3198675309", + type: "Mobile", + }, + ], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + value: { + key: "value", + }, + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/accounting/v1/contacts/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.contacts.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("remoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: ["field_choices"], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/contacts/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.contacts.remoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: ["field_choices"], + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/creditNotes.test.ts b/tests/wire/accounting/creditNotes.test.ts new file mode 100644 index 000000000..2b18cee50 --- /dev/null +++ b/tests/wire/accounting/creditNotes.test.ts @@ -0,0 +1,981 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("CreditNotes", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + remote_id: "123877", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + transaction_date: "2020-03-31T00:00:00Z", + status: "SUBMITTED", + number: "CN-29", + contact: "contact", + company: "company", + exchange_rate: "2.9", + total_amount: 50, + remaining_credit: 20, + inclusive_of_tax: true, + line_items: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121222", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + item: "0e3fd929-436c-4fd4-a48b-0c61f68d6178", + name: "Basic Monthly", + description: "prorated amount for items", + quantity: "quantity", + memo: "privNote", + unit_price: "5.0", + tax_rate: "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + total_line_amount: "5.0", + tracking_categories: [ + "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + account: "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + contact: "908934-49j9-093f-0989-908923908", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + remote_was_deleted: true, + }, + ], + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + currency: "XUA", + remote_created_at: "2020-03-31T00:00:00Z", + remote_updated_at: "2020-03-31T00:00:00Z", + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + applied_payments: ["a9a94a75-19c1-41fe-90d8-d9ba959c38e5"], + accounting_period: "accounting_period", + applied_to_lines: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + invoice: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + applied_date: "2020-03-31T00:00:00Z", + applied_amount: "2.9", + }, + ], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/credit-notes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.creditNotes.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + remoteId: "123877", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + transactionDate: new Date("2020-03-31T00:00:00.000Z"), + status: "SUBMITTED", + number: "CN-29", + contact: "contact", + company: "company", + exchangeRate: "2.9", + totalAmount: 50, + remainingCredit: 20, + inclusiveOfTax: true, + lineItems: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121222", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + item: "0e3fd929-436c-4fd4-a48b-0c61f68d6178", + name: "Basic Monthly", + description: "prorated amount for items", + quantity: "quantity", + memo: "privNote", + unitPrice: "5.0", + taxRate: "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + totalLineAmount: "5.0", + trackingCategories: [ + "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + account: "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + contact: "908934-49j9-093f-0989-908923908", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + remoteWasDeleted: true, + }, + ], + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + currency: "XUA", + remoteCreatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + appliedPayments: ["a9a94a75-19c1-41fe-90d8-d9ba959c38e5"], + accountingPeriod: "accounting_period", + appliedToLines: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + invoice: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + appliedAmount: "2.9", + }, + ], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + remote_id: "123877", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + transaction_date: "2020-03-31T00:00:00Z", + status: "SUBMITTED", + number: "CN-29", + contact: "contact", + company: "company", + exchange_rate: "2.9", + total_amount: 50, + remaining_credit: 20, + inclusive_of_tax: true, + line_items: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121222", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + item: "0e3fd929-436c-4fd4-a48b-0c61f68d6178", + name: "Basic Monthly", + description: "prorated amount for items", + quantity: "quantity", + memo: "privNote", + unit_price: "5.0", + tax_rate: "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + total_line_amount: "5.0", + tracking_categories: [ + "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + account: "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + contact: "908934-49j9-093f-0989-908923908", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + remote_was_deleted: true, + }, + ], + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + currency: "XUA", + remote_created_at: "2020-03-31T00:00:00Z", + remote_updated_at: "2020-03-31T00:00:00Z", + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + applied_payments: ["a9a94a75-19c1-41fe-90d8-d9ba959c38e5"], + accounting_period: "accounting_period", + applied_to_lines: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + invoice: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + applied_date: "2020-03-31T00:00:00Z", + applied_amount: "2.9", + }, + ], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/accounting/v1/credit-notes") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.creditNotes.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + remoteId: "123877", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + transactionDate: new Date("2020-03-31T00:00:00.000Z"), + status: "SUBMITTED", + number: "CN-29", + contact: "contact", + company: "company", + exchangeRate: "2.9", + totalAmount: 50, + remainingCredit: 20, + inclusiveOfTax: true, + lineItems: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121222", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + item: "0e3fd929-436c-4fd4-a48b-0c61f68d6178", + name: "Basic Monthly", + description: "prorated amount for items", + quantity: "quantity", + memo: "privNote", + unitPrice: "5.0", + taxRate: "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + totalLineAmount: "5.0", + trackingCategories: [ + "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + account: "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + contact: "908934-49j9-093f-0989-908923908", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + remoteWasDeleted: true, + }, + ], + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + currency: "XUA", + remoteCreatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + appliedPayments: ["a9a94a75-19c1-41fe-90d8-d9ba959c38e5"], + accountingPeriod: "accounting_period", + appliedToLines: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + invoice: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + appliedAmount: "2.9", + }, + ], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + remote_id: "123877", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + transaction_date: "2020-03-31T00:00:00Z", + status: "SUBMITTED", + number: "CN-29", + contact: "contact", + company: "company", + exchange_rate: "2.9", + total_amount: 50, + remaining_credit: 20, + inclusive_of_tax: true, + line_items: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121222", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + item: "0e3fd929-436c-4fd4-a48b-0c61f68d6178", + name: "Basic Monthly", + description: "prorated amount for items", + quantity: "quantity", + memo: "privNote", + unit_price: "5.0", + tax_rate: "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + total_line_amount: "5.0", + tracking_category: "tracking_category", + tracking_categories: [ + "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + account: "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + contact: "908934-49j9-093f-0989-908923908", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + remote_was_deleted: true, + }, + ], + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + currency: "XUA", + remote_created_at: "2020-03-31T00:00:00Z", + remote_updated_at: "2020-03-31T00:00:00Z", + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + applied_payments: ["a9a94a75-19c1-41fe-90d8-d9ba959c38e5"], + accounting_period: "accounting_period", + applied_to_lines: [ + { + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + invoice: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + applied_date: "2020-03-31T00:00:00Z", + applied_amount: "2.9", + remote_was_deleted: true, + }, + ], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/accounting/v1/credit-notes/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.creditNotes.retrieve("id"); + expect(response).toEqual({ + id: "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + remoteId: "123877", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + transactionDate: new Date("2020-03-31T00:00:00.000Z"), + status: "SUBMITTED", + number: "CN-29", + contact: "contact", + company: "company", + exchangeRate: "2.9", + totalAmount: 50, + remainingCredit: 20, + inclusiveOfTax: true, + lineItems: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121222", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + item: "0e3fd929-436c-4fd4-a48b-0c61f68d6178", + name: "Basic Monthly", + description: "prorated amount for items", + quantity: "quantity", + memo: "privNote", + unitPrice: "5.0", + taxRate: "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + totalLineAmount: "5.0", + trackingCategory: "tracking_category", + trackingCategories: [ + "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + account: "8d9fd929-436c-4fd4-a48b-0c61f68d6178", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + contact: "908934-49j9-093f-0989-908923908", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + remoteWasDeleted: true, + }, + ], + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + currency: "XUA", + remoteCreatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + appliedPayments: ["a9a94a75-19c1-41fe-90d8-d9ba959c38e5"], + accountingPeriod: "accounting_period", + appliedToLines: [ + { + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + invoice: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + appliedAmount: "2.9", + remoteWasDeleted: true, + }, + ], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/accounting/v1/credit-notes/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.creditNotes.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/accounting/deleteAccount.test.ts b/tests/wire/accounting/deleteAccount.test.ts new file mode 100644 index 000000000..41af4763e --- /dev/null +++ b/tests/wire/accounting/deleteAccount.test.ts @@ -0,0 +1,18 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("DeleteAccount", () => { + test("delete", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + server.mockEndpoint().post("/accounting/v1/delete-account").respondWith().statusCode(200).build(); + + const response = await client.accounting.deleteAccount.delete(); + expect(response).toEqual(undefined); + }); +}); diff --git a/tests/wire/accounting/employees.test.ts b/tests/wire/accounting/employees.test.ts new file mode 100644 index 000000000..7084888f8 --- /dev/null +++ b/tests/wire/accounting/employees.test.ts @@ -0,0 +1,144 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Employees", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "c640b80b-fac9-409f-aa19-1f9221aec445", + remote_id: "11167", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + first_name: "John", + last_name: "Smith", + is_contractor: true, + employee_number: "325462", + email_address: "johnsmith@merge.dev", + company: "company", + status: "ACTIVE", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/employees") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.employees.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "c640b80b-fac9-409f-aa19-1f9221aec445", + remoteId: "11167", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + firstName: "John", + lastName: "Smith", + isContractor: true, + employeeNumber: "325462", + emailAddress: "johnsmith@merge.dev", + company: "company", + status: "ACTIVE", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "c640b80b-fac9-409f-aa19-1f9221aec445", + remote_id: "11167", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + first_name: "John", + last_name: "Smith", + is_contractor: true, + employee_number: "325462", + email_address: "johnsmith@merge.dev", + company: "company", + status: "ACTIVE", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/accounting/v1/employees/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.employees.retrieve("id"); + expect(response).toEqual({ + id: "c640b80b-fac9-409f-aa19-1f9221aec445", + remoteId: "11167", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + firstName: "John", + lastName: "Smith", + isContractor: true, + employeeNumber: "325462", + emailAddress: "johnsmith@merge.dev", + company: "company", + status: "ACTIVE", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/expenses.test.ts b/tests/wire/accounting/expenses.test.ts new file mode 100644 index 000000000..5cfdde4e2 --- /dev/null +++ b/tests/wire/accounting/expenses.test.ts @@ -0,0 +1,1134 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Expenses", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + transaction_date: "2024-01-15T09:30:00Z", + remote_created_at: "2020-03-31T00:00:00Z", + account: "account", + contact: "contact", + total_amount: 10000, + sub_total: 1.1, + total_tax_amount: 1.1, + currency: "XUA", + exchange_rate: "2.9", + inclusive_of_tax: true, + company: "company", + employee: "employee", + memo: "New employee supplies", + lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121222", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + item: "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + net_amount: 25.54, + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "7442f0d5-722d-45bd-b807-6e38489d37fe", + account: "2a56344a-a491-11ec-b909-0242ac120002", + contact: "c640b80b-fac9-409f-aa19-1f9221aec445", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + description: "MacBook Pro", + exchange_rate: "2.9", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + remote_was_deleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121223", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + item: "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + net_amount: 10, + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + account: "2a56344a-a491-11ec-b909-0242ac120002", + description: "Desk Lamp", + }, + ], + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + remote_was_deleted: true, + accounting_period: "accounting_period", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/expenses") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.expenses.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + transactionDate: new Date("2024-01-15T09:30:00.000Z"), + remoteCreatedAt: new Date("2020-03-31T00:00:00.000Z"), + account: "account", + contact: "contact", + totalAmount: 10000, + subTotal: 1.1, + totalTaxAmount: 1.1, + currency: "XUA", + exchangeRate: "2.9", + inclusiveOfTax: true, + company: "company", + employee: "employee", + memo: "New employee supplies", + lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121222", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + item: "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + netAmount: 25.54, + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "7442f0d5-722d-45bd-b807-6e38489d37fe", + account: "2a56344a-a491-11ec-b909-0242ac120002", + contact: "c640b80b-fac9-409f-aa19-1f9221aec445", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + description: "MacBook Pro", + exchangeRate: "2.9", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + remoteWasDeleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121223", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + item: "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + netAmount: 10, + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + account: "2a56344a-a491-11ec-b909-0242ac120002", + description: "Desk Lamp", + }, + ], + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + remoteWasDeleted: true, + accountingPeriod: "accounting_period", + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + transaction_date: "2024-01-15T09:30:00Z", + remote_created_at: "2020-03-31T00:00:00Z", + account: "account", + contact: "contact", + total_amount: 10000, + sub_total: 1.1, + total_tax_amount: 1.1, + currency: "XUA", + exchange_rate: "2.9", + inclusive_of_tax: true, + company: "company", + employee: "employee", + memo: "New employee supplies", + lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121222", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + item: "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + net_amount: 25.54, + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "7442f0d5-722d-45bd-b807-6e38489d37fe", + account: "2a56344a-a491-11ec-b909-0242ac120002", + contact: "c640b80b-fac9-409f-aa19-1f9221aec445", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + description: "MacBook Pro", + exchange_rate: "2.9", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + remote_was_deleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121223", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + item: "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + net_amount: 10, + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + account: "2a56344a-a491-11ec-b909-0242ac120002", + description: "Desk Lamp", + }, + ], + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + remote_was_deleted: true, + accounting_period: "accounting_period", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/accounting/v1/expenses") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.expenses.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + transactionDate: new Date("2024-01-15T09:30:00.000Z"), + remoteCreatedAt: new Date("2020-03-31T00:00:00.000Z"), + account: "account", + contact: "contact", + totalAmount: 10000, + subTotal: 1.1, + totalTaxAmount: 1.1, + currency: "XUA", + exchangeRate: "2.9", + inclusiveOfTax: true, + company: "company", + employee: "employee", + memo: "New employee supplies", + lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121222", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + item: "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + netAmount: 25.54, + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "7442f0d5-722d-45bd-b807-6e38489d37fe", + account: "2a56344a-a491-11ec-b909-0242ac120002", + contact: "c640b80b-fac9-409f-aa19-1f9221aec445", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + description: "MacBook Pro", + exchangeRate: "2.9", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + remoteWasDeleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121223", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + item: "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + netAmount: 10, + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + account: "2a56344a-a491-11ec-b909-0242ac120002", + description: "Desk Lamp", + }, + ], + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + remoteWasDeleted: true, + accountingPeriod: "accounting_period", + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + transaction_date: "2024-01-15T09:30:00Z", + remote_created_at: "2020-03-31T00:00:00Z", + account: "account", + contact: "contact", + total_amount: 10000, + sub_total: 1.1, + total_tax_amount: 1.1, + currency: "XUA", + exchange_rate: "2.9", + inclusive_of_tax: true, + company: "company", + employee: "employee", + memo: "New employee supplies", + lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121222", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + item: "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + net_amount: 25.54, + tracking_category: "tracking_category", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "7442f0d5-722d-45bd-b807-6e38489d37fe", + currency: "XUA", + account: "2a56344a-a491-11ec-b909-0242ac120002", + contact: "c640b80b-fac9-409f-aa19-1f9221aec445", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + description: "MacBook Pro", + exchange_rate: "2.9", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + remote_was_deleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121223", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + item: "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + net_amount: 10, + tracking_category: "tracking_category", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "employee", + currency: "XUA", + account: "2a56344a-a491-11ec-b909-0242ac120002", + contact: "contact", + project: "project", + description: "Desk Lamp", + exchange_rate: "2.9", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + remote_was_deleted: true, + }, + ], + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + remote_was_deleted: true, + accounting_period: "accounting_period", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class", value: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/accounting/v1/expenses/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.expenses.retrieve("id"); + expect(response).toEqual({ + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + transactionDate: new Date("2024-01-15T09:30:00.000Z"), + remoteCreatedAt: new Date("2020-03-31T00:00:00.000Z"), + account: "account", + contact: "contact", + totalAmount: 10000, + subTotal: 1.1, + totalTaxAmount: 1.1, + currency: "XUA", + exchangeRate: "2.9", + inclusiveOfTax: true, + company: "company", + employee: "employee", + memo: "New employee supplies", + lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121222", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + item: "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + netAmount: 25.54, + trackingCategory: "tracking_category", + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "7442f0d5-722d-45bd-b807-6e38489d37fe", + currency: "XUA", + account: "2a56344a-a491-11ec-b909-0242ac120002", + contact: "c640b80b-fac9-409f-aa19-1f9221aec445", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + description: "MacBook Pro", + exchangeRate: "2.9", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + remoteWasDeleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121223", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + item: "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + netAmount: 10, + trackingCategory: "tracking_category", + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "employee", + currency: "XUA", + account: "2a56344a-a491-11ec-b909-0242ac120002", + contact: "contact", + project: "project", + description: "Desk Lamp", + exchangeRate: "2.9", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + remoteWasDeleted: true, + }, + ], + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + remoteWasDeleted: true, + accountingPeriod: "accounting_period", + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + value: { + key: "value", + }, + }, + ], + }); + }); + + test("linesRemoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: ["field_choices"], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/expenses/lines/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.expenses.linesRemoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: ["field_choices"], + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/accounting/v1/expenses/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.expenses.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("remoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: ["field_choices"], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/expenses/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.expenses.remoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: ["field_choices"], + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/fieldMapping.test.ts b/tests/wire/accounting/fieldMapping.test.ts new file mode 100644 index 000000000..2d2d3ce2f --- /dev/null +++ b/tests/wire/accounting/fieldMapping.test.ts @@ -0,0 +1,2626 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("FieldMapping", () => { + test("field_mappings_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + Account: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + AccountingAttachment: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + BalanceSheet: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + CashFlowStatement: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + CompanyInfo: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Contact: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + IncomeStatement: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + CreditNote: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Item: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + PurchaseOrder: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + TrackingCategory: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + JournalEntry: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + TaxRate: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Invoice: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Payment: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Expense: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + VendorCredit: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Transaction: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + AccountingPeriod: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + GeneralLedgerTransaction: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + BankFeedAccount: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Employee: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + PaymentMethod: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Project: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + PaymentTerm: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/field-mappings") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.fieldMapping.fieldMappingsRetrieve(); + expect(response).toEqual({ + account: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + accountingAttachment: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + balanceSheet: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + cashFlowStatement: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + companyInfo: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + contact: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + incomeStatement: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + creditNote: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + item: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + purchaseOrder: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + trackingCategory: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + journalEntry: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + taxRate: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + invoice: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + payment: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + expense: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + vendorCredit: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + transaction: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + accountingPeriod: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + generalLedgerTransaction: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + bankFeedAccount: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + employee: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + paymentMethod: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + project: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + paymentTerm: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + }); + }); + + test("field_mappings_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { + target_field_name: "example_target_field_name", + target_field_description: "this is a example description of the target field", + remote_field_traversal_path: ["example_remote_field"], + remote_method: "GET", + remote_url_path: "/example-url-path", + common_model_name: "ExampleCommonModel", + }; + const rawResponseBody = { + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/accounting/v1/field-mappings") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.fieldMapping.fieldMappingsCreate({ + targetFieldName: "example_target_field_name", + targetFieldDescription: "this is a example description of the target field", + remoteFieldTraversalPath: ["example_remote_field"], + remoteMethod: "GET", + remoteUrlPath: "/example-url-path", + commonModelName: "ExampleCommonModel", + }); + expect(response).toEqual({ + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("field_mappings_destroy", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .delete("/accounting/v1/field-mappings/field_mapping_id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.fieldMapping.fieldMappingsDestroy("field_mapping_id"); + expect(response).toEqual({ + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("field_mappings_partial_update", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = {}; + const rawResponseBody = { + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .patch("/accounting/v1/field-mappings/field_mapping_id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id"); + expect(response).toEqual({ + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("remote_fields_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + Account: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + AccountingAttachment: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + BalanceSheet: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + CashFlowStatement: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + CompanyInfo: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Contact: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + IncomeStatement: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + CreditNote: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Item: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + PurchaseOrder: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + TrackingCategory: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + JournalEntry: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + TaxRate: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Invoice: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Payment: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Expense: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + VendorCredit: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Transaction: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + AccountingPeriod: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + GeneralLedgerTransaction: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + BankFeedAccount: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Employee: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + PaymentMethod: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Project: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + PaymentTerm: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/remote-fields") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.fieldMapping.remoteFieldsRetrieve(); + expect(response).toEqual({ + account: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + accountingAttachment: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + balanceSheet: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + cashFlowStatement: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + companyInfo: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + contact: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + incomeStatement: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + creditNote: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + item: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + purchaseOrder: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + trackingCategory: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + journalEntry: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + taxRate: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + invoice: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + payment: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + expense: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + vendorCredit: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + transaction: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + accountingPeriod: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + generalLedgerTransaction: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + bankFeedAccount: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + employee: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + paymentMethod: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + project: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + paymentTerm: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + }); + }); + + test("target_fields_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + Account: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + AccountingAttachment: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + BalanceSheet: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + CashFlowStatement: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + CompanyInfo: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Contact: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + IncomeStatement: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + CreditNote: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Item: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + PurchaseOrder: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + TrackingCategory: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + JournalEntry: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + TaxRate: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Invoice: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Payment: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Expense: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + VendorCredit: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Transaction: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + AccountingPeriod: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + GeneralLedgerTransaction: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + BankFeedAccount: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Employee: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + PaymentMethod: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Project: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + PaymentTerm: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/target-fields") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.fieldMapping.targetFieldsRetrieve(); + expect(response).toEqual({ + account: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + accountingAttachment: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + balanceSheet: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + cashFlowStatement: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + companyInfo: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + contact: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + incomeStatement: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + creditNote: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + item: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + purchaseOrder: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + trackingCategory: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + journalEntry: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + taxRate: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + invoice: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + payment: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + expense: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + vendorCredit: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + transaction: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + accountingPeriod: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + generalLedgerTransaction: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + bankFeedAccount: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + employee: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + paymentMethod: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + project: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + paymentTerm: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/forceResync.test.ts b/tests/wire/accounting/forceResync.test.ts new file mode 100644 index 000000000..d6182d613 --- /dev/null +++ b/tests/wire/accounting/forceResync.test.ts @@ -0,0 +1,49 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("ForceResync", () => { + test("sync_status_resync_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = [ + { + model_name: "Invoice", + model_id: "accounting.Invoices", + last_sync_start: "2021-03-30T19:44:18Z", + next_sync_start: "2021-03-30T20:44:18Z", + last_sync_result: "SYNCING", + last_sync_finished: "2021-03-30T19:55:18Z", + status: "SYNCING", + is_initial_sync: true, + selective_sync_configurations_usage: "IN_NEXT_SYNC", + }, + ]; + server + .mockEndpoint() + .post("/accounting/v1/sync-status/resync") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.forceResync.syncStatusResyncCreate(); + expect(response).toEqual([ + { + modelName: "Invoice", + modelId: "accounting.Invoices", + lastSyncStart: new Date("2021-03-30T19:44:18.000Z"), + nextSyncStart: new Date("2021-03-30T20:44:18.000Z"), + lastSyncResult: "SYNCING", + lastSyncFinished: new Date("2021-03-30T19:55:18.000Z"), + status: "SYNCING", + isInitialSync: true, + selectiveSyncConfigurationsUsage: "IN_NEXT_SYNC", + }, + ]); + }); +}); diff --git a/tests/wire/accounting/generalLedgerTransactions.test.ts b/tests/wire/accounting/generalLedgerTransactions.test.ts new file mode 100644 index 000000000..3e492757c --- /dev/null +++ b/tests/wire/accounting/generalLedgerTransactions.test.ts @@ -0,0 +1,285 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("GeneralLedgerTransactions", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remote_id: "987300", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + underlying_transaction_remote_id: "1234", + underlying_transaction_type: "INVOICE", + accounting_period: "accounting_period", + company: "company", + remote_updated_at: "2020-03-31T00:00:00Z", + remote_created_at: "2020-03-31T00:00:00Z", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + posting_date: "2020-03-31T00:00:00Z", + general_ledger_transaction_lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "123", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + account: "a47e11b6-c73b-4a0c-be31-130fc48177fa", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + contact: "d6e687d6-0c36-48a1-8114-35324b5cb38f", + base_currency: "USD", + transaction_currency: "USD", + exchange_rate: "exchange_rate", + description: "Invoice created", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + debit_amount: "debit_amount", + credit_amount: "credit_amount", + item: "a47e11b6-c73b-4a0c-be31-130fc48177fa", + foreign_debit_amount: "foreign_debit_amount", + foreign_credit_amount: "foreign_credit_amount", + remote_was_deleted: false, + }, + ], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/general-ledger-transactions") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.generalLedgerTransactions.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remoteId: "987300", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + underlyingTransactionRemoteId: "1234", + underlyingTransactionType: "INVOICE", + accountingPeriod: "accounting_period", + company: "company", + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteCreatedAt: new Date("2020-03-31T00:00:00.000Z"), + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + postingDate: new Date("2020-03-31T00:00:00.000Z"), + generalLedgerTransactionLines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "123", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + account: "a47e11b6-c73b-4a0c-be31-130fc48177fa", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + contact: "d6e687d6-0c36-48a1-8114-35324b5cb38f", + baseCurrency: "USD", + transactionCurrency: "USD", + exchangeRate: "exchange_rate", + description: "Invoice created", + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + debitAmount: "debit_amount", + creditAmount: "credit_amount", + item: "a47e11b6-c73b-4a0c-be31-130fc48177fa", + foreignDebitAmount: "foreign_debit_amount", + foreignCreditAmount: "foreign_credit_amount", + remoteWasDeleted: false, + }, + ], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remote_id: "987300", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + underlying_transaction_remote_id: "1234", + underlying_transaction_type: "INVOICE", + accounting_period: "accounting_period", + company: "company", + remote_updated_at: "2020-03-31T00:00:00Z", + remote_created_at: "2020-03-31T00:00:00Z", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + posting_date: "2020-03-31T00:00:00Z", + general_ledger_transaction_lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "123", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + account: "a47e11b6-c73b-4a0c-be31-130fc48177fa", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "employee", + contact: "d6e687d6-0c36-48a1-8114-35324b5cb38f", + project: "project", + base_currency: "USD", + transaction_currency: "USD", + exchange_rate: "exchange_rate", + description: "Invoice created", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + debit_amount: "debit_amount", + credit_amount: "credit_amount", + item: "a47e11b6-c73b-4a0c-be31-130fc48177fa", + foreign_debit_amount: "foreign_debit_amount", + foreign_credit_amount: "foreign_credit_amount", + remote_was_deleted: false, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + }, + ], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint", data: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/accounting/v1/general-ledger-transactions/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.generalLedgerTransactions.retrieve("id"); + expect(response).toEqual({ + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remoteId: "987300", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + underlyingTransactionRemoteId: "1234", + underlyingTransactionType: "INVOICE", + accountingPeriod: "accounting_period", + company: "company", + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteCreatedAt: new Date("2020-03-31T00:00:00.000Z"), + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + postingDate: new Date("2020-03-31T00:00:00.000Z"), + generalLedgerTransactionLines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "123", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + account: "a47e11b6-c73b-4a0c-be31-130fc48177fa", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "employee", + contact: "d6e687d6-0c36-48a1-8114-35324b5cb38f", + project: "project", + baseCurrency: "USD", + transactionCurrency: "USD", + exchangeRate: "exchange_rate", + description: "Invoice created", + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + debitAmount: "debit_amount", + creditAmount: "credit_amount", + item: "a47e11b6-c73b-4a0c-be31-130fc48177fa", + foreignDebitAmount: "foreign_debit_amount", + foreignCreditAmount: "foreign_credit_amount", + remoteWasDeleted: false, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + }, + ], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + data: { + key: "value", + }, + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/generateKey.test.ts b/tests/wire/accounting/generateKey.test.ts new file mode 100644 index 000000000..0216b8dff --- /dev/null +++ b/tests/wire/accounting/generateKey.test.ts @@ -0,0 +1,34 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("GenerateKey", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { name: "Remote Deployment Key 1" }; + const rawResponseBody = { + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }; + server + .mockEndpoint() + .post("/accounting/v1/generate-key") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.generateKey.create({ + name: "Remote Deployment Key 1", + }); + expect(response).toEqual({ + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }); + }); +}); diff --git a/tests/wire/accounting/incomeStatements.test.ts b/tests/wire/accounting/incomeStatements.test.ts new file mode 100644 index 000000000..b35d64d08 --- /dev/null +++ b/tests/wire/accounting/incomeStatements.test.ts @@ -0,0 +1,420 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("IncomeStatements", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remote_id: "1342348", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "IncomeStatement", + currency: "XUA", + company: "company", + start_period: "2024-01-15T09:30:00Z", + end_period: "2024-01-15T09:30:00Z", + income: [ + { + remote_id: "10299", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Total Income", + value: 325, + sub_items: [ + { remote_id: "10200", name: "Landscaping Services", value: 425 }, + { remote_id: "10201", name: "Pest Control Services", value: -100 }, + ], + }, + ], + cost_of_sales: [ + { + remote_id: "10299", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Total COGS", + value: 25, + sub_items: [{ remote_id: "10200", name: "Supplies", value: 10 }], + }, + ], + gross_profit: 300, + operating_expenses: [ + { + remote_id: "10299", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Total Operating Expenses", + value: 100, + sub_items: [ + { remote_id: "10300", name: "Revenue - San Francisco", value: 500 }, + { remote_id: "10301", name: "Revenue - New York", value: 500 }, + ], + }, + ], + net_operating_income: 200, + non_operating_expenses: [ + { + remote_id: "10299", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Total Non-Operating Expenses", + value: 100, + sub_items: [ + { remote_id: "10300", name: "Revenue - San Francisco", value: 500 }, + { remote_id: "10301", name: "Revenue - New York", value: 500 }, + ], + }, + ], + net_income: 100, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/income-statements") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.incomeStatements.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remoteId: "1342348", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "IncomeStatement", + currency: "XUA", + company: "company", + startPeriod: new Date("2024-01-15T09:30:00.000Z"), + endPeriod: new Date("2024-01-15T09:30:00.000Z"), + income: [ + { + remoteId: "10299", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Total Income", + value: 325, + subItems: [ + { + remote_id: "10200", + name: "Landscaping Services", + value: 425, + }, + { + remote_id: "10201", + name: "Pest Control Services", + value: -100, + }, + ], + }, + ], + costOfSales: [ + { + remoteId: "10299", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Total COGS", + value: 25, + subItems: [ + { + remote_id: "10200", + name: "Supplies", + value: 10, + }, + ], + }, + ], + grossProfit: 300, + operatingExpenses: [ + { + remoteId: "10299", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Total Operating Expenses", + value: 100, + subItems: [ + { + remote_id: "10300", + name: "Revenue - San Francisco", + value: 500, + }, + { + remote_id: "10301", + name: "Revenue - New York", + value: 500, + }, + ], + }, + ], + netOperatingIncome: 200, + nonOperatingExpenses: [ + { + remoteId: "10299", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Total Non-Operating Expenses", + value: 100, + subItems: [ + { + remote_id: "10300", + name: "Revenue - San Francisco", + value: 500, + }, + { + remote_id: "10301", + name: "Revenue - New York", + value: 500, + }, + ], + }, + ], + netIncome: 100, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remote_id: "1342348", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "IncomeStatement", + currency: "XUA", + company: "company", + start_period: "2024-01-15T09:30:00Z", + end_period: "2024-01-15T09:30:00Z", + income: [ + { + remote_id: "10299", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Total Income", + value: 325, + sub_items: [ + { remote_id: "10200", name: "Landscaping Services", value: 425 }, + { remote_id: "10201", name: "Pest Control Services", value: -100 }, + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: true, + }, + ], + cost_of_sales: [ + { + remote_id: "10299", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Total COGS", + value: 25, + sub_items: [{ remote_id: "10200", name: "Supplies", value: 10 }], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: true, + }, + ], + gross_profit: 300, + operating_expenses: [ + { + remote_id: "10299", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Total Operating Expenses", + value: 100, + sub_items: [ + { remote_id: "10300", name: "Revenue - San Francisco", value: 500 }, + { remote_id: "10301", name: "Revenue - New York", value: 500 }, + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: true, + }, + ], + net_operating_income: 200, + non_operating_expenses: [ + { + remote_id: "10299", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Total Non-Operating Expenses", + value: 100, + sub_items: [ + { remote_id: "10300", name: "Revenue - San Francisco", value: 500 }, + { remote_id: "10301", name: "Revenue - New York", value: 500 }, + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: true, + }, + ], + net_income: 100, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/accounting/v1/income-statements/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.incomeStatements.retrieve("id"); + expect(response).toEqual({ + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remoteId: "1342348", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "IncomeStatement", + currency: "XUA", + company: "company", + startPeriod: new Date("2024-01-15T09:30:00.000Z"), + endPeriod: new Date("2024-01-15T09:30:00.000Z"), + income: [ + { + remoteId: "10299", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Total Income", + value: 325, + subItems: [ + { + remote_id: "10200", + name: "Landscaping Services", + value: 425, + }, + { + remote_id: "10201", + name: "Pest Control Services", + value: -100, + }, + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: true, + }, + ], + costOfSales: [ + { + remoteId: "10299", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Total COGS", + value: 25, + subItems: [ + { + remote_id: "10200", + name: "Supplies", + value: 10, + }, + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: true, + }, + ], + grossProfit: 300, + operatingExpenses: [ + { + remoteId: "10299", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Total Operating Expenses", + value: 100, + subItems: [ + { + remote_id: "10300", + name: "Revenue - San Francisco", + value: 500, + }, + { + remote_id: "10301", + name: "Revenue - New York", + value: 500, + }, + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: true, + }, + ], + netOperatingIncome: 200, + nonOperatingExpenses: [ + { + remoteId: "10299", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Total Non-Operating Expenses", + value: 100, + subItems: [ + { + remote_id: "10300", + name: "Revenue - San Francisco", + value: 500, + }, + { + remote_id: "10301", + name: "Revenue - New York", + value: 500, + }, + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: true, + }, + ], + netIncome: 100, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/invoices.test.ts b/tests/wire/accounting/invoices.test.ts new file mode 100644 index 000000000..ce6aa4f7a --- /dev/null +++ b/tests/wire/accounting/invoices.test.ts @@ -0,0 +1,1945 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Invoices", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "9871b4a9-f5d2-4f3b-a66b-dfedbed42c46", + remote_id: "990110", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + type: "ACCOUNTS_RECEIVABLE", + contact: "contact", + number: "AIQ12546", + issue_date: "2020-03-31T00:00:00Z", + due_date: "2020-04-15T00:00:00Z", + paid_on_date: "2020-04-01T00:00:00Z", + memo: "Weekly Payment", + company: "company", + employee: "employee", + currency: "XUA", + exchange_rate: "2.9", + payment_term: "payment_term", + total_discount: 1.1, + sub_total: 100, + status: "PAID", + total_tax_amount: 5, + total_amount: 105, + balance: 105, + remote_updated_at: "2020-04-01T00:00:00Z", + tracking_categories: [ + "7dc5ca17-d311-44cd-9ce0-333080367a18", + "6aa0700c-48e1-4c4a-8162-02e6a582df05", + "8c933d61-8f5b-4360-ac0c-c9dc87bee763", + ], + accounting_period: "accounting_period", + purchase_orders: [ + "e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7", + "dd70ca2f-b120-46fa-889a-9604037f45fd", + "889b281d-739c-4759-95b8-0aedb3947131", + ], + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + applied_payments: ["9017594e-dc33-4113-a5d2-b0f928e34fdd"], + line_items: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "8765432", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + description: "Pickleball lessons", + unit_price: 50, + quantity: 1, + total_amount: 50, + employee: "7442f0d5-722d-45bd-b807-6e38489d37fe", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "908934-49j9-093f-0989-908923908", + currency: "USD", + exchange_rate: "2.9", + item: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + account: "cd0f32d4-a493-11ec-b909-0242ac120002", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + }, + ], + applied_credit_notes: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + credit_note: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + applied_date: "2020-03-31T00:00:00Z", + applied_amount: "2.9", + }, + ], + applied_vendor_credits: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + vendor_credit: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + applied_date: "2020-03-31T00:00:00Z", + applied_amount: "2.9", + }, + ], + inclusive_of_tax: true, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/invoices") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.invoices.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "9871b4a9-f5d2-4f3b-a66b-dfedbed42c46", + remoteId: "990110", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + type: "ACCOUNTS_RECEIVABLE", + contact: "contact", + number: "AIQ12546", + issueDate: new Date("2020-03-31T00:00:00.000Z"), + dueDate: new Date("2020-04-15T00:00:00.000Z"), + paidOnDate: new Date("2020-04-01T00:00:00.000Z"), + memo: "Weekly Payment", + company: "company", + employee: "employee", + currency: "XUA", + exchangeRate: "2.9", + paymentTerm: "payment_term", + totalDiscount: 1.1, + subTotal: 100, + status: "PAID", + totalTaxAmount: 5, + totalAmount: 105, + balance: 105, + remoteUpdatedAt: new Date("2020-04-01T00:00:00.000Z"), + trackingCategories: [ + "7dc5ca17-d311-44cd-9ce0-333080367a18", + "6aa0700c-48e1-4c4a-8162-02e6a582df05", + "8c933d61-8f5b-4360-ac0c-c9dc87bee763", + ], + accountingPeriod: "accounting_period", + purchaseOrders: [ + "e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7", + "dd70ca2f-b120-46fa-889a-9604037f45fd", + "889b281d-739c-4759-95b8-0aedb3947131", + ], + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + appliedPayments: ["9017594e-dc33-4113-a5d2-b0f928e34fdd"], + lineItems: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "8765432", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + description: "Pickleball lessons", + unitPrice: 50, + quantity: 1, + totalAmount: 50, + employee: "7442f0d5-722d-45bd-b807-6e38489d37fe", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "908934-49j9-093f-0989-908923908", + currency: "USD", + exchangeRate: "2.9", + item: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + account: "cd0f32d4-a493-11ec-b909-0242ac120002", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + }, + ], + appliedCreditNotes: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + creditNote: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + appliedAmount: "2.9", + }, + ], + appliedVendorCredits: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + vendorCredit: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + appliedAmount: "2.9", + }, + ], + inclusiveOfTax: true, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "9871b4a9-f5d2-4f3b-a66b-dfedbed42c46", + remote_id: "990110", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + type: "ACCOUNTS_RECEIVABLE", + contact: "contact", + number: "AIQ12546", + issue_date: "2020-03-31T00:00:00Z", + due_date: "2020-04-15T00:00:00Z", + paid_on_date: "2020-04-01T00:00:00Z", + memo: "Weekly Payment", + company: "company", + employee: "employee", + currency: "XUA", + exchange_rate: "2.9", + payment_term: "payment_term", + total_discount: 1.1, + sub_total: 100, + status: "PAID", + total_tax_amount: 5, + total_amount: 105, + balance: 105, + remote_updated_at: "2020-04-01T00:00:00Z", + tracking_categories: [ + "7dc5ca17-d311-44cd-9ce0-333080367a18", + "6aa0700c-48e1-4c4a-8162-02e6a582df05", + "8c933d61-8f5b-4360-ac0c-c9dc87bee763", + ], + accounting_period: "accounting_period", + purchase_orders: [ + "e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7", + "dd70ca2f-b120-46fa-889a-9604037f45fd", + "889b281d-739c-4759-95b8-0aedb3947131", + ], + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + applied_payments: ["9017594e-dc33-4113-a5d2-b0f928e34fdd"], + line_items: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "8765432", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + description: "Pickleball lessons", + unit_price: 50, + quantity: 1, + total_amount: 50, + employee: "7442f0d5-722d-45bd-b807-6e38489d37fe", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "908934-49j9-093f-0989-908923908", + currency: "USD", + exchange_rate: "2.9", + item: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + account: "cd0f32d4-a493-11ec-b909-0242ac120002", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + }, + ], + applied_credit_notes: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + credit_note: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + applied_date: "2020-03-31T00:00:00Z", + applied_amount: "2.9", + }, + ], + applied_vendor_credits: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + vendor_credit: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + applied_date: "2020-03-31T00:00:00Z", + applied_amount: "2.9", + }, + ], + inclusive_of_tax: true, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/accounting/v1/invoices") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.invoices.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "9871b4a9-f5d2-4f3b-a66b-dfedbed42c46", + remoteId: "990110", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + type: "ACCOUNTS_RECEIVABLE", + contact: "contact", + number: "AIQ12546", + issueDate: new Date("2020-03-31T00:00:00.000Z"), + dueDate: new Date("2020-04-15T00:00:00.000Z"), + paidOnDate: new Date("2020-04-01T00:00:00.000Z"), + memo: "Weekly Payment", + company: "company", + employee: "employee", + currency: "XUA", + exchangeRate: "2.9", + paymentTerm: "payment_term", + totalDiscount: 1.1, + subTotal: 100, + status: "PAID", + totalTaxAmount: 5, + totalAmount: 105, + balance: 105, + remoteUpdatedAt: new Date("2020-04-01T00:00:00.000Z"), + trackingCategories: [ + "7dc5ca17-d311-44cd-9ce0-333080367a18", + "6aa0700c-48e1-4c4a-8162-02e6a582df05", + "8c933d61-8f5b-4360-ac0c-c9dc87bee763", + ], + accountingPeriod: "accounting_period", + purchaseOrders: [ + "e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7", + "dd70ca2f-b120-46fa-889a-9604037f45fd", + "889b281d-739c-4759-95b8-0aedb3947131", + ], + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + appliedPayments: ["9017594e-dc33-4113-a5d2-b0f928e34fdd"], + lineItems: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "8765432", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + description: "Pickleball lessons", + unitPrice: 50, + quantity: 1, + totalAmount: 50, + employee: "7442f0d5-722d-45bd-b807-6e38489d37fe", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "908934-49j9-093f-0989-908923908", + currency: "USD", + exchangeRate: "2.9", + item: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + account: "cd0f32d4-a493-11ec-b909-0242ac120002", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + }, + ], + appliedCreditNotes: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + creditNote: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + appliedAmount: "2.9", + }, + ], + appliedVendorCredits: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + vendorCredit: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + appliedAmount: "2.9", + }, + ], + inclusiveOfTax: true, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "9871b4a9-f5d2-4f3b-a66b-dfedbed42c46", + remote_id: "990110", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + type: "ACCOUNTS_RECEIVABLE", + contact: "contact", + number: "AIQ12546", + issue_date: "2020-03-31T00:00:00Z", + due_date: "2020-04-15T00:00:00Z", + paid_on_date: "2020-04-01T00:00:00Z", + memo: "Weekly Payment", + company: "company", + employee: "employee", + currency: "XUA", + exchange_rate: "2.9", + payment_term: "payment_term", + total_discount: 1.1, + sub_total: 100, + status: "PAID", + total_tax_amount: 5, + total_amount: 105, + balance: 105, + remote_updated_at: "2020-04-01T00:00:00Z", + tracking_categories: [ + "7dc5ca17-d311-44cd-9ce0-333080367a18", + "6aa0700c-48e1-4c4a-8162-02e6a582df05", + "8c933d61-8f5b-4360-ac0c-c9dc87bee763", + ], + accounting_period: "accounting_period", + purchase_orders: [ + "e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7", + "dd70ca2f-b120-46fa-889a-9604037f45fd", + "889b281d-739c-4759-95b8-0aedb3947131", + ], + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + applied_payments: ["9017594e-dc33-4113-a5d2-b0f928e34fdd"], + line_items: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "8765432", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + description: "Pickleball lessons", + unit_price: 50, + quantity: 1, + total_amount: 50, + employee: "7442f0d5-722d-45bd-b807-6e38489d37fe", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "908934-49j9-093f-0989-908923908", + currency: "USD", + exchange_rate: "2.9", + item: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + account: "cd0f32d4-a493-11ec-b909-0242ac120002", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + tracking_category: "tracking_category", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + applied_credit_notes: [ + { + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + credit_note: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + applied_date: "2020-03-31T00:00:00Z", + applied_amount: "2.9", + remote_was_deleted: true, + }, + ], + applied_vendor_credits: [ + { + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + vendor_credit: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + applied_date: "2020-03-31T00:00:00Z", + applied_amount: "2.9", + remote_was_deleted: true, + }, + ], + inclusive_of_tax: true, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class", value: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/accounting/v1/invoices/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.invoices.retrieve("id"); + expect(response).toEqual({ + id: "9871b4a9-f5d2-4f3b-a66b-dfedbed42c46", + remoteId: "990110", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + type: "ACCOUNTS_RECEIVABLE", + contact: "contact", + number: "AIQ12546", + issueDate: new Date("2020-03-31T00:00:00.000Z"), + dueDate: new Date("2020-04-15T00:00:00.000Z"), + paidOnDate: new Date("2020-04-01T00:00:00.000Z"), + memo: "Weekly Payment", + company: "company", + employee: "employee", + currency: "XUA", + exchangeRate: "2.9", + paymentTerm: "payment_term", + totalDiscount: 1.1, + subTotal: 100, + status: "PAID", + totalTaxAmount: 5, + totalAmount: 105, + balance: 105, + remoteUpdatedAt: new Date("2020-04-01T00:00:00.000Z"), + trackingCategories: [ + "7dc5ca17-d311-44cd-9ce0-333080367a18", + "6aa0700c-48e1-4c4a-8162-02e6a582df05", + "8c933d61-8f5b-4360-ac0c-c9dc87bee763", + ], + accountingPeriod: "accounting_period", + purchaseOrders: [ + "e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7", + "dd70ca2f-b120-46fa-889a-9604037f45fd", + "889b281d-739c-4759-95b8-0aedb3947131", + ], + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + appliedPayments: ["9017594e-dc33-4113-a5d2-b0f928e34fdd"], + lineItems: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "8765432", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + description: "Pickleball lessons", + unitPrice: 50, + quantity: 1, + totalAmount: 50, + employee: "7442f0d5-722d-45bd-b807-6e38489d37fe", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "908934-49j9-093f-0989-908923908", + currency: "USD", + exchangeRate: "2.9", + item: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + account: "cd0f32d4-a493-11ec-b909-0242ac120002", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + trackingCategory: "tracking_category", + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + appliedCreditNotes: [ + { + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + creditNote: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + appliedAmount: "2.9", + remoteWasDeleted: true, + }, + ], + appliedVendorCredits: [ + { + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + vendorCredit: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + appliedAmount: "2.9", + remoteWasDeleted: true, + }, + ], + inclusiveOfTax: true, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + value: { + key: "value", + }, + }, + ], + }); + }); + + test("partialUpdate", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "9871b4a9-f5d2-4f3b-a66b-dfedbed42c46", + remote_id: "990110", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + type: "ACCOUNTS_RECEIVABLE", + contact: "contact", + number: "AIQ12546", + issue_date: "2020-03-31T00:00:00Z", + due_date: "2020-04-15T00:00:00Z", + paid_on_date: "2020-04-01T00:00:00Z", + memo: "Weekly Payment", + company: "company", + employee: "employee", + currency: "XUA", + exchange_rate: "2.9", + payment_term: "payment_term", + total_discount: 1.1, + sub_total: 100, + status: "PAID", + total_tax_amount: 5, + total_amount: 105, + balance: 105, + remote_updated_at: "2020-04-01T00:00:00Z", + tracking_categories: [ + "7dc5ca17-d311-44cd-9ce0-333080367a18", + "6aa0700c-48e1-4c4a-8162-02e6a582df05", + "8c933d61-8f5b-4360-ac0c-c9dc87bee763", + ], + accounting_period: "accounting_period", + purchase_orders: [ + "e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7", + "dd70ca2f-b120-46fa-889a-9604037f45fd", + "889b281d-739c-4759-95b8-0aedb3947131", + ], + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + applied_payments: ["9017594e-dc33-4113-a5d2-b0f928e34fdd"], + line_items: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "8765432", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + description: "Pickleball lessons", + unit_price: 50, + quantity: 1, + total_amount: 50, + employee: "7442f0d5-722d-45bd-b807-6e38489d37fe", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "908934-49j9-093f-0989-908923908", + currency: "USD", + exchange_rate: "2.9", + item: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + account: "cd0f32d4-a493-11ec-b909-0242ac120002", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + }, + ], + applied_credit_notes: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + credit_note: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + applied_date: "2020-03-31T00:00:00Z", + applied_amount: "2.9", + }, + ], + applied_vendor_credits: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + vendor_credit: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + applied_date: "2020-03-31T00:00:00Z", + applied_amount: "2.9", + }, + ], + inclusive_of_tax: true, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .patch("/accounting/v1/invoices/id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.invoices.partialUpdate("id", { + model: {}, + }); + expect(response).toEqual({ + model: { + id: "9871b4a9-f5d2-4f3b-a66b-dfedbed42c46", + remoteId: "990110", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + type: "ACCOUNTS_RECEIVABLE", + contact: "contact", + number: "AIQ12546", + issueDate: new Date("2020-03-31T00:00:00.000Z"), + dueDate: new Date("2020-04-15T00:00:00.000Z"), + paidOnDate: new Date("2020-04-01T00:00:00.000Z"), + memo: "Weekly Payment", + company: "company", + employee: "employee", + currency: "XUA", + exchangeRate: "2.9", + paymentTerm: "payment_term", + totalDiscount: 1.1, + subTotal: 100, + status: "PAID", + totalTaxAmount: 5, + totalAmount: 105, + balance: 105, + remoteUpdatedAt: new Date("2020-04-01T00:00:00.000Z"), + trackingCategories: [ + "7dc5ca17-d311-44cd-9ce0-333080367a18", + "6aa0700c-48e1-4c4a-8162-02e6a582df05", + "8c933d61-8f5b-4360-ac0c-c9dc87bee763", + ], + accountingPeriod: "accounting_period", + purchaseOrders: [ + "e7378d8f-3992-4c2a-8417-ebdc4f2bfeb7", + "dd70ca2f-b120-46fa-889a-9604037f45fd", + "889b281d-739c-4759-95b8-0aedb3947131", + ], + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + appliedPayments: ["9017594e-dc33-4113-a5d2-b0f928e34fdd"], + lineItems: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "8765432", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + description: "Pickleball lessons", + unitPrice: 50, + quantity: 1, + totalAmount: 50, + employee: "7442f0d5-722d-45bd-b807-6e38489d37fe", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "908934-49j9-093f-0989-908923908", + currency: "USD", + exchangeRate: "2.9", + item: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + account: "cd0f32d4-a493-11ec-b909-0242ac120002", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + }, + ], + appliedCreditNotes: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + creditNote: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + appliedAmount: "2.9", + }, + ], + appliedVendorCredits: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + vendorCredit: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + appliedAmount: "2.9", + }, + ], + inclusiveOfTax: true, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("lineItemsRemoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: ["field_choices"], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/invoices/line-items/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.invoices.lineItemsRemoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: ["field_choices"], + }, + ], + }); + }); + + test("metaPatchRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/accounting/v1/invoices/meta/patch/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.invoices.metaPatchRetrieve("id"); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/accounting/v1/invoices/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.invoices.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("remoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: ["field_choices"], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/invoices/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.invoices.remoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: ["field_choices"], + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/issues.test.ts b/tests/wire/accounting/issues.test.ts new file mode 100644 index 000000000..6c3ea1a94 --- /dev/null +++ b/tests/wire/accounting/issues.test.ts @@ -0,0 +1,94 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Issues", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + error_description: "Missing Permissions", + end_user: { key: "value" }, + first_incident_time: "2022-12-05T16:19:15Z", + last_incident_time: "2022-12-05T16:19:15Z", + is_muted: true, + error_details: ["Missing employee permissions.", "Missing time off permissions."], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/issues") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.issues.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + errorDescription: "Missing Permissions", + endUser: { + key: "value", + }, + firstIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + lastIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + isMuted: true, + errorDetails: ["Missing employee permissions.", "Missing time off permissions."], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + error_description: "Missing Permissions", + end_user: { key: "value" }, + first_incident_time: "2022-12-05T16:19:15Z", + last_incident_time: "2022-12-05T16:19:15Z", + is_muted: true, + error_details: ["Missing employee permissions.", "Missing time off permissions."], + }; + server + .mockEndpoint() + .get("/accounting/v1/issues/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.issues.retrieve("id"); + expect(response).toEqual({ + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + errorDescription: "Missing Permissions", + endUser: { + key: "value", + }, + firstIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + lastIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + isMuted: true, + errorDetails: ["Missing employee permissions.", "Missing time off permissions."], + }); + }); +}); diff --git a/tests/wire/accounting/items.test.ts b/tests/wire/accounting/items.test.ts new file mode 100644 index 000000000..65975d1a1 --- /dev/null +++ b/tests/wire/accounting/items.test.ts @@ -0,0 +1,1254 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Items", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "d2f972d0-2526-434b-9409-4c3b468e08f0", + remote_id: "12374", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Pickleball Paddle", + status: "ACTIVE", + unit_price: 10, + purchase_price: 25, + purchase_account: "purchase_account", + sales_account: "sales_account", + company: "company", + purchase_tax_rate: "purchase_tax_rate", + sales_tax_rate: "sales_tax_rate", + remote_updated_at: "2020-03-31T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/items") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.items.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "d2f972d0-2526-434b-9409-4c3b468e08f0", + remoteId: "12374", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Pickleball Paddle", + status: "ACTIVE", + unitPrice: 10, + purchasePrice: 25, + purchaseAccount: "purchase_account", + salesAccount: "sales_account", + company: "company", + purchaseTaxRate: "purchase_tax_rate", + salesTaxRate: "sales_tax_rate", + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "d2f972d0-2526-434b-9409-4c3b468e08f0", + remote_id: "12374", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Pickleball Paddle", + status: "ACTIVE", + unit_price: 10, + purchase_price: 25, + purchase_account: "purchase_account", + sales_account: "sales_account", + company: "company", + purchase_tax_rate: "purchase_tax_rate", + sales_tax_rate: "sales_tax_rate", + remote_updated_at: "2020-03-31T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/accounting/v1/items") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.items.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "d2f972d0-2526-434b-9409-4c3b468e08f0", + remoteId: "12374", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Pickleball Paddle", + status: "ACTIVE", + unitPrice: 10, + purchasePrice: 25, + purchaseAccount: "purchase_account", + salesAccount: "sales_account", + company: "company", + purchaseTaxRate: "purchase_tax_rate", + salesTaxRate: "sales_tax_rate", + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "d2f972d0-2526-434b-9409-4c3b468e08f0", + remote_id: "12374", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Pickleball Paddle", + status: "ACTIVE", + unit_price: 10, + purchase_price: 25, + purchase_account: "purchase_account", + sales_account: "sales_account", + company: "company", + purchase_tax_rate: "purchase_tax_rate", + sales_tax_rate: "sales_tax_rate", + remote_updated_at: "2020-03-31T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/accounting/v1/items/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.items.retrieve("id"); + expect(response).toEqual({ + id: "d2f972d0-2526-434b-9409-4c3b468e08f0", + remoteId: "12374", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Pickleball Paddle", + status: "ACTIVE", + unitPrice: 10, + purchasePrice: 25, + purchaseAccount: "purchase_account", + salesAccount: "sales_account", + company: "company", + purchaseTaxRate: "purchase_tax_rate", + salesTaxRate: "sales_tax_rate", + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }); + }); + + test("partialUpdate", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "d2f972d0-2526-434b-9409-4c3b468e08f0", + remote_id: "12374", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Pickleball Paddle", + status: "ACTIVE", + unit_price: 10, + purchase_price: 25, + purchase_account: "purchase_account", + sales_account: "sales_account", + company: "company", + purchase_tax_rate: "purchase_tax_rate", + sales_tax_rate: "sales_tax_rate", + remote_updated_at: "2020-03-31T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .patch("/accounting/v1/items/id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.items.partialUpdate("id", { + model: {}, + }); + expect(response).toEqual({ + model: { + id: "d2f972d0-2526-434b-9409-4c3b468e08f0", + remoteId: "12374", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Pickleball Paddle", + status: "ACTIVE", + unitPrice: 10, + purchasePrice: 25, + purchaseAccount: "purchase_account", + salesAccount: "sales_account", + company: "company", + purchaseTaxRate: "purchase_tax_rate", + salesTaxRate: "sales_tax_rate", + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("metaPatchRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/accounting/v1/items/meta/patch/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.items.metaPatchRetrieve("id"); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/accounting/v1/items/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.items.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/accounting/journalEntries.test.ts b/tests/wire/accounting/journalEntries.test.ts new file mode 100644 index 000000000..cf04f5574 --- /dev/null +++ b/tests/wire/accounting/journalEntries.test.ts @@ -0,0 +1,1104 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("JournalEntries", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + transaction_date: "2020-03-31T00:00:00Z", + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + applied_payments: ["4311155d-f236-4a5d-9e0f-1cb167e38f95"], + memo: "Weekly Payment", + currency: "XUA", + exchange_rate: "2.9", + company: "company", + inclusive_of_tax: true, + lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121222", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + account: "9d892439-5fab-4dbb-8bd8-34f7f96c7912", + net_amount: 25.54, + tracking_categories: [ + "d25d609b-945f-4762-b55a-1c8fb220c43c", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "123c8r35-5kf5-12x5-r833-99bwf35210b5", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "d2d5ea3c-b032-11ec-b909-0242ac120002", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + description: "Cash payment for lunch", + exchange_rate: "2.9", + remote_was_deleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121223", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + account: "f963f34d-3d2f-4f77-b557-cf36bc7e6498", + net_amount: 10, + }, + ], + journal_number: "42", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + remote_was_deleted: true, + posting_status: "UNPOSTED", + accounting_period: "accounting_period", + remote_created_at: "2020-03-31T00:00:00Z", + remote_updated_at: "2020-03-31T00:00:00Z", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/journal-entries") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.journalEntries.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + transactionDate: new Date("2020-03-31T00:00:00.000Z"), + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + appliedPayments: ["4311155d-f236-4a5d-9e0f-1cb167e38f95"], + memo: "Weekly Payment", + currency: "XUA", + exchangeRate: "2.9", + company: "company", + inclusiveOfTax: true, + lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121222", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + account: "9d892439-5fab-4dbb-8bd8-34f7f96c7912", + netAmount: 25.54, + trackingCategories: [ + "d25d609b-945f-4762-b55a-1c8fb220c43c", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "123c8r35-5kf5-12x5-r833-99bwf35210b5", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "d2d5ea3c-b032-11ec-b909-0242ac120002", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + description: "Cash payment for lunch", + exchangeRate: "2.9", + remoteWasDeleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121223", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + account: "f963f34d-3d2f-4f77-b557-cf36bc7e6498", + netAmount: 10, + }, + ], + journalNumber: "42", + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + remoteWasDeleted: true, + postingStatus: "UNPOSTED", + accountingPeriod: "accounting_period", + remoteCreatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + transaction_date: "2020-03-31T00:00:00Z", + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + applied_payments: ["4311155d-f236-4a5d-9e0f-1cb167e38f95"], + memo: "Weekly Payment", + currency: "XUA", + exchange_rate: "2.9", + company: "company", + inclusive_of_tax: true, + lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121222", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + account: "9d892439-5fab-4dbb-8bd8-34f7f96c7912", + net_amount: 25.54, + tracking_categories: [ + "d25d609b-945f-4762-b55a-1c8fb220c43c", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "123c8r35-5kf5-12x5-r833-99bwf35210b5", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "d2d5ea3c-b032-11ec-b909-0242ac120002", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + description: "Cash payment for lunch", + exchange_rate: "2.9", + remote_was_deleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121223", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + account: "f963f34d-3d2f-4f77-b557-cf36bc7e6498", + net_amount: 10, + }, + ], + journal_number: "42", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + remote_was_deleted: true, + posting_status: "UNPOSTED", + accounting_period: "accounting_period", + remote_created_at: "2020-03-31T00:00:00Z", + remote_updated_at: "2020-03-31T00:00:00Z", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/accounting/v1/journal-entries") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.journalEntries.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + transactionDate: new Date("2020-03-31T00:00:00.000Z"), + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + appliedPayments: ["4311155d-f236-4a5d-9e0f-1cb167e38f95"], + memo: "Weekly Payment", + currency: "XUA", + exchangeRate: "2.9", + company: "company", + inclusiveOfTax: true, + lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121222", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + account: "9d892439-5fab-4dbb-8bd8-34f7f96c7912", + netAmount: 25.54, + trackingCategories: [ + "d25d609b-945f-4762-b55a-1c8fb220c43c", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "123c8r35-5kf5-12x5-r833-99bwf35210b5", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "d2d5ea3c-b032-11ec-b909-0242ac120002", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + description: "Cash payment for lunch", + exchangeRate: "2.9", + remoteWasDeleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121223", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + account: "f963f34d-3d2f-4f77-b557-cf36bc7e6498", + netAmount: 10, + }, + ], + journalNumber: "42", + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + remoteWasDeleted: true, + postingStatus: "UNPOSTED", + accountingPeriod: "accounting_period", + remoteCreatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + transaction_date: "2020-03-31T00:00:00Z", + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + applied_payments: ["4311155d-f236-4a5d-9e0f-1cb167e38f95"], + memo: "Weekly Payment", + currency: "XUA", + exchange_rate: "2.9", + company: "company", + inclusive_of_tax: true, + lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121222", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + account: "9d892439-5fab-4dbb-8bd8-34f7f96c7912", + net_amount: 25.54, + tracking_category: "tracking_category", + tracking_categories: [ + "d25d609b-945f-4762-b55a-1c8fb220c43c", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + currency: "XUA", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "123c8r35-5kf5-12x5-r833-99bwf35210b5", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "d2d5ea3c-b032-11ec-b909-0242ac120002", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + description: "Cash payment for lunch", + exchange_rate: "2.9", + remote_was_deleted: false, + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121223", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + account: "f963f34d-3d2f-4f77-b557-cf36bc7e6498", + net_amount: 10, + tracking_category: "tracking_category", + tracking_categories: [ + "d25d609b-945f-4762-b55a-1c8fb220c43c", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + currency: "XUA", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "123c8r35-5kf5-12x5-r833-99bwf35210b5", + project: "project", + contact: "d2d5ea3c-b032-11ec-b909-0242ac120002", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + description: "Cash payment for lunch", + exchange_rate: "2.9", + remote_was_deleted: true, + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + journal_number: "42", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + remote_was_deleted: true, + posting_status: "UNPOSTED", + accounting_period: "accounting_period", + remote_created_at: "2020-03-31T00:00:00Z", + remote_updated_at: "2020-03-31T00:00:00Z", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class", value: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/accounting/v1/journal-entries/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.journalEntries.retrieve("id"); + expect(response).toEqual({ + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + transactionDate: new Date("2020-03-31T00:00:00.000Z"), + payments: ["b26fd49a-cbae-470a-a8f8-bcbc119e0390"], + appliedPayments: ["4311155d-f236-4a5d-9e0f-1cb167e38f95"], + memo: "Weekly Payment", + currency: "XUA", + exchangeRate: "2.9", + company: "company", + inclusiveOfTax: true, + lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121222", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + account: "9d892439-5fab-4dbb-8bd8-34f7f96c7912", + netAmount: 25.54, + trackingCategory: "tracking_category", + trackingCategories: [ + "d25d609b-945f-4762-b55a-1c8fb220c43c", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + currency: "XUA", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "123c8r35-5kf5-12x5-r833-99bwf35210b5", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "d2d5ea3c-b032-11ec-b909-0242ac120002", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + description: "Cash payment for lunch", + exchangeRate: "2.9", + remoteWasDeleted: false, + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121223", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + account: "f963f34d-3d2f-4f77-b557-cf36bc7e6498", + netAmount: 10, + trackingCategory: "tracking_category", + trackingCategories: [ + "d25d609b-945f-4762-b55a-1c8fb220c43c", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + currency: "XUA", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + employee: "123c8r35-5kf5-12x5-r833-99bwf35210b5", + project: "project", + contact: "d2d5ea3c-b032-11ec-b909-0242ac120002", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + description: "Cash payment for lunch", + exchangeRate: "2.9", + remoteWasDeleted: true, + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + journalNumber: "42", + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + remoteWasDeleted: true, + postingStatus: "UNPOSTED", + accountingPeriod: "accounting_period", + remoteCreatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + value: { + key: "value", + }, + }, + ], + }); + }); + + test("linesRemoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: ["field_choices"], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/journal-entries/lines/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.journalEntries.linesRemoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: ["field_choices"], + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/accounting/v1/journal-entries/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.journalEntries.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("remoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: ["field_choices"], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/journal-entries/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.journalEntries.remoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: ["field_choices"], + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/linkToken.test.ts b/tests/wire/accounting/linkToken.test.ts new file mode 100644 index 000000000..56f5d2700 --- /dev/null +++ b/tests/wire/accounting/linkToken.test.ts @@ -0,0 +1,44 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("LinkToken", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { + end_user_email_address: "example@gmail.com", + end_user_organization_name: "Test Organization", + end_user_origin_id: "12345", + categories: ["hris", "ats"], + }; + const rawResponseBody = { + link_token: "necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0", + integration_name: "Lever", + magic_link_url: "https://link.merge.dev/asdfjkl12345jsndfgi2i83n", + }; + server + .mockEndpoint() + .post("/accounting/v1/link-token") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.linkToken.create({ + endUserEmailAddress: "example@gmail.com", + endUserOrganizationName: "Test Organization", + endUserOriginId: "12345", + categories: ["hris", "ats"], + }); + expect(response).toEqual({ + linkToken: "necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0", + integrationName: "Lever", + magicLinkUrl: "https://link.merge.dev/asdfjkl12345jsndfgi2i83n", + }); + }); +}); diff --git a/tests/wire/accounting/linkedAccounts.test.ts b/tests/wire/accounting/linkedAccounts.test.ts new file mode 100644 index 000000000..6f6e02ab1 --- /dev/null +++ b/tests/wire/accounting/linkedAccounts.test.ts @@ -0,0 +1,97 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("LinkedAccounts", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "e59b1821-f85c-4e28-a6b3-1804156f3563", + category: "hris", + status: "COMPLETE", + status_detail: "Invalid login credentials", + end_user_origin_id: "3ac95cde-6c7f-4eef-afec-be710b42308d", + end_user_organization_name: "Foo Bar, LLC", + end_user_email_address: "hradmin@foobar.dev", + subdomain: "foobar", + webhook_listener_url: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + is_duplicate: true, + integration: { + name: "name", + categories: ["hris"], + color: "color", + slug: "slug", + passthrough_available: true, + available_model_operations: [ + { + model_name: "Candidate", + available_operations: ["FETCH", "CREATE"], + required_post_parameters: ["remote_user_id"], + supported_fields: ["first_name", "last_name", "company", "title"], + }, + ], + }, + account_type: "PRODUCTION", + completed_at: "2024-08-26T20:11:19Z", + integration_specific_fields: { integration_specific_field: "Varies by platform" }, + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/linked-accounts") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.linkedAccounts.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "e59b1821-f85c-4e28-a6b3-1804156f3563", + category: "hris", + status: "COMPLETE", + statusDetail: "Invalid login credentials", + endUserOriginId: "3ac95cde-6c7f-4eef-afec-be710b42308d", + endUserOrganizationName: "Foo Bar, LLC", + endUserEmailAddress: "hradmin@foobar.dev", + subdomain: "foobar", + webhookListenerUrl: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + isDuplicate: true, + integration: { + name: "name", + categories: ["hris"], + color: "color", + slug: "slug", + passthroughAvailable: true, + availableModelOperations: [ + { + modelName: "Candidate", + availableOperations: ["FETCH", "CREATE"], + requiredPostParameters: ["remote_user_id"], + supportedFields: ["first_name", "last_name", "company", "title"], + }, + ], + }, + accountType: "PRODUCTION", + completedAt: new Date("2024-08-26T20:11:19.000Z"), + integrationSpecificFields: { + integration_specific_field: "Varies by platform", + }, + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/passthrough.test.ts b/tests/wire/accounting/passthrough.test.ts new file mode 100644 index 000000000..5c53eec18 --- /dev/null +++ b/tests/wire/accounting/passthrough.test.ts @@ -0,0 +1,52 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Passthrough", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { method: "GET", path: "/scooters" }; + const rawResponseBody = { + method: "GET", + path: "/scooters", + status: 200, + response: { key: "value" }, + response_headers: { "X-Page-Token": "value" }, + response_type: "JSON", + headers: { "EXTRA-HEADER": "value", Authorization: "" }, + }; + server + .mockEndpoint() + .post("/accounting/v1/passthrough") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.passthrough.create({ + method: "GET", + path: "/scooters", + }); + expect(response).toEqual({ + method: "GET", + path: "/scooters", + status: 200, + response: { + key: "value", + }, + responseHeaders: { + "X-Page-Token": "value", + }, + responseType: "JSON", + headers: { + "EXTRA-HEADER": "value", + Authorization: "", + }, + }); + }); +}); diff --git a/tests/wire/accounting/paymentMethods.test.ts b/tests/wire/accounting/paymentMethods.test.ts new file mode 100644 index 000000000..509d7555d --- /dev/null +++ b/tests/wire/accounting/paymentMethods.test.ts @@ -0,0 +1,128 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("PaymentMethods", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + method_type: "CREDIT_CARD", + name: "John Smith's Credit Card", + is_active: true, + remote_updated_at: "2021-09-15T00:00:00Z", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/payment-methods") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.paymentMethods.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + methodType: "CREDIT_CARD", + name: "John Smith's Credit Card", + isActive: true, + remoteUpdatedAt: new Date("2021-09-15T00:00:00.000Z"), + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + method_type: "CREDIT_CARD", + name: "John Smith's Credit Card", + is_active: true, + remote_updated_at: "2021-09-15T00:00:00Z", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/accounting/v1/payment-methods/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.paymentMethods.retrieve("id"); + expect(response).toEqual({ + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + methodType: "CREDIT_CARD", + name: "John Smith's Credit Card", + isActive: true, + remoteUpdatedAt: new Date("2021-09-15T00:00:00.000Z"), + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/paymentTerms.test.ts b/tests/wire/accounting/paymentTerms.test.ts new file mode 100644 index 000000000..bb8b21169 --- /dev/null +++ b/tests/wire/accounting/paymentTerms.test.ts @@ -0,0 +1,136 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("PaymentTerms", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Net 30", + is_active: true, + company: "company", + days_until_due: 30, + discount_days: 15, + remote_last_modified_at: "2024-10-16T00:00:00Z", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/payment-terms") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.paymentTerms.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Net 30", + isActive: true, + company: "company", + daysUntilDue: 30, + discountDays: 15, + remoteLastModifiedAt: new Date("2024-10-16T00:00:00.000Z"), + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Net 30", + is_active: true, + company: "company", + days_until_due: 30, + discount_days: 15, + remote_last_modified_at: "2024-10-16T00:00:00Z", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/accounting/v1/payment-terms/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.paymentTerms.retrieve("id"); + expect(response).toEqual({ + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Net 30", + isActive: true, + company: "company", + daysUntilDue: 30, + discountDays: 15, + remoteLastModifiedAt: new Date("2024-10-16T00:00:00.000Z"), + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/payments.test.ts b/tests/wire/accounting/payments.test.ts new file mode 100644 index 000000000..cc4d24a2c --- /dev/null +++ b/tests/wire/accounting/payments.test.ts @@ -0,0 +1,1603 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Payments", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remote_id: "987300", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + transaction_date: "2020-03-31T00:00:00Z", + contact: "contact", + account: "account", + payment_method: "payment_method", + currency: "XUA", + exchange_rate: "2.9", + company: "company", + total_amount: 50, + type: "ACCOUNTS_PAYABLE", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + accounting_period: "accounting_period", + applied_to_lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "234", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + applied_amount: "applied_amount", + applied_date: "2020-03-31T00:00:00Z", + related_object_id: "a47e11b6-c73b-4a0c-be31-130fc48177fa", + related_object_type: "INVOICE", + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "235", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + applied_amount: "applied_amount", + applied_date: "2020-03-31T00:00:00Z", + related_object_id: "9b96a886-29a5-452b-8733-2a1e03497cf4", + related_object_type: "CREDIT_NOTE", + }, + ], + remote_updated_at: "2020-03-31T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/payments") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.payments.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remoteId: "987300", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + transactionDate: new Date("2020-03-31T00:00:00.000Z"), + contact: "contact", + account: "account", + paymentMethod: "payment_method", + currency: "XUA", + exchangeRate: "2.9", + company: "company", + totalAmount: 50, + type: "ACCOUNTS_PAYABLE", + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + accountingPeriod: "accounting_period", + appliedToLines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "234", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + appliedAmount: "applied_amount", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + relatedObjectId: "a47e11b6-c73b-4a0c-be31-130fc48177fa", + relatedObjectType: "INVOICE", + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "235", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + appliedAmount: "applied_amount", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + relatedObjectId: "9b96a886-29a5-452b-8733-2a1e03497cf4", + relatedObjectType: "CREDIT_NOTE", + }, + ], + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remote_id: "987300", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + transaction_date: "2020-03-31T00:00:00Z", + contact: "contact", + account: "account", + payment_method: "payment_method", + currency: "XUA", + exchange_rate: "2.9", + company: "company", + total_amount: 50, + type: "ACCOUNTS_PAYABLE", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + accounting_period: "accounting_period", + applied_to_lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "234", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + applied_amount: "applied_amount", + applied_date: "2020-03-31T00:00:00Z", + related_object_id: "a47e11b6-c73b-4a0c-be31-130fc48177fa", + related_object_type: "INVOICE", + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "235", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + applied_amount: "applied_amount", + applied_date: "2020-03-31T00:00:00Z", + related_object_id: "9b96a886-29a5-452b-8733-2a1e03497cf4", + related_object_type: "CREDIT_NOTE", + }, + ], + remote_updated_at: "2020-03-31T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/accounting/v1/payments") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.payments.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remoteId: "987300", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + transactionDate: new Date("2020-03-31T00:00:00.000Z"), + contact: "contact", + account: "account", + paymentMethod: "payment_method", + currency: "XUA", + exchangeRate: "2.9", + company: "company", + totalAmount: 50, + type: "ACCOUNTS_PAYABLE", + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + accountingPeriod: "accounting_period", + appliedToLines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "234", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + appliedAmount: "applied_amount", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + relatedObjectId: "a47e11b6-c73b-4a0c-be31-130fc48177fa", + relatedObjectType: "INVOICE", + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "235", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + appliedAmount: "applied_amount", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + relatedObjectId: "9b96a886-29a5-452b-8733-2a1e03497cf4", + relatedObjectType: "CREDIT_NOTE", + }, + ], + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remote_id: "987300", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + transaction_date: "2020-03-31T00:00:00Z", + contact: "contact", + account: "account", + payment_method: "payment_method", + currency: "XUA", + exchange_rate: "2.9", + company: "company", + total_amount: 50, + type: "ACCOUNTS_PAYABLE", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + accounting_period: "accounting_period", + applied_to_lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "234", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + applied_amount: "applied_amount", + applied_date: "2020-03-31T00:00:00Z", + related_object_id: "a47e11b6-c73b-4a0c-be31-130fc48177fa", + related_object_type: "INVOICE", + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "235", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + applied_amount: "applied_amount", + applied_date: "2020-03-31T00:00:00Z", + related_object_id: "9b96a886-29a5-452b-8733-2a1e03497cf4", + related_object_type: "CREDIT_NOTE", + }, + ], + remote_updated_at: "2020-03-31T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class", value: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/accounting/v1/payments/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.payments.retrieve("id"); + expect(response).toEqual({ + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remoteId: "987300", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + transactionDate: new Date("2020-03-31T00:00:00.000Z"), + contact: "contact", + account: "account", + paymentMethod: "payment_method", + currency: "XUA", + exchangeRate: "2.9", + company: "company", + totalAmount: 50, + type: "ACCOUNTS_PAYABLE", + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + accountingPeriod: "accounting_period", + appliedToLines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "234", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + appliedAmount: "applied_amount", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + relatedObjectId: "a47e11b6-c73b-4a0c-be31-130fc48177fa", + relatedObjectType: "INVOICE", + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "235", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + appliedAmount: "applied_amount", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + relatedObjectId: "9b96a886-29a5-452b-8733-2a1e03497cf4", + relatedObjectType: "CREDIT_NOTE", + }, + ], + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + value: { + key: "value", + }, + }, + ], + }); + }); + + test("partialUpdate", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remote_id: "987300", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + transaction_date: "2020-03-31T00:00:00Z", + contact: "contact", + account: "account", + payment_method: "payment_method", + currency: "XUA", + exchange_rate: "2.9", + company: "company", + total_amount: 50, + type: "ACCOUNTS_PAYABLE", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + accounting_period: "accounting_period", + applied_to_lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "234", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + applied_amount: "applied_amount", + applied_date: "2020-03-31T00:00:00Z", + related_object_id: "a47e11b6-c73b-4a0c-be31-130fc48177fa", + related_object_type: "INVOICE", + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "235", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + applied_amount: "applied_amount", + applied_date: "2020-03-31T00:00:00Z", + related_object_id: "9b96a886-29a5-452b-8733-2a1e03497cf4", + related_object_type: "CREDIT_NOTE", + }, + ], + remote_updated_at: "2020-03-31T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .patch("/accounting/v1/payments/id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.payments.partialUpdate("id", { + model: {}, + }); + expect(response).toEqual({ + model: { + id: "b26fd49a-cbae-470a-a8f8-bcbc119e0390", + remoteId: "987300", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + transactionDate: new Date("2020-03-31T00:00:00.000Z"), + contact: "contact", + account: "account", + paymentMethod: "payment_method", + currency: "XUA", + exchangeRate: "2.9", + company: "company", + totalAmount: 50, + type: "ACCOUNTS_PAYABLE", + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + accountingPeriod: "accounting_period", + appliedToLines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "234", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + appliedAmount: "applied_amount", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + relatedObjectId: "a47e11b6-c73b-4a0c-be31-130fc48177fa", + relatedObjectType: "INVOICE", + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "235", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + appliedAmount: "applied_amount", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + relatedObjectId: "9b96a886-29a5-452b-8733-2a1e03497cf4", + relatedObjectType: "CREDIT_NOTE", + }, + ], + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("lineItemsRemoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: ["field_choices"], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/payments/line-items/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.payments.lineItemsRemoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: ["field_choices"], + }, + ], + }); + }); + + test("metaPatchRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/accounting/v1/payments/meta/patch/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.payments.metaPatchRetrieve("id"); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/accounting/v1/payments/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.payments.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("remoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: ["field_choices"], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/payments/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.payments.remoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: ["field_choices"], + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/phoneNumbers.test.ts b/tests/wire/accounting/phoneNumbers.test.ts new file mode 100644 index 000000000..2ffd0d63a --- /dev/null +++ b/tests/wire/accounting/phoneNumbers.test.ts @@ -0,0 +1,35 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("PhoneNumbers", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + number: "+3198675309", + type: "Mobile", + }; + server + .mockEndpoint() + .get("/accounting/v1/phone-numbers/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.phoneNumbers.retrieve("id"); + expect(response).toEqual({ + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + number: "+3198675309", + type: "Mobile", + }); + }); +}); diff --git a/tests/wire/accounting/projects.test.ts b/tests/wire/accounting/projects.test.ts new file mode 100644 index 000000000..6582f5c97 --- /dev/null +++ b/tests/wire/accounting/projects.test.ts @@ -0,0 +1,128 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Projects", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Permissions Mapping", + is_active: true, + company: "company", + contact: "contact", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/projects") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.projects.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Permissions Mapping", + isActive: true, + company: "company", + contact: "contact", + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Permissions Mapping", + is_active: true, + company: "company", + contact: "contact", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/accounting/v1/projects/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.projects.retrieve("id"); + expect(response).toEqual({ + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Permissions Mapping", + isActive: true, + company: "company", + contact: "contact", + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/purchaseOrders.test.ts b/tests/wire/accounting/purchaseOrders.test.ts new file mode 100644 index 000000000..14953bca5 --- /dev/null +++ b/tests/wire/accounting/purchaseOrders.test.ts @@ -0,0 +1,1168 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("PurchaseOrders", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0048ea5b-911e-4dff-9364-92070dea62ff", + remote_id: "239741", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + status: "DRAFT", + issue_date: "2020-03-31T00:00:00Z", + purchase_order_number: "PO1234", + delivery_date: "2020-04-15T00:00:00Z", + delivery_address: "delivery_address", + customer: "3e442c5d-8f51-4103-b5c9-dcee39c30a08", + vendor: "vendor", + memo: "private note", + company: "company", + total_amount: 260, + currency: "XUA", + exchange_rate: "2.9", + payment_term: "payment_term", + line_items: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121222", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + description: "Pickleball paddles", + unit_price: 25, + quantity: 10, + item: "0958cbc6-6040-430a-848e-aafacbadf4ae", + tracking_categories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + tax_amount: "tax_amount", + total_line_amount: "total_line_amount", + currency: "USD", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + exchange_rate: "2.9", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + description: "Pickleball Balls", + unit_price: 1, + quantity: 10, + item: "249c9faa-3045-4a31-953b-8f22d3613301", + tracking_categories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + tax_amount: "tax_amount", + total_line_amount: "total_line_amount", + }, + ], + inclusive_of_tax: true, + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + accounting_period: "accounting_period", + remote_created_at: "2020-03-31T00:00:00Z", + remote_updated_at: "2020-03-31T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/purchase-orders") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.purchaseOrders.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0048ea5b-911e-4dff-9364-92070dea62ff", + remoteId: "239741", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + status: "DRAFT", + issueDate: new Date("2020-03-31T00:00:00.000Z"), + purchaseOrderNumber: "PO1234", + deliveryDate: new Date("2020-04-15T00:00:00.000Z"), + deliveryAddress: "delivery_address", + customer: "3e442c5d-8f51-4103-b5c9-dcee39c30a08", + vendor: "vendor", + memo: "private note", + company: "company", + totalAmount: 260, + currency: "XUA", + exchangeRate: "2.9", + paymentTerm: "payment_term", + lineItems: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121222", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + description: "Pickleball paddles", + unitPrice: 25, + quantity: 10, + item: "0958cbc6-6040-430a-848e-aafacbadf4ae", + trackingCategories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + taxAmount: "tax_amount", + totalLineAmount: "total_line_amount", + currency: "USD", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + exchangeRate: "2.9", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + description: "Pickleball Balls", + unitPrice: 1, + quantity: 10, + item: "249c9faa-3045-4a31-953b-8f22d3613301", + trackingCategories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + taxAmount: "tax_amount", + totalLineAmount: "total_line_amount", + }, + ], + inclusiveOfTax: true, + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + accountingPeriod: "accounting_period", + remoteCreatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "0048ea5b-911e-4dff-9364-92070dea62ff", + remote_id: "239741", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + status: "DRAFT", + issue_date: "2020-03-31T00:00:00Z", + purchase_order_number: "PO1234", + delivery_date: "2020-04-15T00:00:00Z", + delivery_address: "delivery_address", + customer: "3e442c5d-8f51-4103-b5c9-dcee39c30a08", + vendor: "vendor", + memo: "private note", + company: "company", + total_amount: 260, + currency: "XUA", + exchange_rate: "2.9", + payment_term: "payment_term", + line_items: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121222", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + description: "Pickleball paddles", + unit_price: 25, + quantity: 10, + item: "0958cbc6-6040-430a-848e-aafacbadf4ae", + tracking_categories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + tax_amount: "tax_amount", + total_line_amount: "total_line_amount", + currency: "USD", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + exchange_rate: "2.9", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + description: "Pickleball Balls", + unit_price: 1, + quantity: 10, + item: "249c9faa-3045-4a31-953b-8f22d3613301", + tracking_categories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + tax_amount: "tax_amount", + total_line_amount: "total_line_amount", + }, + ], + inclusive_of_tax: true, + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + accounting_period: "accounting_period", + remote_created_at: "2020-03-31T00:00:00Z", + remote_updated_at: "2020-03-31T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/accounting/v1/purchase-orders") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.purchaseOrders.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "0048ea5b-911e-4dff-9364-92070dea62ff", + remoteId: "239741", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + status: "DRAFT", + issueDate: new Date("2020-03-31T00:00:00.000Z"), + purchaseOrderNumber: "PO1234", + deliveryDate: new Date("2020-04-15T00:00:00.000Z"), + deliveryAddress: "delivery_address", + customer: "3e442c5d-8f51-4103-b5c9-dcee39c30a08", + vendor: "vendor", + memo: "private note", + company: "company", + totalAmount: 260, + currency: "XUA", + exchangeRate: "2.9", + paymentTerm: "payment_term", + lineItems: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121222", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + description: "Pickleball paddles", + unitPrice: 25, + quantity: 10, + item: "0958cbc6-6040-430a-848e-aafacbadf4ae", + trackingCategories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + taxAmount: "tax_amount", + totalLineAmount: "total_line_amount", + currency: "USD", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + exchangeRate: "2.9", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + description: "Pickleball Balls", + unitPrice: 1, + quantity: 10, + item: "249c9faa-3045-4a31-953b-8f22d3613301", + trackingCategories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + taxAmount: "tax_amount", + totalLineAmount: "total_line_amount", + }, + ], + inclusiveOfTax: true, + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + accountingPeriod: "accounting_period", + remoteCreatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "0048ea5b-911e-4dff-9364-92070dea62ff", + remote_id: "239741", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + status: "DRAFT", + issue_date: "2020-03-31T00:00:00Z", + purchase_order_number: "PO1234", + delivery_date: "2020-04-15T00:00:00Z", + delivery_address: "delivery_address", + customer: "3e442c5d-8f51-4103-b5c9-dcee39c30a08", + vendor: "vendor", + memo: "private note", + company: "company", + total_amount: 260, + currency: "XUA", + exchange_rate: "2.9", + payment_term: "payment_term", + line_items: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121222", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + description: "Pickleball paddles", + unit_price: 25, + quantity: 10, + item: "0958cbc6-6040-430a-848e-aafacbadf4ae", + account: "account", + tracking_category: "tracking_category", + tracking_categories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + tax_amount: "tax_amount", + total_line_amount: "total_line_amount", + currency: "USD", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + exchange_rate: "2.9", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: false, + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121222", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + description: "Pickleball Balls", + unit_price: 1, + quantity: 10, + item: "249c9faa-3045-4a31-953b-8f22d3613301", + account: "account", + tracking_category: "tracking_category", + tracking_categories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + tax_amount: "tax_amount", + total_line_amount: "total_line_amount", + currency: "XUA", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + exchange_rate: "2.9", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: true, + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + inclusive_of_tax: true, + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + accounting_period: "accounting_period", + remote_created_at: "2020-03-31T00:00:00Z", + remote_updated_at: "2020-03-31T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class", value: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/accounting/v1/purchase-orders/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.purchaseOrders.retrieve("id"); + expect(response).toEqual({ + id: "0048ea5b-911e-4dff-9364-92070dea62ff", + remoteId: "239741", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + status: "DRAFT", + issueDate: new Date("2020-03-31T00:00:00.000Z"), + purchaseOrderNumber: "PO1234", + deliveryDate: new Date("2020-04-15T00:00:00.000Z"), + deliveryAddress: "delivery_address", + customer: "3e442c5d-8f51-4103-b5c9-dcee39c30a08", + vendor: "vendor", + memo: "private note", + company: "company", + totalAmount: 260, + currency: "XUA", + exchangeRate: "2.9", + paymentTerm: "payment_term", + lineItems: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121222", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + description: "Pickleball paddles", + unitPrice: 25, + quantity: 10, + item: "0958cbc6-6040-430a-848e-aafacbadf4ae", + account: "account", + trackingCategory: "tracking_category", + trackingCategories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + taxAmount: "tax_amount", + totalLineAmount: "total_line_amount", + currency: "USD", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + exchangeRate: "2.9", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: false, + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121222", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + description: "Pickleball Balls", + unitPrice: 1, + quantity: 10, + item: "249c9faa-3045-4a31-953b-8f22d3613301", + account: "account", + trackingCategory: "tracking_category", + trackingCategories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + taxAmount: "tax_amount", + totalLineAmount: "total_line_amount", + currency: "XUA", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + exchangeRate: "2.9", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: true, + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + inclusiveOfTax: true, + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + accountingPeriod: "accounting_period", + remoteCreatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteUpdatedAt: new Date("2020-03-31T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + value: { + key: "value", + }, + }, + ], + }); + }); + + test("lineItemsRemoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: ["field_choices"], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/purchase-orders/line-items/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.purchaseOrders.lineItemsRemoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: ["field_choices"], + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/accounting/v1/purchase-orders/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.purchaseOrders.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("remoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: ["field_choices"], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/purchase-orders/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.purchaseOrders.remoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: ["field_choices"], + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/regenerateKey.test.ts b/tests/wire/accounting/regenerateKey.test.ts new file mode 100644 index 000000000..f9369b192 --- /dev/null +++ b/tests/wire/accounting/regenerateKey.test.ts @@ -0,0 +1,34 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("RegenerateKey", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { name: "Remote Deployment Key 1" }; + const rawResponseBody = { + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }; + server + .mockEndpoint() + .post("/accounting/v1/regenerate-key") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.regenerateKey.create({ + name: "Remote Deployment Key 1", + }); + expect(response).toEqual({ + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }); + }); +}); diff --git a/tests/wire/accounting/scopes.test.ts b/tests/wire/accounting/scopes.test.ts new file mode 100644 index 000000000..4a5ec7243 --- /dev/null +++ b/tests/wire/accounting/scopes.test.ts @@ -0,0 +1,281 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Scopes", () => { + test("default_scopes_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabled_fields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/default-scopes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.scopes.defaultScopesRetrieve(); + expect(response).toEqual({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabledFields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }); + }); + + test("linked_account_scopes_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabled_fields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/linked-account-scopes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.scopes.linkedAccountScopesRetrieve(); + expect(response).toEqual({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabledFields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }); + }); + + test("linked_account_scopes_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: ["avatar", "home_location"], + disabled_fields: ["work_location"], + }, + }, + { model_name: "Benefit", model_permissions: { WRITE: { is_enabled: false } } }, + ], + }; + const rawResponseBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabled_fields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }; + server + .mockEndpoint() + .post("/accounting/v1/linked-account-scopes") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.scopes.linkedAccountScopesCreate({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: ["avatar", "home_location"], + disabledFields: ["work_location"], + }, + }, + { + modelName: "Benefit", + modelPermissions: { + WRITE: { + isEnabled: false, + }, + }, + }, + ], + }); + expect(response).toEqual({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabledFields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/syncStatus.test.ts b/tests/wire/accounting/syncStatus.test.ts new file mode 100644 index 000000000..abc1f7270 --- /dev/null +++ b/tests/wire/accounting/syncStatus.test.ts @@ -0,0 +1,57 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("SyncStatus", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + model_name: "Invoice", + model_id: "accounting.Invoices", + last_sync_start: "2021-03-30T19:44:18Z", + next_sync_start: "2021-03-30T20:44:18Z", + last_sync_result: "SYNCING", + last_sync_finished: "2021-03-30T19:55:18Z", + status: "SYNCING", + is_initial_sync: true, + selective_sync_configurations_usage: "IN_NEXT_SYNC", + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/sync-status") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.syncStatus.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + modelName: "Invoice", + modelId: "accounting.Invoices", + lastSyncStart: new Date("2021-03-30T19:44:18.000Z"), + nextSyncStart: new Date("2021-03-30T20:44:18.000Z"), + lastSyncResult: "SYNCING", + lastSyncFinished: new Date("2021-03-30T19:55:18.000Z"), + status: "SYNCING", + isInitialSync: true, + selectiveSyncConfigurationsUsage: "IN_NEXT_SYNC", + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/taxRates.test.ts b/tests/wire/accounting/taxRates.test.ts new file mode 100644 index 000000000..cb6e43cb5 --- /dev/null +++ b/tests/wire/accounting/taxRates.test.ts @@ -0,0 +1,198 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("TaxRates", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b82302de-852e-4e60-b050-edf9da3b7c02", + remote_id: "039111", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + company: "company", + code: "890", + name: "State tax rate", + description: "Sales Tax", + status: "ACTIVE", + country: "US", + total_tax_rate: 15, + effective_tax_rate: 15, + tax_components: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "039111", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Drink Tax Component", + rate: "rate", + is_compound: true, + component_type: "SALES", + }, + ], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/tax-rates") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.taxRates.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b82302de-852e-4e60-b050-edf9da3b7c02", + remoteId: "039111", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + company: "company", + code: "890", + name: "State tax rate", + description: "Sales Tax", + status: "ACTIVE", + country: "US", + totalTaxRate: 15, + effectiveTaxRate: 15, + taxComponents: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "039111", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Drink Tax Component", + rate: "rate", + isCompound: true, + componentType: "SALES", + }, + ], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "b82302de-852e-4e60-b050-edf9da3b7c02", + remote_id: "039111", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + company: "company", + code: "890", + name: "State tax rate", + description: "Sales Tax", + status: "ACTIVE", + country: "US", + total_tax_rate: 15, + effective_tax_rate: 15, + tax_components: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "039111", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Drink Tax Component", + rate: "rate", + is_compound: true, + component_type: "SALES", + remote_was_deleted: true, + }, + ], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/accounting/v1/tax-rates/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.taxRates.retrieve("id"); + expect(response).toEqual({ + id: "b82302de-852e-4e60-b050-edf9da3b7c02", + remoteId: "039111", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + company: "company", + code: "890", + name: "State tax rate", + description: "Sales Tax", + status: "ACTIVE", + country: "US", + totalTaxRate: 15, + effectiveTaxRate: 15, + taxComponents: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "039111", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Drink Tax Component", + rate: "rate", + isCompound: true, + componentType: "SALES", + remoteWasDeleted: true, + }, + ], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/trackingCategories.test.ts b/tests/wire/accounting/trackingCategories.test.ts new file mode 100644 index 000000000..89b27a88f --- /dev/null +++ b/tests/wire/accounting/trackingCategories.test.ts @@ -0,0 +1,122 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("TrackingCategories", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "948201", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Marketing Department", + status: "ACTIVE", + category_type: "CLASS", + parent_category: "d25d609b-945f-4762-b55a-1c8fb220c43c", + company: "company", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/tracking-categories") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.trackingCategories.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "948201", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Marketing Department", + status: "ACTIVE", + categoryType: "CLASS", + parentCategory: "d25d609b-945f-4762-b55a-1c8fb220c43c", + company: "company", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "948201", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Marketing Department", + status: "ACTIVE", + category_type: "CLASS", + parent_category: "d25d609b-945f-4762-b55a-1c8fb220c43c", + company: "company", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + }; + server + .mockEndpoint() + .get("/accounting/v1/tracking-categories/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.trackingCategories.retrieve("id"); + expect(response).toEqual({ + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "948201", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Marketing Department", + status: "ACTIVE", + categoryType: "CLASS", + parentCategory: "d25d609b-945f-4762-b55a-1c8fb220c43c", + company: "company", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + }); + }); +}); diff --git a/tests/wire/accounting/transactions.test.ts b/tests/wire/accounting/transactions.test.ts new file mode 100644 index 000000000..38acd8deb --- /dev/null +++ b/tests/wire/accounting/transactions.test.ts @@ -0,0 +1,358 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Transactions", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0048ea5b-911e-4dff-9364-92070dea62ff", + remote_id: "239741", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + transaction_type: "estimate", + number: "122", + transaction_date: "2020-03-31T00:00:00Z", + account: "account", + contact: "contact", + inclusive_of_tax: true, + total_amount: "total_amount", + currency: "XUA", + exchange_rate: "2.9", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + line_items: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121222", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + memo: "Pickleball paddles", + unit_price: "25.0", + quantity: "10.0", + item: "0958cbc6-6040-430a-848e-aafacbadf4ae", + account: "2b38c085-2620-4269-b5ec-75dd9095ed2c", + tracking_categories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + total_line_amount: "total_line_amount", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + currency: "USD", + exchange_rate: "2.9", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + memo: "Pickleball balls", + unit_price: "25.0", + quantity: "10.0", + item: "249c9faa-3045-4a31-953b-8f22d3613301", + account: "3e442c5d-8f51-4103-b5c9-dcee39c30a08", + tracking_categories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + total_line_amount: "total_line_amount", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + }, + ], + remote_was_deleted: true, + accounting_period: "accounting_period", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/transactions") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.transactions.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0048ea5b-911e-4dff-9364-92070dea62ff", + remoteId: "239741", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + transactionType: "estimate", + number: "122", + transactionDate: new Date("2020-03-31T00:00:00.000Z"), + account: "account", + contact: "contact", + inclusiveOfTax: true, + totalAmount: "total_amount", + currency: "XUA", + exchangeRate: "2.9", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + lineItems: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121222", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + memo: "Pickleball paddles", + unitPrice: "25.0", + quantity: "10.0", + item: "0958cbc6-6040-430a-848e-aafacbadf4ae", + account: "2b38c085-2620-4269-b5ec-75dd9095ed2c", + trackingCategories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + totalLineAmount: "total_line_amount", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + currency: "USD", + exchangeRate: "2.9", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + memo: "Pickleball balls", + unitPrice: "25.0", + quantity: "10.0", + item: "249c9faa-3045-4a31-953b-8f22d3613301", + account: "3e442c5d-8f51-4103-b5c9-dcee39c30a08", + trackingCategories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + totalLineAmount: "total_line_amount", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + }, + ], + remoteWasDeleted: true, + accountingPeriod: "accounting_period", + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "0048ea5b-911e-4dff-9364-92070dea62ff", + remote_id: "239741", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + transaction_type: "estimate", + number: "122", + transaction_date: "2020-03-31T00:00:00Z", + account: "account", + contact: "contact", + inclusive_of_tax: true, + total_amount: "total_amount", + currency: "XUA", + exchange_rate: "2.9", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + line_items: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121222", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + memo: "Pickleball paddles", + unit_price: "25.0", + quantity: "10.0", + item: "0958cbc6-6040-430a-848e-aafacbadf4ae", + account: "2b38c085-2620-4269-b5ec-75dd9095ed2c", + tracking_category: "tracking_category", + tracking_categories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + total_line_amount: "total_line_amount", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + currency: "USD", + exchange_rate: "2.9", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121222", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + memo: "Pickleball balls", + unit_price: "25.0", + quantity: "10.0", + item: "249c9faa-3045-4a31-953b-8f22d3613301", + account: "3e442c5d-8f51-4103-b5c9-dcee39c30a08", + tracking_category: "tracking_category", + tracking_categories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + total_line_amount: "total_line_amount", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + currency: "XUA", + exchange_rate: "2.9", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remote_was_deleted: true, + }, + ], + remote_was_deleted: true, + accounting_period: "accounting_period", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/accounting/v1/transactions/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.transactions.retrieve("id"); + expect(response).toEqual({ + id: "0048ea5b-911e-4dff-9364-92070dea62ff", + remoteId: "239741", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + transactionType: "estimate", + number: "122", + transactionDate: new Date("2020-03-31T00:00:00.000Z"), + account: "account", + contact: "contact", + inclusiveOfTax: true, + totalAmount: "total_amount", + currency: "XUA", + exchangeRate: "2.9", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + lineItems: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121222", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + memo: "Pickleball paddles", + unitPrice: "25.0", + quantity: "10.0", + item: "0958cbc6-6040-430a-848e-aafacbadf4ae", + account: "2b38c085-2620-4269-b5ec-75dd9095ed2c", + trackingCategory: "tracking_category", + trackingCategories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + totalLineAmount: "total_line_amount", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + currency: "USD", + exchangeRate: "2.9", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121222", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + memo: "Pickleball balls", + unitPrice: "25.0", + quantity: "10.0", + item: "249c9faa-3045-4a31-953b-8f22d3613301", + account: "3e442c5d-8f51-4103-b5c9-dcee39c30a08", + trackingCategory: "tracking_category", + trackingCategories: [ + "f1214c24-2702-4617-b74b-3ddecfc0d384", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + totalLineAmount: "total_line_amount", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + currency: "XUA", + exchangeRate: "2.9", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + remoteWasDeleted: true, + }, + ], + remoteWasDeleted: true, + accountingPeriod: "accounting_period", + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/accounting/vendorCredits.test.ts b/tests/wire/accounting/vendorCredits.test.ts new file mode 100644 index 000000000..ca06bfc56 --- /dev/null +++ b/tests/wire/accounting/vendorCredits.test.ts @@ -0,0 +1,1019 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("VendorCredits", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + number: "6", + transaction_date: "2020-03-31T00:00:00Z", + vendor: "vendor", + total_amount: 10000, + currency: "XUA", + exchange_rate: "2.9", + inclusive_of_tax: true, + company: "company", + lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121222", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + net_amount: 25.54, + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + description: "Gifted Merge Credit", + account: "9d892439-5fab-4dbb-8bd8-34f7f96c7912", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "908934-49j9-093f-0989-908923908", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + exchange_rate: "2.9", + remote_was_deleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121223", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + net_amount: 10, + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + description: "Refund for overpayment", + account: "9d892439-5fab-4dbb-8bd8-34f7f96c7912", + }, + ], + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + applied_to_lines: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + invoice: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + applied_date: "2020-03-31T00:00:00Z", + applied_amount: "2.9", + }, + ], + remote_was_deleted: true, + accounting_period: "accounting_period", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/accounting/v1/vendor-credits") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.vendorCredits.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + number: "6", + transactionDate: new Date("2020-03-31T00:00:00.000Z"), + vendor: "vendor", + totalAmount: 10000, + currency: "XUA", + exchangeRate: "2.9", + inclusiveOfTax: true, + company: "company", + lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121222", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + netAmount: 25.54, + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + description: "Gifted Merge Credit", + account: "9d892439-5fab-4dbb-8bd8-34f7f96c7912", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "908934-49j9-093f-0989-908923908", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + exchangeRate: "2.9", + remoteWasDeleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121223", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + netAmount: 10, + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + description: "Refund for overpayment", + account: "9d892439-5fab-4dbb-8bd8-34f7f96c7912", + }, + ], + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + appliedToLines: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + invoice: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + appliedAmount: "2.9", + }, + ], + remoteWasDeleted: true, + accountingPeriod: "accounting_period", + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + number: "6", + transaction_date: "2020-03-31T00:00:00Z", + vendor: "vendor", + total_amount: 10000, + currency: "XUA", + exchange_rate: "2.9", + inclusive_of_tax: true, + company: "company", + lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121222", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + net_amount: 25.54, + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + description: "Gifted Merge Credit", + account: "9d892439-5fab-4dbb-8bd8-34f7f96c7912", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "908934-49j9-093f-0989-908923908", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + exchange_rate: "2.9", + remote_was_deleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121223", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + net_amount: 10, + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + description: "Refund for overpayment", + account: "9d892439-5fab-4dbb-8bd8-34f7f96c7912", + }, + ], + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + applied_to_lines: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + invoice: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + applied_date: "2020-03-31T00:00:00Z", + applied_amount: "2.9", + }, + ], + remote_was_deleted: true, + accounting_period: "accounting_period", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/accounting/v1/vendor-credits") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.vendorCredits.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + number: "6", + transactionDate: new Date("2020-03-31T00:00:00.000Z"), + vendor: "vendor", + totalAmount: 10000, + currency: "XUA", + exchangeRate: "2.9", + inclusiveOfTax: true, + company: "company", + lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121222", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + netAmount: 25.54, + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + description: "Gifted Merge Credit", + account: "9d892439-5fab-4dbb-8bd8-34f7f96c7912", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "908934-49j9-093f-0989-908923908", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + exchangeRate: "2.9", + remoteWasDeleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121223", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + netAmount: 10, + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + description: "Refund for overpayment", + account: "9d892439-5fab-4dbb-8bd8-34f7f96c7912", + }, + ], + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + appliedToLines: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + invoice: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + appliedAmount: "2.9", + }, + ], + remoteWasDeleted: true, + accountingPeriod: "accounting_period", + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + number: "6", + transaction_date: "2020-03-31T00:00:00Z", + vendor: "vendor", + total_amount: 10000, + currency: "XUA", + exchange_rate: "2.9", + inclusive_of_tax: true, + company: "company", + lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121222", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + net_amount: 25.54, + tracking_category: "tracking_category", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + description: "Gifted Merge Credit", + account: "9d892439-5fab-4dbb-8bd8-34f7f96c7912", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "908934-49j9-093f-0989-908923908", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + exchange_rate: "2.9", + remote_was_deleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "121223", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + net_amount: 10, + tracking_category: "tracking_category", + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + description: "Refund for overpayment", + account: "9d892439-5fab-4dbb-8bd8-34f7f96c7912", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + project: "project", + contact: "contact", + tax_rate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + exchange_rate: "2.9", + remote_was_deleted: true, + }, + ], + tracking_categories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + applied_to_lines: [ + { + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + invoice: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + applied_date: "2020-03-31T00:00:00Z", + applied_amount: "2.9", + remote_was_deleted: true, + }, + ], + remote_was_deleted: true, + accounting_period: "accounting_period", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/accounting/v1/vendor-credits/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.vendorCredits.retrieve("id"); + expect(response).toEqual({ + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + number: "6", + transactionDate: new Date("2020-03-31T00:00:00.000Z"), + vendor: "vendor", + totalAmount: 10000, + currency: "XUA", + exchangeRate: "2.9", + inclusiveOfTax: true, + company: "company", + lines: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121222", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + netAmount: 25.54, + trackingCategory: "tracking_category", + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + description: "Gifted Merge Credit", + account: "9d892439-5fab-4dbb-8bd8-34f7f96c7912", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + project: "22e65a5d-2df5-4e6e-884a-e538d0339000", + contact: "908934-49j9-093f-0989-908923908", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + exchangeRate: "2.9", + remoteWasDeleted: false, + }, + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "121223", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + netAmount: 10, + trackingCategory: "tracking_category", + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + description: "Refund for overpayment", + account: "9d892439-5fab-4dbb-8bd8-34f7f96c7912", + company: "595c8f97-2ac4-45b7-b000-41bdf43240b5", + project: "project", + contact: "contact", + taxRate: "a12e7c20-1922-9df7-s75n-edfeewnn7384", + exchangeRate: "2.9", + remoteWasDeleted: true, + }, + ], + trackingCategories: [ + "b38c59b0-a9d7-4740-b1ee-5436c6751e3d", + "9b840d2-686a-465a-8a8e-7b028498f8e4", + "a47e11b6-c73b-4a0c-be31-130fc48177fa", + ], + appliedToLines: [ + { + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + invoice: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + appliedDate: new Date("2020-03-31T00:00:00.000Z"), + appliedAmount: "2.9", + remoteWasDeleted: true, + }, + ], + remoteWasDeleted: true, + accountingPeriod: "accounting_period", + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/accounting/v1/vendor-credits/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.vendorCredits.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/accounting/webhookReceivers.test.ts b/tests/wire/accounting/webhookReceivers.test.ts new file mode 100644 index 000000000..eecb26e60 --- /dev/null +++ b/tests/wire/accounting/webhookReceivers.test.ts @@ -0,0 +1,56 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("WebhookReceivers", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = [{ event: "event", is_active: true, key: "key" }]; + server + .mockEndpoint() + .get("/accounting/v1/webhook-receivers") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.webhookReceivers.list(); + expect(response).toEqual([ + { + event: "event", + isActive: true, + key: "key", + }, + ]); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { event: "event", is_active: true }; + const rawResponseBody = { event: "event", is_active: true, key: "key" }; + server + .mockEndpoint() + .post("/accounting/v1/webhook-receivers") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.accounting.webhookReceivers.create({ + event: "event", + isActive: true, + }); + expect(response).toEqual({ + event: "event", + isActive: true, + key: "key", + }); + }); +}); diff --git a/tests/wire/ats/accountDetails.test.ts b/tests/wire/ats/accountDetails.test.ts new file mode 100644 index 000000000..d69f947d0 --- /dev/null +++ b/tests/wire/ats/accountDetails.test.ts @@ -0,0 +1,51 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AccountDetails", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + integration: "BambooHR", + integration_slug: "bamboohr", + category: "hris", + end_user_origin_id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + end_user_organization_name: "Waystar Royco", + end_user_email_address: "kendall.roy@waystar-royco.com", + status: "COMPLETE", + webhook_listener_url: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + is_duplicate: true, + account_type: "PRODUCTION", + completed_at: "2024-08-26T20:11:19Z", + }; + server + .mockEndpoint() + .get("/ats/v1/account-details") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.accountDetails.retrieve(); + expect(response).toEqual({ + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + integration: "BambooHR", + integrationSlug: "bamboohr", + category: "hris", + endUserOriginId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + endUserOrganizationName: "Waystar Royco", + endUserEmailAddress: "kendall.roy@waystar-royco.com", + status: "COMPLETE", + webhookListenerUrl: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + isDuplicate: true, + accountType: "PRODUCTION", + completedAt: new Date("2024-08-26T20:11:19.000Z"), + }); + }); +}); diff --git a/tests/wire/ats/accountToken.test.ts b/tests/wire/ats/accountToken.test.ts new file mode 100644 index 000000000..d3c28082b --- /dev/null +++ b/tests/wire/ats/accountToken.test.ts @@ -0,0 +1,59 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AccountToken", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + account_token: "T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB", + integration: { + name: "name", + abbreviated_name: "abbreviated_name", + categories: ["hris"], + image: "image", + square_image: "square_image", + color: "color", + slug: "slug", + api_endpoints_to_documentation_urls: { key: "value" }, + webhook_setup_guide_url: "webhook_setup_guide_url", + category_beta_status: { key: "value" }, + }, + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + }; + server + .mockEndpoint() + .get("/ats/v1/account-token/public_token") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.accountToken.retrieve("public_token"); + expect(response).toEqual({ + accountToken: "T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB", + integration: { + name: "name", + abbreviatedName: "abbreviated_name", + categories: ["hris"], + image: "image", + squareImage: "square_image", + color: "color", + slug: "slug", + apiEndpointsToDocumentationUrls: { + key: "value", + }, + webhookSetupGuideUrl: "webhook_setup_guide_url", + categoryBetaStatus: { + key: "value", + }, + }, + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + }); + }); +}); diff --git a/tests/wire/ats/activities.test.ts b/tests/wire/ats/activities.test.ts new file mode 100644 index 000000000..ec5014197 --- /dev/null +++ b/tests/wire/ats/activities.test.ts @@ -0,0 +1,682 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Activities", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "198123", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + user: "user", + remote_created_at: "2021-10-15T00:00:00Z", + activity_type: "NOTE", + subject: "Gil Feig's interview", + body: "Candidate loves integrations!", + visibility: "ADMIN_ONLY", + candidate: "550e8400-e29b-41d4-a716-446655440000", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + ], + }; + server.mockEndpoint().get("/ats/v1/activities").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.ats.activities.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "198123", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + user: "user", + remoteCreatedAt: new Date("2021-10-15T00:00:00.000Z"), + activityType: "NOTE", + subject: "Gil Feig's interview", + body: "Candidate loves integrations!", + visibility: "ADMIN_ONLY", + candidate: "550e8400-e29b-41d4-a716-446655440000", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {}, remote_user_id: "remote_user_id" }; + const rawResponseBody = { + model: { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "198123", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + user: "user", + remote_created_at: "2021-10-15T00:00:00Z", + activity_type: "NOTE", + subject: "Gil Feig's interview", + body: "Candidate loves integrations!", + visibility: "ADMIN_ONLY", + candidate: "550e8400-e29b-41d4-a716-446655440000", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/ats/v1/activities") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.activities.create({ + model: {}, + remoteUserId: "remote_user_id", + }); + expect(response).toEqual({ + model: { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "198123", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + user: "user", + remoteCreatedAt: new Date("2021-10-15T00:00:00.000Z"), + activityType: "NOTE", + subject: "Gil Feig's interview", + body: "Candidate loves integrations!", + visibility: "ADMIN_ONLY", + candidate: "550e8400-e29b-41d4-a716-446655440000", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remote_id: "198123", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + user: "user", + remote_created_at: "2021-10-15T00:00:00Z", + activity_type: "NOTE", + subject: "Gil Feig's interview", + body: "Candidate loves integrations!", + visibility: "ADMIN_ONLY", + candidate: "550e8400-e29b-41d4-a716-446655440000", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/ats/v1/activities/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.activities.retrieve("id"); + expect(response).toEqual({ + id: "ecbe05ac-62a3-46c5-ab31-4b478b37d1b4", + remoteId: "198123", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + user: "user", + remoteCreatedAt: new Date("2021-10-15T00:00:00.000Z"), + activityType: "NOTE", + subject: "Gil Feig's interview", + body: "Candidate loves integrations!", + visibility: "ADMIN_ONLY", + candidate: "550e8400-e29b-41d4-a716-446655440000", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/ats/v1/activities/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.activities.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/ats/applications.test.ts b/tests/wire/ats/applications.test.ts new file mode 100644 index 000000000..74af61635 --- /dev/null +++ b/tests/wire/ats/applications.test.ts @@ -0,0 +1,837 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Applications", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "92e8a369-fffe-430d-b93a-f7e8a16563f1", + remote_id: "98796", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + candidate: "candidate", + job: "job", + applied_at: "2021-10-15T00:00:00Z", + rejected_at: "2021-11-15T00:00:00Z", + offers: ["e9b5c11d-c588-468e-8567-cd6992e42b62"], + source: "Campus recruiting event", + credited_to: "credited_to", + screening_question_answers: ["screening_question_answers", "screening_question_answers"], + current_stage: "current_stage", + reject_reason: "reject_reason", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/candidacies", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/ats/v1/applications") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.applications.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "92e8a369-fffe-430d-b93a-f7e8a16563f1", + remoteId: "98796", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + candidate: "candidate", + job: "job", + appliedAt: new Date("2021-10-15T00:00:00.000Z"), + rejectedAt: new Date("2021-11-15T00:00:00.000Z"), + offers: ["e9b5c11d-c588-468e-8567-cd6992e42b62"], + source: "Campus recruiting event", + creditedTo: "credited_to", + screeningQuestionAnswers: ["screening_question_answers", "screening_question_answers"], + currentStage: "current_stage", + rejectReason: "reject_reason", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/candidacies", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {}, remote_user_id: "remote_user_id" }; + const rawResponseBody = { + model: { + id: "92e8a369-fffe-430d-b93a-f7e8a16563f1", + remote_id: "98796", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + candidate: "candidate", + job: "job", + applied_at: "2021-10-15T00:00:00Z", + rejected_at: "2021-11-15T00:00:00Z", + offers: ["e9b5c11d-c588-468e-8567-cd6992e42b62"], + source: "Campus recruiting event", + credited_to: "credited_to", + screening_question_answers: ["screening_question_answers", "screening_question_answers"], + current_stage: "current_stage", + reject_reason: "reject_reason", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/candidacies", data: ["Varies by platform"] }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/ats/v1/applications") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.applications.create({ + model: {}, + remoteUserId: "remote_user_id", + }); + expect(response).toEqual({ + model: { + id: "92e8a369-fffe-430d-b93a-f7e8a16563f1", + remoteId: "98796", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + candidate: "candidate", + job: "job", + appliedAt: new Date("2021-10-15T00:00:00.000Z"), + rejectedAt: new Date("2021-11-15T00:00:00.000Z"), + offers: ["e9b5c11d-c588-468e-8567-cd6992e42b62"], + source: "Campus recruiting event", + creditedTo: "credited_to", + screeningQuestionAnswers: ["screening_question_answers", "screening_question_answers"], + currentStage: "current_stage", + rejectReason: "reject_reason", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/candidacies", + data: ["Varies by platform"], + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "92e8a369-fffe-430d-b93a-f7e8a16563f1", + remote_id: "98796", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + candidate: "candidate", + job: "job", + applied_at: "2021-10-15T00:00:00Z", + rejected_at: "2021-11-15T00:00:00Z", + offers: ["e9b5c11d-c588-468e-8567-cd6992e42b62"], + source: "Campus recruiting event", + credited_to: "credited_to", + screening_question_answers: ["screening_question_answers", "screening_question_answers"], + current_stage: "current_stage", + reject_reason: "reject_reason", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/candidacies", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/ats/v1/applications/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.applications.retrieve("id"); + expect(response).toEqual({ + id: "92e8a369-fffe-430d-b93a-f7e8a16563f1", + remoteId: "98796", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + candidate: "candidate", + job: "job", + appliedAt: new Date("2021-10-15T00:00:00.000Z"), + rejectedAt: new Date("2021-11-15T00:00:00.000Z"), + offers: ["e9b5c11d-c588-468e-8567-cd6992e42b62"], + source: "Campus recruiting event", + creditedTo: "credited_to", + screeningQuestionAnswers: ["screening_question_answers", "screening_question_answers"], + currentStage: "current_stage", + rejectReason: "reject_reason", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/candidacies", + data: ["Varies by platform"], + }, + ], + }); + }); + + test("changeStageCreate", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = {}; + const rawResponseBody = { + model: { + id: "92e8a369-fffe-430d-b93a-f7e8a16563f1", + remote_id: "98796", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + candidate: "candidate", + job: "job", + applied_at: "2021-10-15T00:00:00Z", + rejected_at: "2021-11-15T00:00:00Z", + offers: ["e9b5c11d-c588-468e-8567-cd6992e42b62"], + source: "Campus recruiting event", + credited_to: "credited_to", + screening_question_answers: ["screening_question_answers", "screening_question_answers"], + current_stage: "current_stage", + reject_reason: "reject_reason", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/candidacies", data: ["Varies by platform"] }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/ats/v1/applications/id/change-stage") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.applications.changeStageCreate("id"); + expect(response).toEqual({ + model: { + id: "92e8a369-fffe-430d-b93a-f7e8a16563f1", + remoteId: "98796", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + candidate: "candidate", + job: "job", + appliedAt: new Date("2021-10-15T00:00:00.000Z"), + rejectedAt: new Date("2021-11-15T00:00:00.000Z"), + offers: ["e9b5c11d-c588-468e-8567-cd6992e42b62"], + source: "Campus recruiting event", + creditedTo: "credited_to", + screeningQuestionAnswers: ["screening_question_answers", "screening_question_answers"], + currentStage: "current_stage", + rejectReason: "reject_reason", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/candidacies", + data: ["Varies by platform"], + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/ats/v1/applications/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.applications.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/ats/asyncPassthrough.test.ts b/tests/wire/ats/asyncPassthrough.test.ts new file mode 100644 index 000000000..ec2a18c20 --- /dev/null +++ b/tests/wire/ats/asyncPassthrough.test.ts @@ -0,0 +1,71 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AsyncPassthrough", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { method: "GET", path: "/scooters" }; + const rawResponseBody = { async_passthrough_receipt_id: "fd29020f-2695-445e-922e-dcd5e81903fd" }; + server + .mockEndpoint() + .post("/ats/v1/async-passthrough") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.asyncPassthrough.create({ + method: "GET", + path: "/scooters", + }); + expect(response).toEqual({ + asyncPassthroughReceiptId: "fd29020f-2695-445e-922e-dcd5e81903fd", + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + method: "GET", + path: "/scooters", + status: 200, + response: { key: "value" }, + response_headers: { "X-Page-Token": "value" }, + response_type: "JSON", + headers: { "EXTRA-HEADER": "value", Authorization: "" }, + }; + server + .mockEndpoint() + .get("/ats/v1/async-passthrough/async_passthrough_receipt_id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.asyncPassthrough.retrieve("async_passthrough_receipt_id"); + expect(response).toEqual({ + method: "GET", + path: "/scooters", + status: 200, + response: { + key: "value", + }, + responseHeaders: { + "X-Page-Token": "value", + }, + responseType: "JSON", + headers: { + "EXTRA-HEADER": "value", + Authorization: "", + }, + }); + }); +}); diff --git a/tests/wire/ats/attachments.test.ts b/tests/wire/ats/attachments.test.ts new file mode 100644 index 000000000..b843a1995 --- /dev/null +++ b/tests/wire/ats/attachments.test.ts @@ -0,0 +1,670 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Attachments", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "c640b80b-fac9-409f-aa19-1f9221aec445", + remote_id: "11167", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + file_name: "Candidate Resume", + file_url: "http://alturl.com/p749b", + candidate: "2872ba14-4084-492b-be96-e5eee6fc33ef", + attachment_type: "RESUME", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/attachments", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/ats/v1/attachments") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.attachments.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "c640b80b-fac9-409f-aa19-1f9221aec445", + remoteId: "11167", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + fileName: "Candidate Resume", + fileUrl: "http://alturl.com/p749b", + candidate: "2872ba14-4084-492b-be96-e5eee6fc33ef", + attachmentType: "RESUME", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/attachments", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {}, remote_user_id: "remote_user_id" }; + const rawResponseBody = { + model: { + id: "c640b80b-fac9-409f-aa19-1f9221aec445", + remote_id: "11167", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + file_name: "Candidate Resume", + file_url: "http://alturl.com/p749b", + candidate: "2872ba14-4084-492b-be96-e5eee6fc33ef", + attachment_type: "RESUME", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/attachments", data: ["Varies by platform"] }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/ats/v1/attachments") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.attachments.create({ + model: {}, + remoteUserId: "remote_user_id", + }); + expect(response).toEqual({ + model: { + id: "c640b80b-fac9-409f-aa19-1f9221aec445", + remoteId: "11167", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + fileName: "Candidate Resume", + fileUrl: "http://alturl.com/p749b", + candidate: "2872ba14-4084-492b-be96-e5eee6fc33ef", + attachmentType: "RESUME", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/attachments", + data: ["Varies by platform"], + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "c640b80b-fac9-409f-aa19-1f9221aec445", + remote_id: "11167", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + file_name: "Candidate Resume", + file_url: "http://alturl.com/p749b", + candidate: "2872ba14-4084-492b-be96-e5eee6fc33ef", + attachment_type: "RESUME", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/attachments", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/ats/v1/attachments/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.attachments.retrieve("id"); + expect(response).toEqual({ + id: "c640b80b-fac9-409f-aa19-1f9221aec445", + remoteId: "11167", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + fileName: "Candidate Resume", + fileUrl: "http://alturl.com/p749b", + candidate: "2872ba14-4084-492b-be96-e5eee6fc33ef", + attachmentType: "RESUME", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/attachments", + data: ["Varies by platform"], + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/ats/v1/attachments/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.attachments.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/ats/auditTrail.test.ts b/tests/wire/ats/auditTrail.test.ts new file mode 100644 index 000000000..93a81e0c3 --- /dev/null +++ b/tests/wire/ats/auditTrail.test.ts @@ -0,0 +1,57 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AuditTrail", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b5ceea2a-7171-47ce-8090-165cfce5572c", + user_name: "Gil Feig", + user_email: "hello@merge.dev", + role: "ADMIN", + ip_address: "192.0.2.123", + event_type: "CREATED_REMOTE_PRODUCTION_API_KEY", + event_description: + "Organization-wide Scopes for model hris.Employee updated from Read to Read+Write", + created_at: "2024-01-15T09:30:00Z", + }, + ], + }; + server + .mockEndpoint() + .get("/ats/v1/audit-trail") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.auditTrail.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b5ceea2a-7171-47ce-8090-165cfce5572c", + userName: "Gil Feig", + userEmail: "hello@merge.dev", + role: "ADMIN", + ipAddress: "192.0.2.123", + eventType: "CREATED_REMOTE_PRODUCTION_API_KEY", + eventDescription: + "Organization-wide Scopes for model hris.Employee updated from Read to Read+Write", + createdAt: new Date("2024-01-15T09:30:00.000Z"), + }, + ], + }); + }); +}); diff --git a/tests/wire/ats/availableActions.test.ts b/tests/wire/ats/availableActions.test.ts new file mode 100644 index 000000000..7eaaf3974 --- /dev/null +++ b/tests/wire/ats/availableActions.test.ts @@ -0,0 +1,73 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AvailableActions", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + integration: { + name: "name", + abbreviated_name: "abbreviated_name", + categories: ["hris"], + image: "image", + square_image: "square_image", + color: "color", + slug: "slug", + api_endpoints_to_documentation_urls: { key: "value" }, + webhook_setup_guide_url: "webhook_setup_guide_url", + category_beta_status: { key: "value" }, + }, + passthrough_available: true, + available_model_operations: [ + { + model_name: "Candidate", + available_operations: ["FETCH", "CREATE"], + required_post_parameters: ["remote_user_id"], + supported_fields: ["first_name", "last_name", "company", "title"], + }, + ], + }; + server + .mockEndpoint() + .get("/ats/v1/available-actions") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.availableActions.retrieve(); + expect(response).toEqual({ + integration: { + name: "name", + abbreviatedName: "abbreviated_name", + categories: ["hris"], + image: "image", + squareImage: "square_image", + color: "color", + slug: "slug", + apiEndpointsToDocumentationUrls: { + key: "value", + }, + webhookSetupGuideUrl: "webhook_setup_guide_url", + categoryBetaStatus: { + key: "value", + }, + }, + passthroughAvailable: true, + availableModelOperations: [ + { + modelName: "Candidate", + availableOperations: ["FETCH", "CREATE"], + requiredPostParameters: ["remote_user_id"], + supportedFields: ["first_name", "last_name", "company", "title"], + }, + ], + }); + }); +}); diff --git a/tests/wire/ats/candidates.test.ts b/tests/wire/ats/candidates.test.ts new file mode 100644 index 000000000..a14cd4508 --- /dev/null +++ b/tests/wire/ats/candidates.test.ts @@ -0,0 +1,1523 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Candidates", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "521b18c2-4d01-4297-b451-19858d07c133", + remote_id: "21198", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + first_name: "Gil", + last_name: "Feig", + company: "Columbia Dining App.", + title: "Software Engineer", + remote_created_at: "2021-10-15T00:00:00Z", + remote_updated_at: "2021-10-16T00:00:00Z", + last_interaction_at: "2021-10-17T00:00:00Z", + is_private: true, + can_email: true, + locations: ["San Francisco", "New York", "Miami"], + phone_numbers: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + value: "+1234567890", + phone_number_type: "MOBILE", + }, + ], + email_addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + value: "hello@merge.dev", + email_address_type: "PERSONAL", + }, + ], + urls: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + value: "http://alturl.com/p749b", + url_type: "BLOG", + }, + ], + tags: ["High-Priority"], + applications: [ + "29eb9867-ce2a-403f-b8ce-f2844b89f078", + "b4d08e5c-de00-4d64-a29f-66addac9af99", + "4ff877d2-fb3e-4a5b-a7a5-168ddf2ffa56", + ], + attachments: ["bea08964-32b4-4a20-8bb4-2612ba09de1d"], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/candidates", data: ["Varies by platform"] }], + }, + ], + }; + server.mockEndpoint().get("/ats/v1/candidates").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.ats.candidates.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "521b18c2-4d01-4297-b451-19858d07c133", + remoteId: "21198", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + firstName: "Gil", + lastName: "Feig", + company: "Columbia Dining App.", + title: "Software Engineer", + remoteCreatedAt: new Date("2021-10-15T00:00:00.000Z"), + remoteUpdatedAt: new Date("2021-10-16T00:00:00.000Z"), + lastInteractionAt: new Date("2021-10-17T00:00:00.000Z"), + isPrivate: true, + canEmail: true, + locations: ["San Francisco", "New York", "Miami"], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + value: "+1234567890", + phoneNumberType: "MOBILE", + }, + ], + emailAddresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + value: "hello@merge.dev", + emailAddressType: "PERSONAL", + }, + ], + urls: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + value: "http://alturl.com/p749b", + urlType: "BLOG", + }, + ], + tags: ["High-Priority"], + applications: [ + "29eb9867-ce2a-403f-b8ce-f2844b89f078", + "b4d08e5c-de00-4d64-a29f-66addac9af99", + "4ff877d2-fb3e-4a5b-a7a5-168ddf2ffa56", + ], + attachments: ["bea08964-32b4-4a20-8bb4-2612ba09de1d"], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/candidates", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {}, remote_user_id: "remote_user_id" }; + const rawResponseBody = { + model: { + id: "521b18c2-4d01-4297-b451-19858d07c133", + remote_id: "21198", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + first_name: "Gil", + last_name: "Feig", + company: "Columbia Dining App.", + title: "Software Engineer", + remote_created_at: "2021-10-15T00:00:00Z", + remote_updated_at: "2021-10-16T00:00:00Z", + last_interaction_at: "2021-10-17T00:00:00Z", + is_private: true, + can_email: true, + locations: ["San Francisco", "New York", "Miami"], + phone_numbers: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + value: "+1234567890", + phone_number_type: "MOBILE", + }, + ], + email_addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + value: "hello@merge.dev", + email_address_type: "PERSONAL", + }, + ], + urls: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + value: "http://alturl.com/p749b", + url_type: "BLOG", + }, + ], + tags: ["High-Priority"], + applications: [ + "29eb9867-ce2a-403f-b8ce-f2844b89f078", + "b4d08e5c-de00-4d64-a29f-66addac9af99", + "4ff877d2-fb3e-4a5b-a7a5-168ddf2ffa56", + ], + attachments: ["bea08964-32b4-4a20-8bb4-2612ba09de1d"], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/candidates", data: ["Varies by platform"] }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/ats/v1/candidates") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.candidates.create({ + model: {}, + remoteUserId: "remote_user_id", + }); + expect(response).toEqual({ + model: { + id: "521b18c2-4d01-4297-b451-19858d07c133", + remoteId: "21198", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + firstName: "Gil", + lastName: "Feig", + company: "Columbia Dining App.", + title: "Software Engineer", + remoteCreatedAt: new Date("2021-10-15T00:00:00.000Z"), + remoteUpdatedAt: new Date("2021-10-16T00:00:00.000Z"), + lastInteractionAt: new Date("2021-10-17T00:00:00.000Z"), + isPrivate: true, + canEmail: true, + locations: ["San Francisco", "New York", "Miami"], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + value: "+1234567890", + phoneNumberType: "MOBILE", + }, + ], + emailAddresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + value: "hello@merge.dev", + emailAddressType: "PERSONAL", + }, + ], + urls: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + value: "http://alturl.com/p749b", + urlType: "BLOG", + }, + ], + tags: ["High-Priority"], + applications: [ + "29eb9867-ce2a-403f-b8ce-f2844b89f078", + "b4d08e5c-de00-4d64-a29f-66addac9af99", + "4ff877d2-fb3e-4a5b-a7a5-168ddf2ffa56", + ], + attachments: ["bea08964-32b4-4a20-8bb4-2612ba09de1d"], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/candidates", + data: ["Varies by platform"], + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "521b18c2-4d01-4297-b451-19858d07c133", + remote_id: "21198", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + first_name: "Gil", + last_name: "Feig", + company: "Columbia Dining App.", + title: "Software Engineer", + remote_created_at: "2021-10-15T00:00:00Z", + remote_updated_at: "2021-10-16T00:00:00Z", + last_interaction_at: "2021-10-17T00:00:00Z", + is_private: true, + can_email: true, + locations: ["San Francisco", "New York", "Miami"], + phone_numbers: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + value: "+1234567890", + phone_number_type: "MOBILE", + remote_was_deleted: true, + }, + ], + email_addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + value: "hello@merge.dev", + email_address_type: "PERSONAL", + remote_was_deleted: true, + }, + ], + urls: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + value: "http://alturl.com/p749b", + url_type: "BLOG", + remote_was_deleted: true, + }, + ], + tags: ["High-Priority"], + applications: [ + "29eb9867-ce2a-403f-b8ce-f2844b89f078", + "b4d08e5c-de00-4d64-a29f-66addac9af99", + "4ff877d2-fb3e-4a5b-a7a5-168ddf2ffa56", + ], + attachments: ["bea08964-32b4-4a20-8bb4-2612ba09de1d"], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/candidates", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/ats/v1/candidates/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.candidates.retrieve("id"); + expect(response).toEqual({ + id: "521b18c2-4d01-4297-b451-19858d07c133", + remoteId: "21198", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + firstName: "Gil", + lastName: "Feig", + company: "Columbia Dining App.", + title: "Software Engineer", + remoteCreatedAt: new Date("2021-10-15T00:00:00.000Z"), + remoteUpdatedAt: new Date("2021-10-16T00:00:00.000Z"), + lastInteractionAt: new Date("2021-10-17T00:00:00.000Z"), + isPrivate: true, + canEmail: true, + locations: ["San Francisco", "New York", "Miami"], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + value: "+1234567890", + phoneNumberType: "MOBILE", + remoteWasDeleted: true, + }, + ], + emailAddresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + value: "hello@merge.dev", + emailAddressType: "PERSONAL", + remoteWasDeleted: true, + }, + ], + urls: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + value: "http://alturl.com/p749b", + urlType: "BLOG", + remoteWasDeleted: true, + }, + ], + tags: ["High-Priority"], + applications: [ + "29eb9867-ce2a-403f-b8ce-f2844b89f078", + "b4d08e5c-de00-4d64-a29f-66addac9af99", + "4ff877d2-fb3e-4a5b-a7a5-168ddf2ffa56", + ], + attachments: ["bea08964-32b4-4a20-8bb4-2612ba09de1d"], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/candidates", + data: ["Varies by platform"], + }, + ], + }); + }); + + test("partialUpdate", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {}, remote_user_id: "remote_user_id" }; + const rawResponseBody = { + model: { + id: "521b18c2-4d01-4297-b451-19858d07c133", + remote_id: "21198", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + first_name: "Gil", + last_name: "Feig", + company: "Columbia Dining App.", + title: "Software Engineer", + remote_created_at: "2021-10-15T00:00:00Z", + remote_updated_at: "2021-10-16T00:00:00Z", + last_interaction_at: "2021-10-17T00:00:00Z", + is_private: true, + can_email: true, + locations: ["San Francisco", "New York", "Miami"], + phone_numbers: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + value: "+1234567890", + phone_number_type: "MOBILE", + }, + ], + email_addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + value: "hello@merge.dev", + email_address_type: "PERSONAL", + }, + ], + urls: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + value: "http://alturl.com/p749b", + url_type: "BLOG", + }, + ], + tags: ["High-Priority"], + applications: [ + "29eb9867-ce2a-403f-b8ce-f2844b89f078", + "b4d08e5c-de00-4d64-a29f-66addac9af99", + "4ff877d2-fb3e-4a5b-a7a5-168ddf2ffa56", + ], + attachments: ["bea08964-32b4-4a20-8bb4-2612ba09de1d"], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/candidates", data: ["Varies by platform"] }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .patch("/ats/v1/candidates/id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.candidates.partialUpdate("id", { + model: {}, + remoteUserId: "remote_user_id", + }); + expect(response).toEqual({ + model: { + id: "521b18c2-4d01-4297-b451-19858d07c133", + remoteId: "21198", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + firstName: "Gil", + lastName: "Feig", + company: "Columbia Dining App.", + title: "Software Engineer", + remoteCreatedAt: new Date("2021-10-15T00:00:00.000Z"), + remoteUpdatedAt: new Date("2021-10-16T00:00:00.000Z"), + lastInteractionAt: new Date("2021-10-17T00:00:00.000Z"), + isPrivate: true, + canEmail: true, + locations: ["San Francisco", "New York", "Miami"], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + value: "+1234567890", + phoneNumberType: "MOBILE", + }, + ], + emailAddresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + value: "hello@merge.dev", + emailAddressType: "PERSONAL", + }, + ], + urls: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + value: "http://alturl.com/p749b", + urlType: "BLOG", + }, + ], + tags: ["High-Priority"], + applications: [ + "29eb9867-ce2a-403f-b8ce-f2844b89f078", + "b4d08e5c-de00-4d64-a29f-66addac9af99", + "4ff877d2-fb3e-4a5b-a7a5-168ddf2ffa56", + ], + attachments: ["bea08964-32b4-4a20-8bb4-2612ba09de1d"], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/candidates", + data: ["Varies by platform"], + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("ignoreCreate", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { reason: "GENERAL_CUSTOMER_REQUEST" }; + + server + .mockEndpoint() + .post("/ats/v1/candidates/ignore/model_id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .build(); + + const response = await client.ats.candidates.ignoreCreate("model_id", { + reason: "GENERAL_CUSTOMER_REQUEST", + }); + expect(response).toEqual(undefined); + }); + + test("metaPatchRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/ats/v1/candidates/meta/patch/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.candidates.metaPatchRetrieve("id"); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/ats/v1/candidates/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.candidates.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/ats/deleteAccount.test.ts b/tests/wire/ats/deleteAccount.test.ts new file mode 100644 index 000000000..23942862f --- /dev/null +++ b/tests/wire/ats/deleteAccount.test.ts @@ -0,0 +1,18 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("DeleteAccount", () => { + test("delete", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + server.mockEndpoint().post("/ats/v1/delete-account").respondWith().statusCode(200).build(); + + const response = await client.ats.deleteAccount.delete(); + expect(response).toEqual(undefined); + }); +}); diff --git a/tests/wire/ats/departments.test.ts b/tests/wire/ats/departments.test.ts new file mode 100644 index 000000000..de3e47dd8 --- /dev/null +++ b/tests/wire/ats/departments.test.ts @@ -0,0 +1,120 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Departments", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + remote_id: "23456", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Engineering", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/departments", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/ats/v1/departments") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.departments.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + remoteId: "23456", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Engineering", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/departments", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + remote_id: "23456", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Engineering", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/departments", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/ats/v1/departments/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.departments.retrieve("id"); + expect(response).toEqual({ + id: "5b3c1341-a20f-4e51-b72c-f3830a16c97b", + remoteId: "23456", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Engineering", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/departments", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/ats/eeocs.test.ts b/tests/wire/ats/eeocs.test.ts new file mode 100644 index 000000000..268a4149e --- /dev/null +++ b/tests/wire/ats/eeocs.test.ts @@ -0,0 +1,128 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Eeocs", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "f7dd7b4f-237e-4772-8bd4-3246384c6c58", + remote_id: "76", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + candidate: "candidate", + submitted_at: "2021-10-15T00:00:00Z", + race: "AMERICAN_INDIAN_OR_ALASKAN_NATIVE", + gender: "MALE", + veteran_status: "I_AM_NOT_A_PROTECTED_VETERAN", + disability_status: "YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/eeoc", data: ["Varies by platform"] }], + }, + ], + }; + server.mockEndpoint().get("/ats/v1/eeocs").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.ats.eeocs.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "f7dd7b4f-237e-4772-8bd4-3246384c6c58", + remoteId: "76", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + candidate: "candidate", + submittedAt: new Date("2021-10-15T00:00:00.000Z"), + race: "AMERICAN_INDIAN_OR_ALASKAN_NATIVE", + gender: "MALE", + veteranStatus: "I_AM_NOT_A_PROTECTED_VETERAN", + disabilityStatus: "YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/eeoc", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "f7dd7b4f-237e-4772-8bd4-3246384c6c58", + remote_id: "76", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + candidate: "candidate", + submitted_at: "2021-10-15T00:00:00Z", + race: "AMERICAN_INDIAN_OR_ALASKAN_NATIVE", + gender: "MALE", + veteran_status: "I_AM_NOT_A_PROTECTED_VETERAN", + disability_status: "YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/eeoc", data: ["Varies by platform"] }], + }; + server.mockEndpoint().get("/ats/v1/eeocs/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.ats.eeocs.retrieve("id"); + expect(response).toEqual({ + id: "f7dd7b4f-237e-4772-8bd4-3246384c6c58", + remoteId: "76", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + candidate: "candidate", + submittedAt: new Date("2021-10-15T00:00:00.000Z"), + race: "AMERICAN_INDIAN_OR_ALASKAN_NATIVE", + gender: "MALE", + veteranStatus: "I_AM_NOT_A_PROTECTED_VETERAN", + disabilityStatus: "YES_I_HAVE_A_DISABILITY_OR_PREVIOUSLY_HAD_A_DISABILITY", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/eeoc", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/ats/fieldMapping.test.ts b/tests/wire/ats/fieldMapping.test.ts new file mode 100644 index 000000000..e7d4d9159 --- /dev/null +++ b/tests/wire/ats/fieldMapping.test.ts @@ -0,0 +1,1834 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("FieldMapping", () => { + test("field_mappings_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + Activity: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Application: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Attachment: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Candidate: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Department: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + EEOC: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + ScheduledInterview: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Job: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + JobPosting: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + JobInterviewStage: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Offer: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Office: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + RejectReason: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Scorecard: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Tag: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + RemoteUser: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + }; + server + .mockEndpoint() + .get("/ats/v1/field-mappings") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.fieldMapping.fieldMappingsRetrieve(); + expect(response).toEqual({ + activity: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + application: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + attachment: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + candidate: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + department: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + eeoc: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + scheduledInterview: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + job: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + jobPosting: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + jobInterviewStage: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + offer: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + office: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + rejectReason: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + scorecard: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + tag: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + remoteUser: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + }); + }); + + test("field_mappings_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { + target_field_name: "example_target_field_name", + target_field_description: "this is a example description of the target field", + remote_field_traversal_path: ["example_remote_field"], + remote_method: "GET", + remote_url_path: "/example-url-path", + common_model_name: "ExampleCommonModel", + }; + const rawResponseBody = { + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/ats/v1/field-mappings") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.fieldMapping.fieldMappingsCreate({ + targetFieldName: "example_target_field_name", + targetFieldDescription: "this is a example description of the target field", + remoteFieldTraversalPath: ["example_remote_field"], + remoteMethod: "GET", + remoteUrlPath: "/example-url-path", + commonModelName: "ExampleCommonModel", + }); + expect(response).toEqual({ + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("field_mappings_destroy", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .delete("/ats/v1/field-mappings/field_mapping_id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.fieldMapping.fieldMappingsDestroy("field_mapping_id"); + expect(response).toEqual({ + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("field_mappings_partial_update", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = {}; + const rawResponseBody = { + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .patch("/ats/v1/field-mappings/field_mapping_id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id"); + expect(response).toEqual({ + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("remote_fields_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + Activity: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Application: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Attachment: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Candidate: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Department: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + EEOC: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + ScheduledInterview: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Job: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + JobPosting: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + JobInterviewStage: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Offer: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Office: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + RejectReason: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Scorecard: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Tag: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + RemoteUser: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + }; + server + .mockEndpoint() + .get("/ats/v1/remote-fields") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.fieldMapping.remoteFieldsRetrieve(); + expect(response).toEqual({ + activity: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + application: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + attachment: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + candidate: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + department: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + eeoc: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + scheduledInterview: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + job: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + jobPosting: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + jobInterviewStage: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + offer: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + office: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + rejectReason: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + scorecard: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + tag: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + remoteUser: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + }); + }); + + test("target_fields_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + Activity: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Application: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Attachment: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Candidate: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Department: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + EEOC: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + ScheduledInterview: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Job: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + JobPosting: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + JobInterviewStage: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Offer: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Office: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + RejectReason: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Scorecard: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Tag: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + RemoteUser: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + }; + server + .mockEndpoint() + .get("/ats/v1/target-fields") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.fieldMapping.targetFieldsRetrieve(); + expect(response).toEqual({ + activity: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + application: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + attachment: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + candidate: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + department: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + eeoc: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + scheduledInterview: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + job: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + jobPosting: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + jobInterviewStage: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + offer: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + office: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + rejectReason: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + scorecard: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + tag: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + remoteUser: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + }); + }); +}); diff --git a/tests/wire/ats/forceResync.test.ts b/tests/wire/ats/forceResync.test.ts new file mode 100644 index 000000000..33d70c030 --- /dev/null +++ b/tests/wire/ats/forceResync.test.ts @@ -0,0 +1,49 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("ForceResync", () => { + test("sync_status_resync_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = [ + { + model_name: "Candidate", + model_id: "ats.Candidate", + last_sync_start: "2021-03-30T19:44:18Z", + next_sync_start: "2021-03-30T20:44:18Z", + last_sync_result: "SYNCING", + last_sync_finished: "2021-03-30T19:55:18Z", + status: "SYNCING", + is_initial_sync: true, + selective_sync_configurations_usage: "IN_NEXT_SYNC", + }, + ]; + server + .mockEndpoint() + .post("/ats/v1/sync-status/resync") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.forceResync.syncStatusResyncCreate(); + expect(response).toEqual([ + { + modelName: "Candidate", + modelId: "ats.Candidate", + lastSyncStart: new Date("2021-03-30T19:44:18.000Z"), + nextSyncStart: new Date("2021-03-30T20:44:18.000Z"), + lastSyncResult: "SYNCING", + lastSyncFinished: new Date("2021-03-30T19:55:18.000Z"), + status: "SYNCING", + isInitialSync: true, + selectiveSyncConfigurationsUsage: "IN_NEXT_SYNC", + }, + ]); + }); +}); diff --git a/tests/wire/ats/generateKey.test.ts b/tests/wire/ats/generateKey.test.ts new file mode 100644 index 000000000..704f0fa7b --- /dev/null +++ b/tests/wire/ats/generateKey.test.ts @@ -0,0 +1,34 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("GenerateKey", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { name: "Remote Deployment Key 1" }; + const rawResponseBody = { + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }; + server + .mockEndpoint() + .post("/ats/v1/generate-key") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.generateKey.create({ + name: "Remote Deployment Key 1", + }); + expect(response).toEqual({ + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }); + }); +}); diff --git a/tests/wire/ats/interviews.test.ts b/tests/wire/ats/interviews.test.ts new file mode 100644 index 000000000..43f99af10 --- /dev/null +++ b/tests/wire/ats/interviews.test.ts @@ -0,0 +1,700 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Interviews", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b8faf072-98b9-4445-8a9a-6b4950efca19", + remote_id: "3", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + application: "application", + job_interview_stage: "job_interview_stage", + organizer: "organizer", + interviewers: ["f9813dd5-e70b-484c-91d8-00acd6065b07", "89a86fcf-d540-4e6b-ac3d-ce07c4ec9b3c"], + location: "Embarcadero Center 2", + start_at: "2021-10-15T00:00:00Z", + end_at: "2021-10-15T02:00:00Z", + remote_created_at: "2021-10-15T00:00:00Z", + remote_updated_at: "2021-10-15T00:00:00Z", + status: "SCHEDULED", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/interviews", data: ["Varies by platform"] }], + }, + ], + }; + server.mockEndpoint().get("/ats/v1/interviews").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.ats.interviews.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b8faf072-98b9-4445-8a9a-6b4950efca19", + remoteId: "3", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + application: "application", + jobInterviewStage: "job_interview_stage", + organizer: "organizer", + interviewers: ["f9813dd5-e70b-484c-91d8-00acd6065b07", "89a86fcf-d540-4e6b-ac3d-ce07c4ec9b3c"], + location: "Embarcadero Center 2", + startAt: new Date("2021-10-15T00:00:00.000Z"), + endAt: new Date("2021-10-15T02:00:00.000Z"), + remoteCreatedAt: new Date("2021-10-15T00:00:00.000Z"), + remoteUpdatedAt: new Date("2021-10-15T00:00:00.000Z"), + status: "SCHEDULED", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/interviews", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {}, remote_user_id: "remote_user_id" }; + const rawResponseBody = { + model: { + id: "b8faf072-98b9-4445-8a9a-6b4950efca19", + remote_id: "3", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + application: "application", + job_interview_stage: "job_interview_stage", + organizer: "organizer", + interviewers: ["f9813dd5-e70b-484c-91d8-00acd6065b07", "89a86fcf-d540-4e6b-ac3d-ce07c4ec9b3c"], + location: "Embarcadero Center 2", + start_at: "2021-10-15T00:00:00Z", + end_at: "2021-10-15T02:00:00Z", + remote_created_at: "2021-10-15T00:00:00Z", + remote_updated_at: "2021-10-15T00:00:00Z", + status: "SCHEDULED", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/interviews", data: ["Varies by platform"] }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/ats/v1/interviews") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.interviews.create({ + model: {}, + remoteUserId: "remote_user_id", + }); + expect(response).toEqual({ + model: { + id: "b8faf072-98b9-4445-8a9a-6b4950efca19", + remoteId: "3", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + application: "application", + jobInterviewStage: "job_interview_stage", + organizer: "organizer", + interviewers: ["f9813dd5-e70b-484c-91d8-00acd6065b07", "89a86fcf-d540-4e6b-ac3d-ce07c4ec9b3c"], + location: "Embarcadero Center 2", + startAt: new Date("2021-10-15T00:00:00.000Z"), + endAt: new Date("2021-10-15T02:00:00.000Z"), + remoteCreatedAt: new Date("2021-10-15T00:00:00.000Z"), + remoteUpdatedAt: new Date("2021-10-15T00:00:00.000Z"), + status: "SCHEDULED", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/interviews", + data: ["Varies by platform"], + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "b8faf072-98b9-4445-8a9a-6b4950efca19", + remote_id: "3", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + application: "application", + job_interview_stage: "job_interview_stage", + organizer: "organizer", + interviewers: ["f9813dd5-e70b-484c-91d8-00acd6065b07", "89a86fcf-d540-4e6b-ac3d-ce07c4ec9b3c"], + location: "Embarcadero Center 2", + start_at: "2021-10-15T00:00:00Z", + end_at: "2021-10-15T02:00:00Z", + remote_created_at: "2021-10-15T00:00:00Z", + remote_updated_at: "2021-10-15T00:00:00Z", + status: "SCHEDULED", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/interviews", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/ats/v1/interviews/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.interviews.retrieve("id"); + expect(response).toEqual({ + id: "b8faf072-98b9-4445-8a9a-6b4950efca19", + remoteId: "3", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + application: "application", + jobInterviewStage: "job_interview_stage", + organizer: "organizer", + interviewers: ["f9813dd5-e70b-484c-91d8-00acd6065b07", "89a86fcf-d540-4e6b-ac3d-ce07c4ec9b3c"], + location: "Embarcadero Center 2", + startAt: new Date("2021-10-15T00:00:00.000Z"), + endAt: new Date("2021-10-15T02:00:00.000Z"), + remoteCreatedAt: new Date("2021-10-15T00:00:00.000Z"), + remoteUpdatedAt: new Date("2021-10-15T00:00:00.000Z"), + status: "SCHEDULED", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/interviews", + data: ["Varies by platform"], + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/ats/v1/interviews/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.interviews.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/ats/issues.test.ts b/tests/wire/ats/issues.test.ts new file mode 100644 index 000000000..e2efcfe71 --- /dev/null +++ b/tests/wire/ats/issues.test.ts @@ -0,0 +1,82 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Issues", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + error_description: "Missing Permissions", + end_user: { key: "value" }, + first_incident_time: "2022-12-05T16:19:15Z", + last_incident_time: "2022-12-05T16:19:15Z", + is_muted: true, + error_details: ["Missing employee permissions.", "Missing time off permissions."], + }, + ], + }; + server.mockEndpoint().get("/ats/v1/issues").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.ats.issues.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + errorDescription: "Missing Permissions", + endUser: { + key: "value", + }, + firstIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + lastIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + isMuted: true, + errorDetails: ["Missing employee permissions.", "Missing time off permissions."], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + error_description: "Missing Permissions", + end_user: { key: "value" }, + first_incident_time: "2022-12-05T16:19:15Z", + last_incident_time: "2022-12-05T16:19:15Z", + is_muted: true, + error_details: ["Missing employee permissions.", "Missing time off permissions."], + }; + server.mockEndpoint().get("/ats/v1/issues/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.ats.issues.retrieve("id"); + expect(response).toEqual({ + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + errorDescription: "Missing Permissions", + endUser: { + key: "value", + }, + firstIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + lastIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + isMuted: true, + errorDetails: ["Missing employee permissions.", "Missing time off permissions."], + }); + }); +}); diff --git a/tests/wire/ats/jobInterviewStages.test.ts b/tests/wire/ats/jobInterviewStages.test.ts new file mode 100644 index 000000000..552fa90a3 --- /dev/null +++ b/tests/wire/ats/jobInterviewStages.test.ts @@ -0,0 +1,128 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("JobInterviewStages", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "f9813dd5-e70b-484c-91d8-00acd6065b07", + remote_id: "876556788", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Phone Screen", + job: "job", + stage_order: 2, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/interview-stages", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/ats/v1/job-interview-stages") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.jobInterviewStages.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "f9813dd5-e70b-484c-91d8-00acd6065b07", + remoteId: "876556788", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Phone Screen", + job: "job", + stageOrder: 2, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/interview-stages", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "f9813dd5-e70b-484c-91d8-00acd6065b07", + remote_id: "876556788", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Phone Screen", + job: "job", + stage_order: 2, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/interview-stages", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/ats/v1/job-interview-stages/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.jobInterviewStages.retrieve("id"); + expect(response).toEqual({ + id: "f9813dd5-e70b-484c-91d8-00acd6065b07", + remoteId: "876556788", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Phone Screen", + job: "job", + stageOrder: 2, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/interview-stages", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/ats/jobPostings.test.ts b/tests/wire/ats/jobPostings.test.ts new file mode 100644 index 000000000..fef4efe50 --- /dev/null +++ b/tests/wire/ats/jobPostings.test.ts @@ -0,0 +1,178 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("JobPostings", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "156a2bef-57e5-4def-8ed2-7c41bd9a554t", + remote_id: "1341324", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + title: "Platform - NYC", + job_posting_urls: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + value: "https://merge.dev/careers", + url_type: "JOB_POSTING", + }, + ], + job: "job", + status: "PUBLISHED", + content: "Apply at https://merge.dev/careers", + remote_created_at: "2021-10-15T00:00:00Z", + remote_updated_at: "2021-10-16T00:00:00Z", + is_internal: true, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/positions", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/ats/v1/job-postings") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.jobPostings.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "156a2bef-57e5-4def-8ed2-7c41bd9a554t", + remoteId: "1341324", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + title: "Platform - NYC", + jobPostingUrls: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + value: "https://merge.dev/careers", + urlType: "JOB_POSTING", + }, + ], + job: "job", + status: "PUBLISHED", + content: "Apply at https://merge.dev/careers", + remoteCreatedAt: new Date("2021-10-15T00:00:00.000Z"), + remoteUpdatedAt: new Date("2021-10-16T00:00:00.000Z"), + isInternal: true, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/positions", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "156a2bef-57e5-4def-8ed2-7c41bd9a554t", + remote_id: "1341324", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + title: "Platform - NYC", + job_posting_urls: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + value: "https://merge.dev/careers", + url_type: "JOB_POSTING", + remote_was_deleted: true, + }, + ], + job: "job", + status: "PUBLISHED", + content: "Apply at https://merge.dev/careers", + remote_created_at: "2021-10-15T00:00:00Z", + remote_updated_at: "2021-10-16T00:00:00Z", + is_internal: true, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/positions", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/ats/v1/job-postings/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.jobPostings.retrieve("id"); + expect(response).toEqual({ + id: "156a2bef-57e5-4def-8ed2-7c41bd9a554t", + remoteId: "1341324", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + title: "Platform - NYC", + jobPostingUrls: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + value: "https://merge.dev/careers", + urlType: "JOB_POSTING", + remoteWasDeleted: true, + }, + ], + job: "job", + status: "PUBLISHED", + content: "Apply at https://merge.dev/careers", + remoteCreatedAt: new Date("2021-10-15T00:00:00.000Z"), + remoteUpdatedAt: new Date("2021-10-16T00:00:00.000Z"), + isInternal: true, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/positions", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/ats/jobs.test.ts b/tests/wire/ats/jobs.test.ts new file mode 100644 index 000000000..b0180cf91 --- /dev/null +++ b/tests/wire/ats/jobs.test.ts @@ -0,0 +1,257 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Jobs", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "022a2bef-57e5-4def-8ed2-7c41bd9a5ed8", + remote_id: "8765432", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Software Engineer (Merge is actually hiring btw)", + description: "If you're reading this documentation, you might be a good fit for Merge!", + code: "C0025", + status: "OPEN", + type: "POSTING", + job_postings: ["2r3c1341-a20f-4e51-b72c-f3830a16c97b", "543ed912-33ec-444e-a215-8d71cc42fc12"], + job_posting_urls: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + value: "https://merge.dev/careers", + url_type: "JOB_POSTING", + }, + ], + remote_created_at: "2021-10-15T00:00:00Z", + remote_updated_at: "2021-10-16T00:00:00Z", + confidential: true, + departments: ["5b3c1341-a20f-4e51-b72c-f3830a16c97b", "d6e687d6-0c36-48a1-8114-35324b5cb38f"], + offices: ["9871b4a9-f5d2-4f3b-a66b-dfedbed42c46"], + hiring_managers: ["787ed912-33ec-444e-a215-8d71cc42fc12"], + recruiters: ["787ed912-33ec-444e-a215-8d71cc42fc12"], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/positions", data: ["Varies by platform"] }], + }, + ], + }; + server.mockEndpoint().get("/ats/v1/jobs").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.ats.jobs.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "022a2bef-57e5-4def-8ed2-7c41bd9a5ed8", + remoteId: "8765432", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Software Engineer (Merge is actually hiring btw)", + description: "If you're reading this documentation, you might be a good fit for Merge!", + code: "C0025", + status: "OPEN", + type: "POSTING", + jobPostings: ["2r3c1341-a20f-4e51-b72c-f3830a16c97b", "543ed912-33ec-444e-a215-8d71cc42fc12"], + jobPostingUrls: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + value: "https://merge.dev/careers", + urlType: "JOB_POSTING", + }, + ], + remoteCreatedAt: new Date("2021-10-15T00:00:00.000Z"), + remoteUpdatedAt: new Date("2021-10-16T00:00:00.000Z"), + confidential: true, + departments: ["5b3c1341-a20f-4e51-b72c-f3830a16c97b", "d6e687d6-0c36-48a1-8114-35324b5cb38f"], + offices: ["9871b4a9-f5d2-4f3b-a66b-dfedbed42c46"], + hiringManagers: ["787ed912-33ec-444e-a215-8d71cc42fc12"], + recruiters: ["787ed912-33ec-444e-a215-8d71cc42fc12"], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/positions", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "022a2bef-57e5-4def-8ed2-7c41bd9a5ed8", + remote_id: "8765432", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Software Engineer (Merge is actually hiring btw)", + description: "If you're reading this documentation, you might be a good fit for Merge!", + code: "C0025", + status: "OPEN", + type: "POSTING", + job_postings: ["2r3c1341-a20f-4e51-b72c-f3830a16c97b", "543ed912-33ec-444e-a215-8d71cc42fc12"], + job_posting_urls: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + value: "https://merge.dev/careers", + url_type: "JOB_POSTING", + remote_was_deleted: true, + }, + ], + remote_created_at: "2021-10-15T00:00:00Z", + remote_updated_at: "2021-10-16T00:00:00Z", + confidential: true, + departments: ["5b3c1341-a20f-4e51-b72c-f3830a16c97b", "d6e687d6-0c36-48a1-8114-35324b5cb38f"], + offices: ["9871b4a9-f5d2-4f3b-a66b-dfedbed42c46"], + hiring_managers: ["787ed912-33ec-444e-a215-8d71cc42fc12"], + recruiters: ["787ed912-33ec-444e-a215-8d71cc42fc12"], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/positions", data: ["Varies by platform"] }], + }; + server.mockEndpoint().get("/ats/v1/jobs/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.ats.jobs.retrieve("id"); + expect(response).toEqual({ + id: "022a2bef-57e5-4def-8ed2-7c41bd9a5ed8", + remoteId: "8765432", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Software Engineer (Merge is actually hiring btw)", + description: "If you're reading this documentation, you might be a good fit for Merge!", + code: "C0025", + status: "OPEN", + type: "POSTING", + jobPostings: ["2r3c1341-a20f-4e51-b72c-f3830a16c97b", "543ed912-33ec-444e-a215-8d71cc42fc12"], + jobPostingUrls: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + value: "https://merge.dev/careers", + urlType: "JOB_POSTING", + remoteWasDeleted: true, + }, + ], + remoteCreatedAt: new Date("2021-10-15T00:00:00.000Z"), + remoteUpdatedAt: new Date("2021-10-16T00:00:00.000Z"), + confidential: true, + departments: ["5b3c1341-a20f-4e51-b72c-f3830a16c97b", "d6e687d6-0c36-48a1-8114-35324b5cb38f"], + offices: ["9871b4a9-f5d2-4f3b-a66b-dfedbed42c46"], + hiringManagers: ["787ed912-33ec-444e-a215-8d71cc42fc12"], + recruiters: ["787ed912-33ec-444e-a215-8d71cc42fc12"], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/positions", + data: ["Varies by platform"], + }, + ], + }); + }); + + test("screeningQuestionsList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0238cbc6-6040-430a-848e-aaiehfhdbadf4ae", + remote_id: "23729392", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + job: "job", + description: + "Are you currently authorized to work for any employer in the country outlined for this role?", + title: "Work Authorisation", + type: "DATE", + required: true, + options: [ + { remote_id: "19281", label: "I am currently authorised" }, + { remote_id: "38372", label: "I am currently not eligible" }, + ], + remote_was_deleted: true, + }, + ], + }; + server + .mockEndpoint() + .get("/ats/v1/jobs/job_id/screening-questions") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.jobs.screeningQuestionsList("job_id"); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0238cbc6-6040-430a-848e-aaiehfhdbadf4ae", + remoteId: "23729392", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + job: "job", + description: + "Are you currently authorized to work for any employer in the country outlined for this role?", + title: "Work Authorisation", + type: "DATE", + required: true, + options: [ + { + remote_id: "19281", + label: "I am currently authorised", + }, + { + remote_id: "38372", + label: "I am currently not eligible", + }, + ], + remoteWasDeleted: true, + }, + ], + }); + }); +}); diff --git a/tests/wire/ats/linkToken.test.ts b/tests/wire/ats/linkToken.test.ts new file mode 100644 index 000000000..121b6361a --- /dev/null +++ b/tests/wire/ats/linkToken.test.ts @@ -0,0 +1,44 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("LinkToken", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { + end_user_email_address: "example@gmail.com", + end_user_organization_name: "Test Organization", + end_user_origin_id: "12345", + categories: ["hris", "ats"], + }; + const rawResponseBody = { + link_token: "necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0", + integration_name: "Lever", + magic_link_url: "https://link.merge.dev/asdfjkl12345jsndfgi2i83n", + }; + server + .mockEndpoint() + .post("/ats/v1/link-token") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.linkToken.create({ + endUserEmailAddress: "example@gmail.com", + endUserOrganizationName: "Test Organization", + endUserOriginId: "12345", + categories: ["hris", "ats"], + }); + expect(response).toEqual({ + linkToken: "necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0", + integrationName: "Lever", + magicLinkUrl: "https://link.merge.dev/asdfjkl12345jsndfgi2i83n", + }); + }); +}); diff --git a/tests/wire/ats/linkedAccounts.test.ts b/tests/wire/ats/linkedAccounts.test.ts new file mode 100644 index 000000000..1217d0721 --- /dev/null +++ b/tests/wire/ats/linkedAccounts.test.ts @@ -0,0 +1,97 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("LinkedAccounts", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "e59b1821-f85c-4e28-a6b3-1804156f3563", + category: "hris", + status: "COMPLETE", + status_detail: "Invalid login credentials", + end_user_origin_id: "3ac95cde-6c7f-4eef-afec-be710b42308d", + end_user_organization_name: "Foo Bar, LLC", + end_user_email_address: "hradmin@foobar.dev", + subdomain: "foobar", + webhook_listener_url: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + is_duplicate: true, + integration: { + name: "name", + categories: ["hris"], + color: "color", + slug: "slug", + passthrough_available: true, + available_model_operations: [ + { + model_name: "Candidate", + available_operations: ["FETCH", "CREATE"], + required_post_parameters: ["remote_user_id"], + supported_fields: ["first_name", "last_name", "company", "title"], + }, + ], + }, + account_type: "PRODUCTION", + completed_at: "2024-08-26T20:11:19Z", + integration_specific_fields: { integration_specific_field: "Varies by platform" }, + }, + ], + }; + server + .mockEndpoint() + .get("/ats/v1/linked-accounts") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.linkedAccounts.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "e59b1821-f85c-4e28-a6b3-1804156f3563", + category: "hris", + status: "COMPLETE", + statusDetail: "Invalid login credentials", + endUserOriginId: "3ac95cde-6c7f-4eef-afec-be710b42308d", + endUserOrganizationName: "Foo Bar, LLC", + endUserEmailAddress: "hradmin@foobar.dev", + subdomain: "foobar", + webhookListenerUrl: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + isDuplicate: true, + integration: { + name: "name", + categories: ["hris"], + color: "color", + slug: "slug", + passthroughAvailable: true, + availableModelOperations: [ + { + modelName: "Candidate", + availableOperations: ["FETCH", "CREATE"], + requiredPostParameters: ["remote_user_id"], + supportedFields: ["first_name", "last_name", "company", "title"], + }, + ], + }, + accountType: "PRODUCTION", + completedAt: new Date("2024-08-26T20:11:19.000Z"), + integrationSpecificFields: { + integration_specific_field: "Varies by platform", + }, + }, + ], + }); + }); +}); diff --git a/tests/wire/ats/offers.test.ts b/tests/wire/ats/offers.test.ts new file mode 100644 index 000000000..ae53b9e42 --- /dev/null +++ b/tests/wire/ats/offers.test.ts @@ -0,0 +1,132 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Offers", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "dd85625c-6a59-446f-a317-6de64d83bae7", + remote_id: "9876", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + application: "application", + creator: "creator", + remote_created_at: "2021-10-15T00:00:00Z", + closed_at: "2021-10-16T00:00:00Z", + sent_at: "2021-10-15T00:00:00Z", + start_date: "2021-11-15T00:00:00Z", + status: "DRAFT", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/offers", data: ["Varies by platform"] }], + }, + ], + }; + server.mockEndpoint().get("/ats/v1/offers").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.ats.offers.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "dd85625c-6a59-446f-a317-6de64d83bae7", + remoteId: "9876", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + application: "application", + creator: "creator", + remoteCreatedAt: new Date("2021-10-15T00:00:00.000Z"), + closedAt: new Date("2021-10-16T00:00:00.000Z"), + sentAt: new Date("2021-10-15T00:00:00.000Z"), + startDate: new Date("2021-11-15T00:00:00.000Z"), + status: "DRAFT", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/offers", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "dd85625c-6a59-446f-a317-6de64d83bae7", + remote_id: "9876", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + application: "application", + creator: "creator", + remote_created_at: "2021-10-15T00:00:00Z", + closed_at: "2021-10-16T00:00:00Z", + sent_at: "2021-10-15T00:00:00Z", + start_date: "2021-11-15T00:00:00Z", + status: "DRAFT", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/offers", data: ["Varies by platform"] }], + }; + server.mockEndpoint().get("/ats/v1/offers/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.ats.offers.retrieve("id"); + expect(response).toEqual({ + id: "dd85625c-6a59-446f-a317-6de64d83bae7", + remoteId: "9876", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + application: "application", + creator: "creator", + remoteCreatedAt: new Date("2021-10-15T00:00:00.000Z"), + closedAt: new Date("2021-10-16T00:00:00.000Z"), + sentAt: new Date("2021-10-15T00:00:00.000Z"), + startDate: new Date("2021-11-15T00:00:00.000Z"), + status: "DRAFT", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/offers", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/ats/offices.test.ts b/tests/wire/ats/offices.test.ts new file mode 100644 index 000000000..c048f8972 --- /dev/null +++ b/tests/wire/ats/offices.test.ts @@ -0,0 +1,112 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Offices", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "9871b4a9-f5d2-4f3b-a66b-dfedbed42c46", + remote_id: "876556788", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "SF Office", + location: "Embarcadero Center 2", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/locations", data: ["Varies by platform"] }], + }, + ], + }; + server.mockEndpoint().get("/ats/v1/offices").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.ats.offices.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "9871b4a9-f5d2-4f3b-a66b-dfedbed42c46", + remoteId: "876556788", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "SF Office", + location: "Embarcadero Center 2", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/locations", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "9871b4a9-f5d2-4f3b-a66b-dfedbed42c46", + remote_id: "876556788", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "SF Office", + location: "Embarcadero Center 2", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/locations", data: ["Varies by platform"] }], + }; + server.mockEndpoint().get("/ats/v1/offices/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.ats.offices.retrieve("id"); + expect(response).toEqual({ + id: "9871b4a9-f5d2-4f3b-a66b-dfedbed42c46", + remoteId: "876556788", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "SF Office", + location: "Embarcadero Center 2", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/locations", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/ats/passthrough.test.ts b/tests/wire/ats/passthrough.test.ts new file mode 100644 index 000000000..5f2d5a05e --- /dev/null +++ b/tests/wire/ats/passthrough.test.ts @@ -0,0 +1,52 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Passthrough", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { method: "GET", path: "/scooters" }; + const rawResponseBody = { + method: "GET", + path: "/scooters", + status: 200, + response: { key: "value" }, + response_headers: { "X-Page-Token": "value" }, + response_type: "JSON", + headers: { "EXTRA-HEADER": "value", Authorization: "" }, + }; + server + .mockEndpoint() + .post("/ats/v1/passthrough") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.passthrough.create({ + method: "GET", + path: "/scooters", + }); + expect(response).toEqual({ + method: "GET", + path: "/scooters", + status: 200, + response: { + key: "value", + }, + responseHeaders: { + "X-Page-Token": "value", + }, + responseType: "JSON", + headers: { + "EXTRA-HEADER": "value", + Authorization: "", + }, + }); + }); +}); diff --git a/tests/wire/ats/regenerateKey.test.ts b/tests/wire/ats/regenerateKey.test.ts new file mode 100644 index 000000000..432423882 --- /dev/null +++ b/tests/wire/ats/regenerateKey.test.ts @@ -0,0 +1,34 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("RegenerateKey", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { name: "Remote Deployment Key 1" }; + const rawResponseBody = { + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }; + server + .mockEndpoint() + .post("/ats/v1/regenerate-key") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.regenerateKey.create({ + name: "Remote Deployment Key 1", + }); + expect(response).toEqual({ + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }); + }); +}); diff --git a/tests/wire/ats/rejectReasons.test.ts b/tests/wire/ats/rejectReasons.test.ts new file mode 100644 index 000000000..51707ecb5 --- /dev/null +++ b/tests/wire/ats/rejectReasons.test.ts @@ -0,0 +1,120 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("RejectReasons", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "8be99a4a-f8d4-4339-bf1e-30eac970e217", + remote_id: "876556788", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Not passionate enough about APIs.", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/rejection-reasons", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/ats/v1/reject-reasons") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.rejectReasons.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "8be99a4a-f8d4-4339-bf1e-30eac970e217", + remoteId: "876556788", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Not passionate enough about APIs.", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/rejection-reasons", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "8be99a4a-f8d4-4339-bf1e-30eac970e217", + remote_id: "876556788", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Not passionate enough about APIs.", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/rejection-reasons", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/ats/v1/reject-reasons/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.rejectReasons.retrieve("id"); + expect(response).toEqual({ + id: "8be99a4a-f8d4-4339-bf1e-30eac970e217", + remoteId: "876556788", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Not passionate enough about APIs.", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/rejection-reasons", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/ats/scopes.test.ts b/tests/wire/ats/scopes.test.ts new file mode 100644 index 000000000..196dfc934 --- /dev/null +++ b/tests/wire/ats/scopes.test.ts @@ -0,0 +1,281 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Scopes", () => { + test("default_scopes_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabled_fields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }; + server + .mockEndpoint() + .get("/ats/v1/default-scopes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.scopes.defaultScopesRetrieve(); + expect(response).toEqual({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabledFields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }); + }); + + test("linked_account_scopes_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabled_fields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }; + server + .mockEndpoint() + .get("/ats/v1/linked-account-scopes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.scopes.linkedAccountScopesRetrieve(); + expect(response).toEqual({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabledFields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }); + }); + + test("linked_account_scopes_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: ["avatar", "home_location"], + disabled_fields: ["work_location"], + }, + }, + { model_name: "Benefit", model_permissions: { WRITE: { is_enabled: false } } }, + ], + }; + const rawResponseBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabled_fields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }; + server + .mockEndpoint() + .post("/ats/v1/linked-account-scopes") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.scopes.linkedAccountScopesCreate({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: ["avatar", "home_location"], + disabledFields: ["work_location"], + }, + }, + { + modelName: "Benefit", + modelPermissions: { + WRITE: { + isEnabled: false, + }, + }, + }, + ], + }); + expect(response).toEqual({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabledFields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }); + }); +}); diff --git a/tests/wire/ats/scorecards.test.ts b/tests/wire/ats/scorecards.test.ts new file mode 100644 index 000000000..7d0f5122a --- /dev/null +++ b/tests/wire/ats/scorecards.test.ts @@ -0,0 +1,134 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Scorecards", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3eab2f17-eeb1-450d-97f0-029d8be1e06f", + remote_id: "22234", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + application: "application", + interview: "interview", + interviewer: "interviewer", + remote_created_at: "2021-10-15T00:00:00Z", + submitted_at: "2021-10-15T00:00:00Z", + overall_recommendation: "DEFINITELY_NO", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/ratings", data: ["Varies by platform"] }], + }, + ], + }; + server.mockEndpoint().get("/ats/v1/scorecards").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.ats.scorecards.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3eab2f17-eeb1-450d-97f0-029d8be1e06f", + remoteId: "22234", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + application: "application", + interview: "interview", + interviewer: "interviewer", + remoteCreatedAt: new Date("2021-10-15T00:00:00.000Z"), + submittedAt: new Date("2021-10-15T00:00:00.000Z"), + overallRecommendation: "DEFINITELY_NO", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/ratings", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "3eab2f17-eeb1-450d-97f0-029d8be1e06f", + remote_id: "22234", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + application: "application", + interview: "interview", + interviewer: "interviewer", + remote_created_at: "2021-10-15T00:00:00Z", + submitted_at: "2021-10-15T00:00:00Z", + overall_recommendation: "DEFINITELY_NO", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/ratings", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/ats/v1/scorecards/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.scorecards.retrieve("id"); + expect(response).toEqual({ + id: "3eab2f17-eeb1-450d-97f0-029d8be1e06f", + remoteId: "22234", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + application: "application", + interview: "interview", + interviewer: "interviewer", + remoteCreatedAt: new Date("2021-10-15T00:00:00.000Z"), + submittedAt: new Date("2021-10-15T00:00:00.000Z"), + overallRecommendation: "DEFINITELY_NO", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/ratings", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/ats/syncStatus.test.ts b/tests/wire/ats/syncStatus.test.ts new file mode 100644 index 000000000..3fed297aa --- /dev/null +++ b/tests/wire/ats/syncStatus.test.ts @@ -0,0 +1,57 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("SyncStatus", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + model_name: "Candidate", + model_id: "ats.Candidate", + last_sync_start: "2021-03-30T19:44:18Z", + next_sync_start: "2021-03-30T20:44:18Z", + last_sync_result: "SYNCING", + last_sync_finished: "2021-03-30T19:55:18Z", + status: "SYNCING", + is_initial_sync: true, + selective_sync_configurations_usage: "IN_NEXT_SYNC", + }, + ], + }; + server + .mockEndpoint() + .get("/ats/v1/sync-status") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.syncStatus.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + modelName: "Candidate", + modelId: "ats.Candidate", + lastSyncStart: new Date("2021-03-30T19:44:18.000Z"), + nextSyncStart: new Date("2021-03-30T20:44:18.000Z"), + lastSyncResult: "SYNCING", + lastSyncFinished: new Date("2021-03-30T19:55:18.000Z"), + status: "SYNCING", + isInitialSync: true, + selectiveSyncConfigurationsUsage: "IN_NEXT_SYNC", + }, + ], + }); + }); +}); diff --git a/tests/wire/ats/tags.test.ts b/tests/wire/ats/tags.test.ts new file mode 100644 index 000000000..def71d17f --- /dev/null +++ b/tests/wire/ats/tags.test.ts @@ -0,0 +1,62 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Tags", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + remote_id: "4567", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "High-Priority", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/tags", data: ["Varies by platform"] }], + }, + ], + }; + server.mockEndpoint().get("/ats/v1/tags").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.ats.tags.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + remoteId: "4567", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "High-Priority", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/tags", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); +}); diff --git a/tests/wire/ats/users.test.ts b/tests/wire/ats/users.test.ts new file mode 100644 index 000000000..115e93284 --- /dev/null +++ b/tests/wire/ats/users.test.ts @@ -0,0 +1,128 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Users", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b82302de-852e-4e60-b050-edf9da3b7c02", + remote_id: "344321", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + first_name: "Shensi", + last_name: "Ding", + email: "hello@merge.dev", + disabled: true, + remote_created_at: "2020-11-10T00:00:00Z", + access_role: "SUPER_ADMIN", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/users", data: ["Varies by platform"] }], + }, + ], + }; + server.mockEndpoint().get("/ats/v1/users").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.ats.users.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b82302de-852e-4e60-b050-edf9da3b7c02", + remoteId: "344321", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + firstName: "Shensi", + lastName: "Ding", + email: "hello@merge.dev", + disabled: true, + remoteCreatedAt: new Date("2020-11-10T00:00:00.000Z"), + accessRole: "SUPER_ADMIN", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/users", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "b82302de-852e-4e60-b050-edf9da3b7c02", + remote_id: "344321", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + first_name: "Shensi", + last_name: "Ding", + email: "hello@merge.dev", + disabled: true, + remote_created_at: "2020-11-10T00:00:00Z", + access_role: "SUPER_ADMIN", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/users", data: ["Varies by platform"] }], + }; + server.mockEndpoint().get("/ats/v1/users/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.ats.users.retrieve("id"); + expect(response).toEqual({ + id: "b82302de-852e-4e60-b050-edf9da3b7c02", + remoteId: "344321", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + firstName: "Shensi", + lastName: "Ding", + email: "hello@merge.dev", + disabled: true, + remoteCreatedAt: new Date("2020-11-10T00:00:00.000Z"), + accessRole: "SUPER_ADMIN", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/users", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/ats/webhookReceivers.test.ts b/tests/wire/ats/webhookReceivers.test.ts new file mode 100644 index 000000000..80422d8ce --- /dev/null +++ b/tests/wire/ats/webhookReceivers.test.ts @@ -0,0 +1,56 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("WebhookReceivers", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = [{ event: "event", is_active: true, key: "key" }]; + server + .mockEndpoint() + .get("/ats/v1/webhook-receivers") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.webhookReceivers.list(); + expect(response).toEqual([ + { + event: "event", + isActive: true, + key: "key", + }, + ]); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { event: "event", is_active: true }; + const rawResponseBody = { event: "event", is_active: true, key: "key" }; + server + .mockEndpoint() + .post("/ats/v1/webhook-receivers") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ats.webhookReceivers.create({ + event: "event", + isActive: true, + }); + expect(response).toEqual({ + event: "event", + isActive: true, + key: "key", + }); + }); +}); diff --git a/tests/wire/crm/accountDetails.test.ts b/tests/wire/crm/accountDetails.test.ts new file mode 100644 index 000000000..976a02b5e --- /dev/null +++ b/tests/wire/crm/accountDetails.test.ts @@ -0,0 +1,51 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AccountDetails", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + integration: "BambooHR", + integration_slug: "bamboohr", + category: "hris", + end_user_origin_id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + end_user_organization_name: "Waystar Royco", + end_user_email_address: "kendall.roy@waystar-royco.com", + status: "COMPLETE", + webhook_listener_url: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + is_duplicate: true, + account_type: "PRODUCTION", + completed_at: "2024-08-26T20:11:19Z", + }; + server + .mockEndpoint() + .get("/crm/v1/account-details") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.accountDetails.retrieve(); + expect(response).toEqual({ + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + integration: "BambooHR", + integrationSlug: "bamboohr", + category: "hris", + endUserOriginId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + endUserOrganizationName: "Waystar Royco", + endUserEmailAddress: "kendall.roy@waystar-royco.com", + status: "COMPLETE", + webhookListenerUrl: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + isDuplicate: true, + accountType: "PRODUCTION", + completedAt: new Date("2024-08-26T20:11:19.000Z"), + }); + }); +}); diff --git a/tests/wire/crm/accountToken.test.ts b/tests/wire/crm/accountToken.test.ts new file mode 100644 index 000000000..79ab9204d --- /dev/null +++ b/tests/wire/crm/accountToken.test.ts @@ -0,0 +1,59 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AccountToken", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + account_token: "T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB", + integration: { + name: "name", + abbreviated_name: "abbreviated_name", + categories: ["hris"], + image: "image", + square_image: "square_image", + color: "color", + slug: "slug", + api_endpoints_to_documentation_urls: { key: "value" }, + webhook_setup_guide_url: "webhook_setup_guide_url", + category_beta_status: { key: "value" }, + }, + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + }; + server + .mockEndpoint() + .get("/crm/v1/account-token/public_token") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.accountToken.retrieve("public_token"); + expect(response).toEqual({ + accountToken: "T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB", + integration: { + name: "name", + abbreviatedName: "abbreviated_name", + categories: ["hris"], + image: "image", + squareImage: "square_image", + color: "color", + slug: "slug", + apiEndpointsToDocumentationUrls: { + key: "value", + }, + webhookSetupGuideUrl: "webhook_setup_guide_url", + categoryBetaStatus: { + key: "value", + }, + }, + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + }); + }); +}); diff --git a/tests/wire/crm/accounts.test.ts b/tests/wire/crm/accounts.test.ts new file mode 100644 index 000000000..01605372a --- /dev/null +++ b/tests/wire/crm/accounts.test.ts @@ -0,0 +1,1484 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Accounts", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + owner: "owner", + name: "Merge API", + description: "One API for all integrations", + industry: "API's", + website: "https://merge.dev/", + number_of_employees: 276000, + addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + street_1: "50 Bowling Green Dr", + street_2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postal_code: "94122", + country: "US", + address_type: "Shipping", + }, + ], + phone_numbers: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + phone_number: "+16788879833", + phone_number_type: "Mobile", + }, + ], + last_activity_at: "2022-02-10T00:00:00Z", + remote_updated_at: "2022-01-09T00:00:00Z", + remote_created_at: "2021-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/accounts", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + }; + server.mockEndpoint().get("/crm/v1/accounts").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.crm.accounts.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + owner: "owner", + name: "Merge API", + description: "One API for all integrations", + industry: "API's", + website: "https://merge.dev/", + numberOfEmployees: 276000, + addresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + street1: "50 Bowling Green Dr", + street2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postalCode: "94122", + country: "US", + addressType: "Shipping", + }, + ], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + phoneNumber: "+16788879833", + phoneNumberType: "Mobile", + }, + ], + lastActivityAt: new Date("2022-02-10T00:00:00.000Z"), + remoteUpdatedAt: new Date("2022-01-09T00:00:00.000Z"), + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/accounts", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + owner: "owner", + name: "Merge API", + description: "One API for all integrations", + industry: "API's", + website: "https://merge.dev/", + number_of_employees: 276000, + addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + street_1: "50 Bowling Green Dr", + street_2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postal_code: "94122", + country: "US", + address_type: "Shipping", + }, + ], + phone_numbers: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + phone_number: "+16788879833", + phone_number_type: "Mobile", + }, + ], + last_activity_at: "2022-02-10T00:00:00Z", + remote_updated_at: "2022-01-09T00:00:00Z", + remote_created_at: "2021-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/accounts", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/crm/v1/accounts") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.accounts.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + owner: "owner", + name: "Merge API", + description: "One API for all integrations", + industry: "API's", + website: "https://merge.dev/", + numberOfEmployees: 276000, + addresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + street1: "50 Bowling Green Dr", + street2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postalCode: "94122", + country: "US", + addressType: "Shipping", + }, + ], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + phoneNumber: "+16788879833", + phoneNumberType: "Mobile", + }, + ], + lastActivityAt: new Date("2022-02-10T00:00:00.000Z"), + remoteUpdatedAt: new Date("2022-01-09T00:00:00.000Z"), + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/accounts", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + owner: "owner", + name: "Merge API", + description: "One API for all integrations", + industry: "API's", + website: "https://merge.dev/", + number_of_employees: 276000, + addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + street_1: "50 Bowling Green Dr", + street_2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postal_code: "94122", + country: "US", + address_type: "Shipping", + }, + ], + phone_numbers: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + phone_number: "+16788879833", + phone_number_type: "Mobile", + }, + ], + last_activity_at: "2022-02-10T00:00:00Z", + remote_updated_at: "2022-01-09T00:00:00Z", + remote_created_at: "2021-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/accounts", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class", value: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/crm/v1/accounts/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.accounts.retrieve("id"); + expect(response).toEqual({ + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + owner: "owner", + name: "Merge API", + description: "One API for all integrations", + industry: "API's", + website: "https://merge.dev/", + numberOfEmployees: 276000, + addresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + street1: "50 Bowling Green Dr", + street2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postalCode: "94122", + country: "US", + addressType: "Shipping", + }, + ], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + phoneNumber: "+16788879833", + phoneNumberType: "Mobile", + }, + ], + lastActivityAt: new Date("2022-02-10T00:00:00.000Z"), + remoteUpdatedAt: new Date("2022-01-09T00:00:00.000Z"), + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/accounts", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + value: { + key: "value", + }, + }, + ], + }); + }); + + test("partialUpdate", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + owner: "owner", + name: "Merge API", + description: "One API for all integrations", + industry: "API's", + website: "https://merge.dev/", + number_of_employees: 276000, + addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + street_1: "50 Bowling Green Dr", + street_2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postal_code: "94122", + country: "US", + address_type: "Shipping", + }, + ], + phone_numbers: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + phone_number: "+16788879833", + phone_number_type: "Mobile", + }, + ], + last_activity_at: "2022-02-10T00:00:00Z", + remote_updated_at: "2022-01-09T00:00:00Z", + remote_created_at: "2021-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/accounts", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .patch("/crm/v1/accounts/id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.accounts.partialUpdate("id", { + model: {}, + }); + expect(response).toEqual({ + model: { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + owner: "owner", + name: "Merge API", + description: "One API for all integrations", + industry: "API's", + website: "https://merge.dev/", + numberOfEmployees: 276000, + addresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + street1: "50 Bowling Green Dr", + street2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postalCode: "94122", + country: "US", + addressType: "Shipping", + }, + ], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + phoneNumber: "+16788879833", + phoneNumberType: "Mobile", + }, + ], + lastActivityAt: new Date("2022-02-10T00:00:00.000Z"), + remoteUpdatedAt: new Date("2022-01-09T00:00:00.000Z"), + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/accounts", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("metaPatchRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/crm/v1/accounts/meta/patch/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.accounts.metaPatchRetrieve("id"); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/crm/v1/accounts/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.accounts.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("remoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: [{}], + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/accounts/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.accounts.remoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: [{}], + }, + ], + }); + }); +}); diff --git a/tests/wire/crm/associationTypes.test.ts b/tests/wire/crm/associationTypes.test.ts new file mode 100644 index 000000000..2b275fb1b --- /dev/null +++ b/tests/wire/crm/associationTypes.test.ts @@ -0,0 +1,679 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AssociationTypes", () => { + test("custom_object_classes_association_types_list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "5bb73c32-3c6c-4757-ab7d-7d3540a1be31", + remote_id: "93", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + source_object_class: { id: "ff1ff4cb-a66b-47dc-8e2a-50388049e602", origin_type: "CUSTOM_OBJECT" }, + target_object_classes: [{ id: "Opportunity", origin_type: "COMMON_MODEL" }], + remote_key_name: "order_to_opportunity", + display_name: "Order to Opportunity", + cardinality: "ONE_TO_ONE", + is_required: true, + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/custom-object-classes/custom_object_class_id/association-types") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = + await client.crm.associationTypes.customObjectClassesAssociationTypesList("custom_object_class_id"); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "5bb73c32-3c6c-4757-ab7d-7d3540a1be31", + remoteId: "93", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + sourceObjectClass: { + id: "ff1ff4cb-a66b-47dc-8e2a-50388049e602", + origin_type: "CUSTOM_OBJECT", + }, + targetObjectClasses: [ + { + id: "Opportunity", + originType: "COMMON_MODEL", + }, + ], + remoteKeyName: "order_to_opportunity", + displayName: "Order to Opportunity", + cardinality: "ONE_TO_ONE", + isRequired: true, + }, + ], + }); + }); + + test("custom_object_classes_association_types_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { + model: { + source_object_class: { id: "id", origin_type: "CUSTOM_OBJECT" }, + target_object_classes: [{ id: "id", origin_type: "CUSTOM_OBJECT" }], + remote_key_name: "remote_key_name", + }, + }; + const rawResponseBody = { + model: { + id: "5bb73c32-3c6c-4757-ab7d-7d3540a1be31", + remote_id: "93", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + source_object_class: { id: "ff1ff4cb-a66b-47dc-8e2a-50388049e602", origin_type: "CUSTOM_OBJECT" }, + target_object_classes: [{ id: "Opportunity", origin_type: "COMMON_MODEL" }], + remote_key_name: "order_to_opportunity", + display_name: "Order to Opportunity", + cardinality: "ONE_TO_ONE", + is_required: true, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/crm/v1/custom-object-classes/custom_object_class_id/association-types") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.associationTypes.customObjectClassesAssociationTypesCreate( + "custom_object_class_id", + { + model: { + sourceObjectClass: { + id: "id", + originType: "CUSTOM_OBJECT", + }, + targetObjectClasses: [ + { + id: "id", + originType: "CUSTOM_OBJECT", + }, + ], + remoteKeyName: "remote_key_name", + }, + }, + ); + expect(response).toEqual({ + model: { + id: "5bb73c32-3c6c-4757-ab7d-7d3540a1be31", + remoteId: "93", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + sourceObjectClass: { + id: "ff1ff4cb-a66b-47dc-8e2a-50388049e602", + origin_type: "CUSTOM_OBJECT", + }, + targetObjectClasses: [ + { + id: "Opportunity", + originType: "COMMON_MODEL", + }, + ], + remoteKeyName: "order_to_opportunity", + displayName: "Order to Opportunity", + cardinality: "ONE_TO_ONE", + isRequired: true, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("custom_object_classes_association_types_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "5bb73c32-3c6c-4757-ab7d-7d3540a1be31", + remote_id: "93", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + source_object_class: { id: "ff1ff4cb-a66b-47dc-8e2a-50388049e602", origin_type: "CUSTOM_OBJECT" }, + target_object_classes: [ + { + id: "Opportunity", + created_at: "2024-01-15T09:30:00Z", + modified_at: "2024-01-15T09:30:00Z", + origin_type: "COMMON_MODEL", + }, + ], + remote_key_name: "order_to_opportunity", + display_name: "Order to Opportunity", + cardinality: "ONE_TO_ONE", + is_required: true, + }; + server + .mockEndpoint() + .get("/crm/v1/custom-object-classes/custom_object_class_id/association-types/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.associationTypes.customObjectClassesAssociationTypesRetrieve( + "custom_object_class_id", + "id", + ); + expect(response).toEqual({ + id: "5bb73c32-3c6c-4757-ab7d-7d3540a1be31", + remoteId: "93", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + sourceObjectClass: { + id: "ff1ff4cb-a66b-47dc-8e2a-50388049e602", + origin_type: "CUSTOM_OBJECT", + }, + targetObjectClasses: [ + { + id: "Opportunity", + createdAt: new Date("2024-01-15T09:30:00.000Z"), + modifiedAt: new Date("2024-01-15T09:30:00.000Z"), + originType: "COMMON_MODEL", + }, + ], + remoteKeyName: "order_to_opportunity", + displayName: "Order to Opportunity", + cardinality: "ONE_TO_ONE", + isRequired: true, + }); + }); + + test("custom_object_classes_association_types_meta_post_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/crm/v1/custom-object-classes/custom_object_class_id/association-types/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = + await client.crm.associationTypes.customObjectClassesAssociationTypesMetaPostRetrieve( + "custom_object_class_id", + ); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/crm/associations.test.ts b/tests/wire/crm/associations.test.ts new file mode 100644 index 000000000..909a83978 --- /dev/null +++ b/tests/wire/crm/associations.test.ts @@ -0,0 +1,89 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Associations", () => { + test("custom_object_classes_custom_objects_associations_list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + source_object: "a8f5d29f-4e50-473f-8f12-27128ffcd37a", + target_object: "da0b1963-be70-469c-9f8c-06a81d0fe759", + association_type: "association_type", + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/custom-object-classes/custom_object_class_id/custom-objects/object_id/associations") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.associations.customObjectClassesCustomObjectsAssociationsList( + "custom_object_class_id", + "object_id", + ); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + sourceObject: "a8f5d29f-4e50-473f-8f12-27128ffcd37a", + targetObject: "da0b1963-be70-469c-9f8c-06a81d0fe759", + associationType: "association_type", + }, + ], + }); + }); + + test("custom_object_classes_custom_objects_associations_update", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + source_object: "a8f5d29f-4e50-473f-8f12-27128ffcd37a", + target_object: "da0b1963-be70-469c-9f8c-06a81d0fe759", + association_type: "association_type", + }; + server + .mockEndpoint() + .put( + "/crm/v1/custom-object-classes/source_class_id/custom-objects/source_object_id/associations/target_class_id/target_object_id/association_type_id", + ) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.associations.customObjectClassesCustomObjectsAssociationsUpdate( + "association_type_id", + "source_class_id", + "source_object_id", + "target_class_id", + "target_object_id", + ); + expect(response).toEqual({ + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + sourceObject: "a8f5d29f-4e50-473f-8f12-27128ffcd37a", + targetObject: "da0b1963-be70-469c-9f8c-06a81d0fe759", + associationType: "association_type", + }); + }); +}); diff --git a/tests/wire/crm/asyncPassthrough.test.ts b/tests/wire/crm/asyncPassthrough.test.ts new file mode 100644 index 000000000..e5a5f7888 --- /dev/null +++ b/tests/wire/crm/asyncPassthrough.test.ts @@ -0,0 +1,71 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AsyncPassthrough", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { method: "GET", path: "/scooters" }; + const rawResponseBody = { async_passthrough_receipt_id: "fd29020f-2695-445e-922e-dcd5e81903fd" }; + server + .mockEndpoint() + .post("/crm/v1/async-passthrough") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.asyncPassthrough.create({ + method: "GET", + path: "/scooters", + }); + expect(response).toEqual({ + asyncPassthroughReceiptId: "fd29020f-2695-445e-922e-dcd5e81903fd", + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + method: "GET", + path: "/scooters", + status: 200, + response: { key: "value" }, + response_headers: { "X-Page-Token": "value" }, + response_type: "JSON", + headers: { "EXTRA-HEADER": "value", Authorization: "" }, + }; + server + .mockEndpoint() + .get("/crm/v1/async-passthrough/async_passthrough_receipt_id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.asyncPassthrough.retrieve("async_passthrough_receipt_id"); + expect(response).toEqual({ + method: "GET", + path: "/scooters", + status: 200, + response: { + key: "value", + }, + responseHeaders: { + "X-Page-Token": "value", + }, + responseType: "JSON", + headers: { + "EXTRA-HEADER": "value", + Authorization: "", + }, + }); + }); +}); diff --git a/tests/wire/crm/auditTrail.test.ts b/tests/wire/crm/auditTrail.test.ts new file mode 100644 index 000000000..4e5821cbf --- /dev/null +++ b/tests/wire/crm/auditTrail.test.ts @@ -0,0 +1,57 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AuditTrail", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b5ceea2a-7171-47ce-8090-165cfce5572c", + user_name: "Gil Feig", + user_email: "hello@merge.dev", + role: "ADMIN", + ip_address: "192.0.2.123", + event_type: "CREATED_REMOTE_PRODUCTION_API_KEY", + event_description: + "Organization-wide Scopes for model hris.Employee updated from Read to Read+Write", + created_at: "2024-01-15T09:30:00Z", + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/audit-trail") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.auditTrail.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b5ceea2a-7171-47ce-8090-165cfce5572c", + userName: "Gil Feig", + userEmail: "hello@merge.dev", + role: "ADMIN", + ipAddress: "192.0.2.123", + eventType: "CREATED_REMOTE_PRODUCTION_API_KEY", + eventDescription: + "Organization-wide Scopes for model hris.Employee updated from Read to Read+Write", + createdAt: new Date("2024-01-15T09:30:00.000Z"), + }, + ], + }); + }); +}); diff --git a/tests/wire/crm/availableActions.test.ts b/tests/wire/crm/availableActions.test.ts new file mode 100644 index 000000000..eb6eb04ab --- /dev/null +++ b/tests/wire/crm/availableActions.test.ts @@ -0,0 +1,73 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AvailableActions", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + integration: { + name: "name", + abbreviated_name: "abbreviated_name", + categories: ["hris"], + image: "image", + square_image: "square_image", + color: "color", + slug: "slug", + api_endpoints_to_documentation_urls: { key: "value" }, + webhook_setup_guide_url: "webhook_setup_guide_url", + category_beta_status: { key: "value" }, + }, + passthrough_available: true, + available_model_operations: [ + { + model_name: "Candidate", + available_operations: ["FETCH", "CREATE"], + required_post_parameters: ["remote_user_id"], + supported_fields: ["first_name", "last_name", "company", "title"], + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/available-actions") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.availableActions.retrieve(); + expect(response).toEqual({ + integration: { + name: "name", + abbreviatedName: "abbreviated_name", + categories: ["hris"], + image: "image", + squareImage: "square_image", + color: "color", + slug: "slug", + apiEndpointsToDocumentationUrls: { + key: "value", + }, + webhookSetupGuideUrl: "webhook_setup_guide_url", + categoryBetaStatus: { + key: "value", + }, + }, + passthroughAvailable: true, + availableModelOperations: [ + { + modelName: "Candidate", + availableOperations: ["FETCH", "CREATE"], + requiredPostParameters: ["remote_user_id"], + supportedFields: ["first_name", "last_name", "company", "title"], + }, + ], + }); + }); +}); diff --git a/tests/wire/crm/contacts.test.ts b/tests/wire/crm/contacts.test.ts new file mode 100644 index 000000000..9e251ca38 --- /dev/null +++ b/tests/wire/crm/contacts.test.ts @@ -0,0 +1,1543 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Contacts", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + first_name: "Gil", + last_name: "Feig", + account: "account", + owner: "owner", + addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + street_1: "50 Bowling Green Dr", + street_2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postal_code: "94122", + country: "US", + address_type: "Shipping", + }, + ], + email_addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + email_address: "hello@merge.dev", + email_address_type: "Work", + }, + ], + phone_numbers: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + phone_number: "+13785579223", + phone_number_type: "Mobile", + }, + ], + last_activity_at: "2022-02-10T00:00:00Z", + remote_created_at: "2021-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/contacts", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + }; + server.mockEndpoint().get("/crm/v1/contacts").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.crm.contacts.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + firstName: "Gil", + lastName: "Feig", + account: "account", + owner: "owner", + addresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + street1: "50 Bowling Green Dr", + street2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postalCode: "94122", + country: "US", + addressType: "Shipping", + }, + ], + emailAddresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + emailAddress: "hello@merge.dev", + emailAddressType: "Work", + }, + ], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + phoneNumber: "+13785579223", + phoneNumberType: "Mobile", + }, + ], + lastActivityAt: new Date("2022-02-10T00:00:00.000Z"), + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/contacts", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + first_name: "Gil", + last_name: "Feig", + account: "account", + owner: "owner", + addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + street_1: "50 Bowling Green Dr", + street_2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postal_code: "94122", + country: "US", + address_type: "Shipping", + }, + ], + email_addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + email_address: "hello@merge.dev", + email_address_type: "Work", + }, + ], + phone_numbers: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + phone_number: "+13785579223", + phone_number_type: "Mobile", + }, + ], + last_activity_at: "2022-02-10T00:00:00Z", + remote_created_at: "2021-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/contacts", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/crm/v1/contacts") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.contacts.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + firstName: "Gil", + lastName: "Feig", + account: "account", + owner: "owner", + addresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + street1: "50 Bowling Green Dr", + street2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postalCode: "94122", + country: "US", + addressType: "Shipping", + }, + ], + emailAddresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + emailAddress: "hello@merge.dev", + emailAddressType: "Work", + }, + ], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + phoneNumber: "+13785579223", + phoneNumberType: "Mobile", + }, + ], + lastActivityAt: new Date("2022-02-10T00:00:00.000Z"), + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/contacts", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + first_name: "Gil", + last_name: "Feig", + account: "account", + owner: "owner", + addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + street_1: "50 Bowling Green Dr", + street_2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postal_code: "94122", + country: "US", + address_type: "Shipping", + }, + ], + email_addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + email_address: "hello@merge.dev", + email_address_type: "Work", + }, + ], + phone_numbers: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + phone_number: "+13785579223", + phone_number_type: "Mobile", + }, + ], + last_activity_at: "2022-02-10T00:00:00Z", + remote_created_at: "2021-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/contacts", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class", value: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/crm/v1/contacts/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.contacts.retrieve("id"); + expect(response).toEqual({ + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + firstName: "Gil", + lastName: "Feig", + account: "account", + owner: "owner", + addresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + street1: "50 Bowling Green Dr", + street2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postalCode: "94122", + country: "US", + addressType: "Shipping", + }, + ], + emailAddresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + emailAddress: "hello@merge.dev", + emailAddressType: "Work", + }, + ], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + phoneNumber: "+13785579223", + phoneNumberType: "Mobile", + }, + ], + lastActivityAt: new Date("2022-02-10T00:00:00.000Z"), + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/contacts", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + value: { + key: "value", + }, + }, + ], + }); + }); + + test("partialUpdate", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + first_name: "Gil", + last_name: "Feig", + account: "account", + owner: "owner", + addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + street_1: "50 Bowling Green Dr", + street_2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postal_code: "94122", + country: "US", + address_type: "Shipping", + }, + ], + email_addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + email_address: "hello@merge.dev", + email_address_type: "Work", + }, + ], + phone_numbers: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + phone_number: "+13785579223", + phone_number_type: "Mobile", + }, + ], + last_activity_at: "2022-02-10T00:00:00Z", + remote_created_at: "2021-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/contacts", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .patch("/crm/v1/contacts/id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.contacts.partialUpdate("id", { + model: {}, + }); + expect(response).toEqual({ + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + firstName: "Gil", + lastName: "Feig", + account: "account", + owner: "owner", + addresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + street1: "50 Bowling Green Dr", + street2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postalCode: "94122", + country: "US", + addressType: "Shipping", + }, + ], + emailAddresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + emailAddress: "hello@merge.dev", + emailAddressType: "Work", + }, + ], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + phoneNumber: "+13785579223", + phoneNumberType: "Mobile", + }, + ], + lastActivityAt: new Date("2022-02-10T00:00:00.000Z"), + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/contacts", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("ignoreCreate", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { reason: "GENERAL_CUSTOMER_REQUEST" }; + + server + .mockEndpoint() + .post("/crm/v1/contacts/ignore/model_id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .build(); + + const response = await client.crm.contacts.ignoreCreate("model_id", { + reason: "GENERAL_CUSTOMER_REQUEST", + }); + expect(response).toEqual(undefined); + }); + + test("metaPatchRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/crm/v1/contacts/meta/patch/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.contacts.metaPatchRetrieve("id"); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/crm/v1/contacts/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.contacts.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("remoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: [{}], + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/contacts/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.contacts.remoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: [{}], + }, + ], + }); + }); +}); diff --git a/tests/wire/crm/customObjectClasses.test.ts b/tests/wire/crm/customObjectClasses.test.ts new file mode 100644 index 000000000..83dff2f21 --- /dev/null +++ b/tests/wire/crm/customObjectClasses.test.ts @@ -0,0 +1,232 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("CustomObjectClasses", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ff1ff4cb-a66b-47dc-8e2a-50388049e602", + remote_id: "9579977", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "order", + description: "Order object", + labels: { singular: "Order", plural: "Orders" }, + fields: [ + { + display_name: "Order ID", + remote_key_name: "order_id", + description: "The unique ID for the order.", + is_required: true, + field_type: "string", + field_format: "string", + field_choices: [{}], + }, + { + display_name: "Order Quantity", + remote_key_name: "order_quantity", + description: "The number of items ordered.", + is_required: true, + field_type: "number", + field_format: "number", + field_choices: [{}], + }, + { + display_name: "Customer Type", + remote_key_name: "customer_type", + description: "The type of customer.", + is_required: true, + field_type: "string", + field_format: "enumeration", + field_choices: [{}, {}], + }, + ], + association_types: [{ key: "value" }], + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/custom-object-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.customObjectClasses.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "ff1ff4cb-a66b-47dc-8e2a-50388049e602", + remoteId: "9579977", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "order", + description: "Order object", + labels: { + singular: "Order", + plural: "Orders", + }, + fields: [ + { + displayName: "Order ID", + remoteKeyName: "order_id", + description: "The unique ID for the order.", + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: [{}], + }, + { + displayName: "Order Quantity", + remoteKeyName: "order_quantity", + description: "The number of items ordered.", + isRequired: true, + fieldType: "number", + fieldFormat: "number", + fieldChoices: [{}], + }, + { + displayName: "Customer Type", + remoteKeyName: "customer_type", + description: "The type of customer.", + isRequired: true, + fieldType: "string", + fieldFormat: "enumeration", + fieldChoices: [{}, {}], + }, + ], + associationTypes: [ + { + key: "value", + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "ff1ff4cb-a66b-47dc-8e2a-50388049e602", + remote_id: "9579977", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "order", + description: "Order object", + labels: { singular: "Order", plural: "Orders" }, + fields: [ + { + created_at: "2024-01-15T09:30:00Z", + modified_at: "2024-01-15T09:30:00Z", + display_name: "Order ID", + remote_key_name: "order_id", + description: "The unique ID for the order.", + is_required: true, + field_type: "string", + field_format: "string", + field_choices: [{}], + }, + { + created_at: "2024-01-15T09:30:00Z", + modified_at: "2024-01-15T09:30:00Z", + display_name: "Order Quantity", + remote_key_name: "order_quantity", + description: "The number of items ordered.", + is_required: true, + field_type: "number", + field_format: "number", + field_choices: [{}], + }, + { + created_at: "2024-01-15T09:30:00Z", + modified_at: "2024-01-15T09:30:00Z", + display_name: "Customer Type", + remote_key_name: "customer_type", + description: "The type of customer.", + is_required: true, + field_type: "string", + field_format: "enumeration", + field_choices: [{}, {}], + }, + ], + association_types: [{ key: "value" }], + }; + server + .mockEndpoint() + .get("/crm/v1/custom-object-classes/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.customObjectClasses.retrieve("id"); + expect(response).toEqual({ + id: "ff1ff4cb-a66b-47dc-8e2a-50388049e602", + remoteId: "9579977", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "order", + description: "Order object", + labels: { + singular: "Order", + plural: "Orders", + }, + fields: [ + { + createdAt: new Date("2024-01-15T09:30:00.000Z"), + modifiedAt: new Date("2024-01-15T09:30:00.000Z"), + displayName: "Order ID", + remoteKeyName: "order_id", + description: "The unique ID for the order.", + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: [{}], + }, + { + createdAt: new Date("2024-01-15T09:30:00.000Z"), + modifiedAt: new Date("2024-01-15T09:30:00.000Z"), + displayName: "Order Quantity", + remoteKeyName: "order_quantity", + description: "The number of items ordered.", + isRequired: true, + fieldType: "number", + fieldFormat: "number", + fieldChoices: [{}], + }, + { + createdAt: new Date("2024-01-15T09:30:00.000Z"), + modifiedAt: new Date("2024-01-15T09:30:00.000Z"), + displayName: "Customer Type", + remoteKeyName: "customer_type", + description: "The type of customer.", + isRequired: true, + fieldType: "string", + fieldFormat: "enumeration", + fieldChoices: [{}, {}], + }, + ], + associationTypes: [ + { + key: "value", + }, + ], + }); + }); +}); diff --git a/tests/wire/crm/customObjects.test.ts b/tests/wire/crm/customObjects.test.ts new file mode 100644 index 000000000..34f2b5d56 --- /dev/null +++ b/tests/wire/crm/customObjects.test.ts @@ -0,0 +1,687 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("CustomObjects", () => { + test("custom_object_classes_custom_objects_list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "da0b1963-be70-469c-9f8c-06a81d0fe759", + remote_id: "4183634295", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + object_class: "ff1ff4cb-a66b-47dc-8e2a-50388049e602", + fields: { order_id: "4183634295", order_quantity: 50, customer_type: "Returning" }, + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/custom-object-classes/custom_object_class_id/custom-objects") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.customObjects.customObjectClassesCustomObjectsList("custom_object_class_id"); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "da0b1963-be70-469c-9f8c-06a81d0fe759", + remoteId: "4183634295", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + objectClass: "ff1ff4cb-a66b-47dc-8e2a-50388049e602", + fields: { + order_id: "4183634295", + order_quantity: 50, + customer_type: "Returning", + }, + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + }); + }); + + test("custom_object_classes_custom_objects_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: { fields: { test_field: "hello" } } }; + const rawResponseBody = { + model: { + id: "da0b1963-be70-469c-9f8c-06a81d0fe759", + remote_id: "4183634295", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + object_class: "ff1ff4cb-a66b-47dc-8e2a-50388049e602", + fields: { order_id: "4183634295", order_quantity: 50, customer_type: "Returning" }, + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/crm/v1/custom-object-classes/custom_object_class_id/custom-objects") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.customObjects.customObjectClassesCustomObjectsCreate( + "custom_object_class_id", + { + model: { + fields: { + test_field: "hello", + }, + }, + }, + ); + expect(response).toEqual({ + model: { + id: "da0b1963-be70-469c-9f8c-06a81d0fe759", + remoteId: "4183634295", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + objectClass: "ff1ff4cb-a66b-47dc-8e2a-50388049e602", + fields: { + order_id: "4183634295", + order_quantity: 50, + customer_type: "Returning", + }, + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("custom_object_classes_custom_objects_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "da0b1963-be70-469c-9f8c-06a81d0fe759", + remote_id: "4183634295", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + object_class: "ff1ff4cb-a66b-47dc-8e2a-50388049e602", + fields: { order_id: "4183634295", order_quantity: 50, customer_type: "Returning" }, + remote_fields: [{ remote_field_class: "remote_field_class", value: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/crm/v1/custom-object-classes/custom_object_class_id/custom-objects/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.customObjects.customObjectClassesCustomObjectsRetrieve( + "custom_object_class_id", + "id", + ); + expect(response).toEqual({ + id: "da0b1963-be70-469c-9f8c-06a81d0fe759", + remoteId: "4183634295", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + objectClass: "ff1ff4cb-a66b-47dc-8e2a-50388049e602", + fields: { + order_id: "4183634295", + order_quantity: 50, + customer_type: "Returning", + }, + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + value: { + key: "value", + }, + }, + ], + }); + }); + + test("custom_object_classes_custom_objects_meta_post_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/crm/v1/custom-object-classes/custom_object_class_id/custom-objects/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = + await client.crm.customObjects.customObjectClassesCustomObjectsMetaPostRetrieve("custom_object_class_id"); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("custom_object_classes_custom_objects_remote_field_classes_list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: [{}], + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/custom-object-classes/custom-objects/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.customObjects.customObjectClassesCustomObjectsRemoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: [{}], + }, + ], + }); + }); +}); diff --git a/tests/wire/crm/deleteAccount.test.ts b/tests/wire/crm/deleteAccount.test.ts new file mode 100644 index 000000000..afdefe8e3 --- /dev/null +++ b/tests/wire/crm/deleteAccount.test.ts @@ -0,0 +1,18 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("DeleteAccount", () => { + test("delete", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + server.mockEndpoint().post("/crm/v1/delete-account").respondWith().statusCode(200).build(); + + const response = await client.crm.deleteAccount.delete(); + expect(response).toEqual(undefined); + }); +}); diff --git a/tests/wire/crm/engagementTypes.test.ts b/tests/wire/crm/engagementTypes.test.ts new file mode 100644 index 000000000..1438b35d0 --- /dev/null +++ b/tests/wire/crm/engagementTypes.test.ts @@ -0,0 +1,146 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("EngagementTypes", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + activity_type: "CALL", + name: "First Call", + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/engagement-types") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.engagementTypes.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + activityType: "CALL", + name: "First Call", + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + activity_type: "CALL", + name: "First Call", + remote_fields: [{ remote_field_class: "remote_field_class", value: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/crm/v1/engagement-types/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.engagementTypes.retrieve("id"); + expect(response).toEqual({ + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + activityType: "CALL", + name: "First Call", + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + value: { + key: "value", + }, + }, + ], + }); + }); + + test("remoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: [{}], + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/engagement-types/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.engagementTypes.remoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: [{}], + }, + ], + }); + }); +}); diff --git a/tests/wire/crm/engagements.test.ts b/tests/wire/crm/engagements.test.ts new file mode 100644 index 000000000..9d9280664 --- /dev/null +++ b/tests/wire/crm/engagements.test.ts @@ -0,0 +1,1322 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Engagements", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + owner: "owner", + content: "Call for negotiation", + subject: "Call from customer", + direction: "INBOUND", + engagement_type: "engagement_type", + start_time: "2022-02-10T00:00:00Z", + end_time: "2022-02-10T00:05:00Z", + account: "account", + contacts: ["a7c55bc6-2940-c80a-848e-bbfacbfdf4fg"], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/engagements", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/engagements") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.engagements.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + owner: "owner", + content: "Call for negotiation", + subject: "Call from customer", + direction: "INBOUND", + engagementType: "engagement_type", + startTime: new Date("2022-02-10T00:00:00.000Z"), + endTime: new Date("2022-02-10T00:05:00.000Z"), + account: "account", + contacts: ["a7c55bc6-2940-c80a-848e-bbfacbfdf4fg"], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/engagements", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + owner: "owner", + content: "Call for negotiation", + subject: "Call from customer", + direction: "INBOUND", + engagement_type: "engagement_type", + start_time: "2022-02-10T00:00:00Z", + end_time: "2022-02-10T00:05:00Z", + account: "account", + contacts: ["a7c55bc6-2940-c80a-848e-bbfacbfdf4fg"], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/engagements", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/crm/v1/engagements") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.engagements.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + owner: "owner", + content: "Call for negotiation", + subject: "Call from customer", + direction: "INBOUND", + engagementType: "engagement_type", + startTime: new Date("2022-02-10T00:00:00.000Z"), + endTime: new Date("2022-02-10T00:05:00.000Z"), + account: "account", + contacts: ["a7c55bc6-2940-c80a-848e-bbfacbfdf4fg"], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/engagements", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + owner: "owner", + content: "Call for negotiation", + subject: "Call from customer", + direction: "INBOUND", + engagement_type: "engagement_type", + start_time: "2022-02-10T00:00:00Z", + end_time: "2022-02-10T00:05:00Z", + account: "account", + contacts: ["a7c55bc6-2940-c80a-848e-bbfacbfdf4fg"], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/engagements", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class", value: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/crm/v1/engagements/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.engagements.retrieve("id"); + expect(response).toEqual({ + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + owner: "owner", + content: "Call for negotiation", + subject: "Call from customer", + direction: "INBOUND", + engagementType: "engagement_type", + startTime: new Date("2022-02-10T00:00:00.000Z"), + endTime: new Date("2022-02-10T00:05:00.000Z"), + account: "account", + contacts: ["a7c55bc6-2940-c80a-848e-bbfacbfdf4fg"], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/engagements", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + value: { + key: "value", + }, + }, + ], + }); + }); + + test("partialUpdate", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + owner: "owner", + content: "Call for negotiation", + subject: "Call from customer", + direction: "INBOUND", + engagement_type: "engagement_type", + start_time: "2022-02-10T00:00:00Z", + end_time: "2022-02-10T00:05:00Z", + account: "account", + contacts: ["a7c55bc6-2940-c80a-848e-bbfacbfdf4fg"], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/engagements", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .patch("/crm/v1/engagements/id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.engagements.partialUpdate("id", { + model: {}, + }); + expect(response).toEqual({ + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + owner: "owner", + content: "Call for negotiation", + subject: "Call from customer", + direction: "INBOUND", + engagementType: "engagement_type", + startTime: new Date("2022-02-10T00:00:00.000Z"), + endTime: new Date("2022-02-10T00:05:00.000Z"), + account: "account", + contacts: ["a7c55bc6-2940-c80a-848e-bbfacbfdf4fg"], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/engagements", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("metaPatchRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/crm/v1/engagements/meta/patch/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.engagements.metaPatchRetrieve("id"); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/crm/v1/engagements/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.engagements.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("remoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: [{}], + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/engagements/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.engagements.remoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: [{}], + }, + ], + }); + }); +}); diff --git a/tests/wire/crm/fieldMapping.test.ts b/tests/wire/crm/fieldMapping.test.ts new file mode 100644 index 000000000..2160d0cc9 --- /dev/null +++ b/tests/wire/crm/fieldMapping.test.ts @@ -0,0 +1,1218 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("FieldMapping", () => { + test("field_mappings_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + Account: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Contact: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Lead: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Note: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Opportunity: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Stage: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + User: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Task: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Engagement: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/field-mappings") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.fieldMapping.fieldMappingsRetrieve(); + expect(response).toEqual({ + account: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + contact: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + lead: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + note: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + opportunity: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + stage: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + user: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + task: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + engagement: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + }); + }); + + test("field_mappings_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { + target_field_name: "example_target_field_name", + target_field_description: "this is a example description of the target field", + remote_field_traversal_path: ["example_remote_field"], + remote_method: "GET", + remote_url_path: "/example-url-path", + common_model_name: "ExampleCommonModel", + }; + const rawResponseBody = { + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/crm/v1/field-mappings") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.fieldMapping.fieldMappingsCreate({ + targetFieldName: "example_target_field_name", + targetFieldDescription: "this is a example description of the target field", + remoteFieldTraversalPath: ["example_remote_field"], + remoteMethod: "GET", + remoteUrlPath: "/example-url-path", + commonModelName: "ExampleCommonModel", + }); + expect(response).toEqual({ + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("field_mappings_destroy", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .delete("/crm/v1/field-mappings/field_mapping_id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.fieldMapping.fieldMappingsDestroy("field_mapping_id"); + expect(response).toEqual({ + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("field_mappings_partial_update", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = {}; + const rawResponseBody = { + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .patch("/crm/v1/field-mappings/field_mapping_id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id"); + expect(response).toEqual({ + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("remote_fields_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + Account: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Contact: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Lead: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Note: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Opportunity: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Stage: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + User: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Task: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Engagement: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/remote-fields") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.fieldMapping.remoteFieldsRetrieve(); + expect(response).toEqual({ + account: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + contact: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + lead: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + note: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + opportunity: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + stage: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + user: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + task: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + engagement: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + }); + }); + + test("target_fields_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + Account: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Contact: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Lead: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Note: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Opportunity: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Stage: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + User: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Task: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Engagement: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/target-fields") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.fieldMapping.targetFieldsRetrieve(); + expect(response).toEqual({ + account: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + contact: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + lead: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + note: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + opportunity: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + stage: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + user: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + task: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + engagement: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + }); + }); +}); diff --git a/tests/wire/crm/forceResync.test.ts b/tests/wire/crm/forceResync.test.ts new file mode 100644 index 000000000..c970a86ec --- /dev/null +++ b/tests/wire/crm/forceResync.test.ts @@ -0,0 +1,49 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("ForceResync", () => { + test("sync_status_resync_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = [ + { + model_name: "Account", + model_id: "crm.Account", + last_sync_start: "2021-03-30T19:44:18Z", + next_sync_start: "2021-03-30T20:44:18Z", + last_sync_result: "SYNCING", + last_sync_finished: "2021-03-30T19:55:18Z", + status: "SYNCING", + is_initial_sync: true, + selective_sync_configurations_usage: "IN_NEXT_SYNC", + }, + ]; + server + .mockEndpoint() + .post("/crm/v1/sync-status/resync") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.forceResync.syncStatusResyncCreate(); + expect(response).toEqual([ + { + modelName: "Account", + modelId: "crm.Account", + lastSyncStart: new Date("2021-03-30T19:44:18.000Z"), + nextSyncStart: new Date("2021-03-30T20:44:18.000Z"), + lastSyncResult: "SYNCING", + lastSyncFinished: new Date("2021-03-30T19:55:18.000Z"), + status: "SYNCING", + isInitialSync: true, + selectiveSyncConfigurationsUsage: "IN_NEXT_SYNC", + }, + ]); + }); +}); diff --git a/tests/wire/crm/generateKey.test.ts b/tests/wire/crm/generateKey.test.ts new file mode 100644 index 000000000..943264bd5 --- /dev/null +++ b/tests/wire/crm/generateKey.test.ts @@ -0,0 +1,34 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("GenerateKey", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { name: "Remote Deployment Key 1" }; + const rawResponseBody = { + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }; + server + .mockEndpoint() + .post("/crm/v1/generate-key") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.generateKey.create({ + name: "Remote Deployment Key 1", + }); + expect(response).toEqual({ + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }); + }); +}); diff --git a/tests/wire/crm/issues.test.ts b/tests/wire/crm/issues.test.ts new file mode 100644 index 000000000..b9bc2d678 --- /dev/null +++ b/tests/wire/crm/issues.test.ts @@ -0,0 +1,82 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Issues", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + error_description: "Missing Permissions", + end_user: { key: "value" }, + first_incident_time: "2022-12-05T16:19:15Z", + last_incident_time: "2022-12-05T16:19:15Z", + is_muted: true, + error_details: ["Missing employee permissions.", "Missing time off permissions."], + }, + ], + }; + server.mockEndpoint().get("/crm/v1/issues").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.crm.issues.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + errorDescription: "Missing Permissions", + endUser: { + key: "value", + }, + firstIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + lastIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + isMuted: true, + errorDetails: ["Missing employee permissions.", "Missing time off permissions."], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + error_description: "Missing Permissions", + end_user: { key: "value" }, + first_incident_time: "2022-12-05T16:19:15Z", + last_incident_time: "2022-12-05T16:19:15Z", + is_muted: true, + error_details: ["Missing employee permissions.", "Missing time off permissions."], + }; + server.mockEndpoint().get("/crm/v1/issues/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.crm.issues.retrieve("id"); + expect(response).toEqual({ + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + errorDescription: "Missing Permissions", + endUser: { + key: "value", + }, + firstIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + lastIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + isMuted: true, + errorDetails: ["Missing employee permissions.", "Missing time off permissions."], + }); + }); +}); diff --git a/tests/wire/crm/leads.test.ts b/tests/wire/crm/leads.test.ts new file mode 100644 index 000000000..238cbc43d --- /dev/null +++ b/tests/wire/crm/leads.test.ts @@ -0,0 +1,943 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Leads", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + owner: "owner", + lead_source: "API Blogger", + title: "Co-Founder", + company: "Merge API", + first_name: "Gil", + last_name: "Feig", + addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + street_1: "50 Bowling Green Dr", + street_2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postal_code: "94122", + country: "US", + address_type: "Shipping", + }, + ], + email_addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + email_address: "hello@merge.dev", + email_address_type: "Work", + }, + ], + phone_numbers: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + phone_number: "+16789932455", + phone_number_type: "Mobile", + }, + ], + remote_updated_at: "2022-02-10T00:00:00Z", + remote_created_at: "2021-11-10T00:00:00Z", + converted_date: "2022-03-10T00:00:00Z", + converted_contact: "converted_contact", + converted_account: "converted_account", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/leads", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + }; + server.mockEndpoint().get("/crm/v1/leads").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.crm.leads.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + owner: "owner", + leadSource: "API Blogger", + title: "Co-Founder", + company: "Merge API", + firstName: "Gil", + lastName: "Feig", + addresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + street1: "50 Bowling Green Dr", + street2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postalCode: "94122", + country: "US", + addressType: "Shipping", + }, + ], + emailAddresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + emailAddress: "hello@merge.dev", + emailAddressType: "Work", + }, + ], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + phoneNumber: "+16789932455", + phoneNumberType: "Mobile", + }, + ], + remoteUpdatedAt: new Date("2022-02-10T00:00:00.000Z"), + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + convertedDate: new Date("2022-03-10T00:00:00.000Z"), + convertedContact: "converted_contact", + convertedAccount: "converted_account", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/leads", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + owner: "owner", + lead_source: "API Blogger", + title: "Co-Founder", + company: "Merge API", + first_name: "Gil", + last_name: "Feig", + addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + street_1: "50 Bowling Green Dr", + street_2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postal_code: "94122", + country: "US", + address_type: "Shipping", + }, + ], + email_addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + email_address: "hello@merge.dev", + email_address_type: "Work", + }, + ], + phone_numbers: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + phone_number: "+16789932455", + phone_number_type: "Mobile", + }, + ], + remote_updated_at: "2022-02-10T00:00:00Z", + remote_created_at: "2021-11-10T00:00:00Z", + converted_date: "2022-03-10T00:00:00Z", + converted_contact: "converted_contact", + converted_account: "converted_account", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/leads", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/crm/v1/leads") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.leads.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + owner: "owner", + leadSource: "API Blogger", + title: "Co-Founder", + company: "Merge API", + firstName: "Gil", + lastName: "Feig", + addresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + street1: "50 Bowling Green Dr", + street2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postalCode: "94122", + country: "US", + addressType: "Shipping", + }, + ], + emailAddresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + emailAddress: "hello@merge.dev", + emailAddressType: "Work", + }, + ], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + phoneNumber: "+16789932455", + phoneNumberType: "Mobile", + }, + ], + remoteUpdatedAt: new Date("2022-02-10T00:00:00.000Z"), + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + convertedDate: new Date("2022-03-10T00:00:00.000Z"), + convertedContact: "converted_contact", + convertedAccount: "converted_account", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/leads", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + owner: "owner", + lead_source: "API Blogger", + title: "Co-Founder", + company: "Merge API", + first_name: "Gil", + last_name: "Feig", + addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + street_1: "50 Bowling Green Dr", + street_2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postal_code: "94122", + country: "US", + address_type: "Shipping", + }, + ], + email_addresses: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + email_address: "hello@merge.dev", + email_address_type: "Work", + }, + ], + phone_numbers: [ + { + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + phone_number: "+16789932455", + phone_number_type: "Mobile", + }, + ], + remote_updated_at: "2022-02-10T00:00:00Z", + remote_created_at: "2021-11-10T00:00:00Z", + converted_date: "2022-03-10T00:00:00Z", + converted_contact: "converted_contact", + converted_account: "converted_account", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/leads", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class", value: { key: "value" } }], + }; + server.mockEndpoint().get("/crm/v1/leads/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.crm.leads.retrieve("id"); + expect(response).toEqual({ + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + owner: "owner", + leadSource: "API Blogger", + title: "Co-Founder", + company: "Merge API", + firstName: "Gil", + lastName: "Feig", + addresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + street1: "50 Bowling Green Dr", + street2: "Golden Gate Park", + city: "San Francisco", + state: "CA", + postalCode: "94122", + country: "US", + addressType: "Shipping", + }, + ], + emailAddresses: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + emailAddress: "hello@merge.dev", + emailAddressType: "Work", + }, + ], + phoneNumbers: [ + { + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + phoneNumber: "+16789932455", + phoneNumberType: "Mobile", + }, + ], + remoteUpdatedAt: new Date("2022-02-10T00:00:00.000Z"), + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + convertedDate: new Date("2022-03-10T00:00:00.000Z"), + convertedContact: "converted_contact", + convertedAccount: "converted_account", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/leads", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + value: { + key: "value", + }, + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/crm/v1/leads/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.leads.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("remoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: [{}], + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/leads/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.leads.remoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: [{}], + }, + ], + }); + }); +}); diff --git a/tests/wire/crm/linkToken.test.ts b/tests/wire/crm/linkToken.test.ts new file mode 100644 index 000000000..a29bd07a6 --- /dev/null +++ b/tests/wire/crm/linkToken.test.ts @@ -0,0 +1,44 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("LinkToken", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { + end_user_email_address: "example@gmail.com", + end_user_organization_name: "Test Organization", + end_user_origin_id: "12345", + categories: ["hris", "ats"], + }; + const rawResponseBody = { + link_token: "necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0", + integration_name: "Lever", + magic_link_url: "https://link.merge.dev/asdfjkl12345jsndfgi2i83n", + }; + server + .mockEndpoint() + .post("/crm/v1/link-token") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.linkToken.create({ + endUserEmailAddress: "example@gmail.com", + endUserOrganizationName: "Test Organization", + endUserOriginId: "12345", + categories: ["hris", "ats"], + }); + expect(response).toEqual({ + linkToken: "necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0", + integrationName: "Lever", + magicLinkUrl: "https://link.merge.dev/asdfjkl12345jsndfgi2i83n", + }); + }); +}); diff --git a/tests/wire/crm/linkedAccounts.test.ts b/tests/wire/crm/linkedAccounts.test.ts new file mode 100644 index 000000000..c37cdf4d2 --- /dev/null +++ b/tests/wire/crm/linkedAccounts.test.ts @@ -0,0 +1,93 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("LinkedAccounts", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "e59b1821-f85c-4e28-a6b3-1804156f3563", + category: "hris", + status: "COMPLETE", + status_detail: "Invalid login credentials", + end_user_origin_id: "3ac95cde-6c7f-4eef-afec-be710b42308d", + end_user_organization_name: "Foo Bar, LLC", + end_user_email_address: "hradmin@foobar.dev", + subdomain: "foobar", + webhook_listener_url: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + is_duplicate: true, + integration: { + name: "name", + categories: ["hris"], + color: "color", + slug: "slug", + passthrough_available: true, + available_model_operations: [ + { + model_name: "Candidate", + available_operations: ["FETCH", "CREATE"], + required_post_parameters: ["remote_user_id"], + supported_fields: ["first_name", "last_name", "company", "title"], + }, + ], + }, + account_type: "PRODUCTION", + completed_at: "2024-08-26T20:11:19Z", + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/linked-accounts") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.linkedAccounts.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "e59b1821-f85c-4e28-a6b3-1804156f3563", + category: "hris", + status: "COMPLETE", + statusDetail: "Invalid login credentials", + endUserOriginId: "3ac95cde-6c7f-4eef-afec-be710b42308d", + endUserOrganizationName: "Foo Bar, LLC", + endUserEmailAddress: "hradmin@foobar.dev", + subdomain: "foobar", + webhookListenerUrl: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + isDuplicate: true, + integration: { + name: "name", + categories: ["hris"], + color: "color", + slug: "slug", + passthroughAvailable: true, + availableModelOperations: [ + { + modelName: "Candidate", + availableOperations: ["FETCH", "CREATE"], + requiredPostParameters: ["remote_user_id"], + supportedFields: ["first_name", "last_name", "company", "title"], + }, + ], + }, + accountType: "PRODUCTION", + completedAt: new Date("2024-08-26T20:11:19.000Z"), + }, + ], + }); + }); +}); diff --git a/tests/wire/crm/notes.test.ts b/tests/wire/crm/notes.test.ts new file mode 100644 index 000000000..3a1b8def1 --- /dev/null +++ b/tests/wire/crm/notes.test.ts @@ -0,0 +1,745 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Notes", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + owner: "owner", + content: "Merge is hiring!", + contact: "contact", + account: "account", + opportunity: "opportunity", + remote_updated_at: "2022-02-10T00:00:00Z", + remote_created_at: "2021-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/notes", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + }; + server.mockEndpoint().get("/crm/v1/notes").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.crm.notes.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + owner: "owner", + content: "Merge is hiring!", + contact: "contact", + account: "account", + opportunity: "opportunity", + remoteUpdatedAt: new Date("2022-02-10T00:00:00.000Z"), + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/notes", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + owner: "owner", + content: "Merge is hiring!", + contact: "contact", + account: "account", + opportunity: "opportunity", + remote_updated_at: "2022-02-10T00:00:00Z", + remote_created_at: "2021-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/notes", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/crm/v1/notes") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.notes.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + owner: "owner", + content: "Merge is hiring!", + contact: "contact", + account: "account", + opportunity: "opportunity", + remoteUpdatedAt: new Date("2022-02-10T00:00:00.000Z"), + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/notes", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + owner: "owner", + content: "Merge is hiring!", + contact: "contact", + account: "account", + opportunity: "opportunity", + remote_updated_at: "2022-02-10T00:00:00Z", + remote_created_at: "2021-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/notes", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class", value: { key: "value" } }], + }; + server.mockEndpoint().get("/crm/v1/notes/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.crm.notes.retrieve("id"); + expect(response).toEqual({ + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + owner: "owner", + content: "Merge is hiring!", + contact: "contact", + account: "account", + opportunity: "opportunity", + remoteUpdatedAt: new Date("2022-02-10T00:00:00.000Z"), + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/notes", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + value: { + key: "value", + }, + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/crm/v1/notes/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.notes.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("remoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: [{}], + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/notes/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.notes.remoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: [{}], + }, + ], + }); + }); +}); diff --git a/tests/wire/crm/opportunities.test.ts b/tests/wire/crm/opportunities.test.ts new file mode 100644 index 000000000..b6df5f28d --- /dev/null +++ b/tests/wire/crm/opportunities.test.ts @@ -0,0 +1,1330 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Opportunities", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Needs Integrations", + description: "Needs a Unified API for Integrations!", + amount: 100000, + owner: "owner", + account: "account", + stage: "stage", + status: "OPEN", + last_activity_at: "2022-02-10T00:00:00Z", + close_date: "2022-02-10T00:00:00Z", + remote_created_at: "2021-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/opportunities", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/opportunities") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.opportunities.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Needs Integrations", + description: "Needs a Unified API for Integrations!", + amount: 100000, + owner: "owner", + account: "account", + stage: "stage", + status: "OPEN", + lastActivityAt: new Date("2022-02-10T00:00:00.000Z"), + closeDate: new Date("2022-02-10T00:00:00.000Z"), + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/opportunities", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Needs Integrations", + description: "Needs a Unified API for Integrations!", + amount: 100000, + owner: "owner", + account: "account", + stage: "stage", + status: "OPEN", + last_activity_at: "2022-02-10T00:00:00Z", + close_date: "2022-02-10T00:00:00Z", + remote_created_at: "2021-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/opportunities", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/crm/v1/opportunities") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.opportunities.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Needs Integrations", + description: "Needs a Unified API for Integrations!", + amount: 100000, + owner: "owner", + account: "account", + stage: "stage", + status: "OPEN", + lastActivityAt: new Date("2022-02-10T00:00:00.000Z"), + closeDate: new Date("2022-02-10T00:00:00.000Z"), + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/opportunities", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Needs Integrations", + description: "Needs a Unified API for Integrations!", + amount: 100000, + owner: "owner", + account: "account", + stage: "stage", + status: "OPEN", + last_activity_at: "2022-02-10T00:00:00Z", + close_date: "2022-02-10T00:00:00Z", + remote_created_at: "2021-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/opportunities", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class", value: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/crm/v1/opportunities/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.opportunities.retrieve("id"); + expect(response).toEqual({ + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Needs Integrations", + description: "Needs a Unified API for Integrations!", + amount: 100000, + owner: "owner", + account: "account", + stage: "stage", + status: "OPEN", + lastActivityAt: new Date("2022-02-10T00:00:00.000Z"), + closeDate: new Date("2022-02-10T00:00:00.000Z"), + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/opportunities", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + value: { + key: "value", + }, + }, + ], + }); + }); + + test("partialUpdate", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Needs Integrations", + description: "Needs a Unified API for Integrations!", + amount: 100000, + owner: "owner", + account: "account", + stage: "stage", + status: "OPEN", + last_activity_at: "2022-02-10T00:00:00Z", + close_date: "2022-02-10T00:00:00Z", + remote_created_at: "2021-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/opportunities", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .patch("/crm/v1/opportunities/id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.opportunities.partialUpdate("id", { + model: {}, + }); + expect(response).toEqual({ + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Needs Integrations", + description: "Needs a Unified API for Integrations!", + amount: 100000, + owner: "owner", + account: "account", + stage: "stage", + status: "OPEN", + lastActivityAt: new Date("2022-02-10T00:00:00.000Z"), + closeDate: new Date("2022-02-10T00:00:00.000Z"), + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/opportunities", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("metaPatchRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/crm/v1/opportunities/meta/patch/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.opportunities.metaPatchRetrieve("id"); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/crm/v1/opportunities/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.opportunities.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("remoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: [{}], + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/opportunities/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.opportunities.remoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: [{}], + }, + ], + }); + }); +}); diff --git a/tests/wire/crm/passthrough.test.ts b/tests/wire/crm/passthrough.test.ts new file mode 100644 index 000000000..12565e433 --- /dev/null +++ b/tests/wire/crm/passthrough.test.ts @@ -0,0 +1,52 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Passthrough", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { method: "GET", path: "/scooters" }; + const rawResponseBody = { + method: "GET", + path: "/scooters", + status: 200, + response: { key: "value" }, + response_headers: { "X-Page-Token": "value" }, + response_type: "JSON", + headers: { "EXTRA-HEADER": "value", Authorization: "" }, + }; + server + .mockEndpoint() + .post("/crm/v1/passthrough") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.passthrough.create({ + method: "GET", + path: "/scooters", + }); + expect(response).toEqual({ + method: "GET", + path: "/scooters", + status: 200, + response: { + key: "value", + }, + responseHeaders: { + "X-Page-Token": "value", + }, + responseType: "JSON", + headers: { + "EXTRA-HEADER": "value", + Authorization: "", + }, + }); + }); +}); diff --git a/tests/wire/crm/regenerateKey.test.ts b/tests/wire/crm/regenerateKey.test.ts new file mode 100644 index 000000000..6e9f72de2 --- /dev/null +++ b/tests/wire/crm/regenerateKey.test.ts @@ -0,0 +1,34 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("RegenerateKey", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { name: "Remote Deployment Key 1" }; + const rawResponseBody = { + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }; + server + .mockEndpoint() + .post("/crm/v1/regenerate-key") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.regenerateKey.create({ + name: "Remote Deployment Key 1", + }); + expect(response).toEqual({ + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }); + }); +}); diff --git a/tests/wire/crm/scopes.test.ts b/tests/wire/crm/scopes.test.ts new file mode 100644 index 000000000..52bebd8d0 --- /dev/null +++ b/tests/wire/crm/scopes.test.ts @@ -0,0 +1,281 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Scopes", () => { + test("default_scopes_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabled_fields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/default-scopes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.scopes.defaultScopesRetrieve(); + expect(response).toEqual({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabledFields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }); + }); + + test("linked_account_scopes_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabled_fields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/linked-account-scopes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.scopes.linkedAccountScopesRetrieve(); + expect(response).toEqual({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabledFields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }); + }); + + test("linked_account_scopes_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: ["avatar", "home_location"], + disabled_fields: ["work_location"], + }, + }, + { model_name: "Benefit", model_permissions: { WRITE: { is_enabled: false } } }, + ], + }; + const rawResponseBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabled_fields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }; + server + .mockEndpoint() + .post("/crm/v1/linked-account-scopes") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.scopes.linkedAccountScopesCreate({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: ["avatar", "home_location"], + disabledFields: ["work_location"], + }, + }, + { + modelName: "Benefit", + modelPermissions: { + WRITE: { + isEnabled: false, + }, + }, + }, + ], + }); + expect(response).toEqual({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabledFields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }); + }); +}); diff --git a/tests/wire/crm/stages.test.ts b/tests/wire/crm/stages.test.ts new file mode 100644 index 000000000..e7fe76744 --- /dev/null +++ b/tests/wire/crm/stages.test.ts @@ -0,0 +1,172 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Stages", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0358cbc6-2040-430a-848e-aafacbadf3aa", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Closed Won", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/stages", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + }; + server.mockEndpoint().get("/crm/v1/stages").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.crm.stages.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0358cbc6-2040-430a-848e-aafacbadf3aa", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Closed Won", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/stages", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "0358cbc6-2040-430a-848e-aafacbadf3aa", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Closed Won", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/stages", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class", value: { key: "value" } }], + }; + server.mockEndpoint().get("/crm/v1/stages/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.crm.stages.retrieve("id"); + expect(response).toEqual({ + id: "0358cbc6-2040-430a-848e-aafacbadf3aa", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Closed Won", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/stages", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + value: { + key: "value", + }, + }, + ], + }); + }); + + test("remoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: [{}], + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/stages/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.stages.remoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: [{}], + }, + ], + }); + }); +}); diff --git a/tests/wire/crm/syncStatus.test.ts b/tests/wire/crm/syncStatus.test.ts new file mode 100644 index 000000000..5d7a5a0c0 --- /dev/null +++ b/tests/wire/crm/syncStatus.test.ts @@ -0,0 +1,57 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("SyncStatus", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + model_name: "Account", + model_id: "crm.Account", + last_sync_start: "2021-03-30T19:44:18Z", + next_sync_start: "2021-03-30T20:44:18Z", + last_sync_result: "SYNCING", + last_sync_finished: "2021-03-30T19:55:18Z", + status: "SYNCING", + is_initial_sync: true, + selective_sync_configurations_usage: "IN_NEXT_SYNC", + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/sync-status") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.syncStatus.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + modelName: "Account", + modelId: "crm.Account", + lastSyncStart: new Date("2021-03-30T19:44:18.000Z"), + nextSyncStart: new Date("2021-03-30T20:44:18.000Z"), + lastSyncResult: "SYNCING", + lastSyncFinished: new Date("2021-03-30T19:55:18.000Z"), + status: "SYNCING", + isInitialSync: true, + selectiveSyncConfigurationsUsage: "IN_NEXT_SYNC", + }, + ], + }); + }); +}); diff --git a/tests/wire/crm/tasks.test.ts b/tests/wire/crm/tasks.test.ts new file mode 100644 index 000000000..3592defc2 --- /dev/null +++ b/tests/wire/crm/tasks.test.ts @@ -0,0 +1,1302 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Tasks", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + subject: "Contact about Integration Strategy", + content: "Follow up to see whether they need integrations", + owner: "owner", + account: "account", + opportunity: "opportunity", + completed_date: "2022-02-11T00:00:00Z", + due_date: "2022-02-10T00:00:00Z", + status: "OPEN", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/tasks", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + }; + server.mockEndpoint().get("/crm/v1/tasks").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.crm.tasks.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + subject: "Contact about Integration Strategy", + content: "Follow up to see whether they need integrations", + owner: "owner", + account: "account", + opportunity: "opportunity", + completedDate: new Date("2022-02-11T00:00:00.000Z"), + dueDate: new Date("2022-02-10T00:00:00.000Z"), + status: "OPEN", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/tasks", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + subject: "Contact about Integration Strategy", + content: "Follow up to see whether they need integrations", + owner: "owner", + account: "account", + opportunity: "opportunity", + completed_date: "2022-02-11T00:00:00Z", + due_date: "2022-02-10T00:00:00Z", + status: "OPEN", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/tasks", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/crm/v1/tasks") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.tasks.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + subject: "Contact about Integration Strategy", + content: "Follow up to see whether they need integrations", + owner: "owner", + account: "account", + opportunity: "opportunity", + completedDate: new Date("2022-02-11T00:00:00.000Z"), + dueDate: new Date("2022-02-10T00:00:00.000Z"), + status: "OPEN", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/tasks", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + subject: "Contact about Integration Strategy", + content: "Follow up to see whether they need integrations", + owner: "owner", + account: "account", + opportunity: "opportunity", + completed_date: "2022-02-11T00:00:00Z", + due_date: "2022-02-10T00:00:00Z", + status: "OPEN", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/tasks", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class", value: { key: "value" } }], + }; + server.mockEndpoint().get("/crm/v1/tasks/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.crm.tasks.retrieve("id"); + expect(response).toEqual({ + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + subject: "Contact about Integration Strategy", + content: "Follow up to see whether they need integrations", + owner: "owner", + account: "account", + opportunity: "opportunity", + completedDate: new Date("2022-02-11T00:00:00.000Z"), + dueDate: new Date("2022-02-10T00:00:00.000Z"), + status: "OPEN", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/tasks", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + value: { + key: "value", + }, + }, + ], + }); + }); + + test("partialUpdate", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + subject: "Contact about Integration Strategy", + content: "Follow up to see whether they need integrations", + owner: "owner", + account: "account", + opportunity: "opportunity", + completed_date: "2022-02-11T00:00:00Z", + due_date: "2022-02-10T00:00:00Z", + status: "OPEN", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/tasks", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .patch("/crm/v1/tasks/id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.tasks.partialUpdate("id", { + model: {}, + }); + expect(response).toEqual({ + model: { + id: "550e8400-e29b-41d4-a716-446655440000", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + subject: "Contact about Integration Strategy", + content: "Follow up to see whether they need integrations", + owner: "owner", + account: "account", + opportunity: "opportunity", + completedDate: new Date("2022-02-11T00:00:00.000Z"), + dueDate: new Date("2022-02-10T00:00:00.000Z"), + status: "OPEN", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/tasks", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("metaPatchRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/crm/v1/tasks/meta/patch/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.tasks.metaPatchRetrieve("id"); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/crm/v1/tasks/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.tasks.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("remoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: [{}], + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/tasks/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.tasks.remoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: [{}], + }, + ], + }); + }); +}); diff --git a/tests/wire/crm/users.test.ts b/tests/wire/crm/users.test.ts new file mode 100644 index 000000000..677052b2b --- /dev/null +++ b/tests/wire/crm/users.test.ts @@ -0,0 +1,199 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Users", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0358cbc6-2040-430a-848e-aafacbadf3aa", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Gil Feig", + email: "merge_is_hiring@merge.dev", + is_active: true, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/users", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + }; + server.mockEndpoint().get("/crm/v1/users").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.crm.users.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0358cbc6-2040-430a-848e-aafacbadf3aa", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Gil Feig", + email: "merge_is_hiring@merge.dev", + isActive: true, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/users", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "0358cbc6-2040-430a-848e-aafacbadf3aa", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Gil Feig", + email: "merge_is_hiring@merge.dev", + is_active: true, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/users", data: ["Varies by platform"] }], + remote_fields: [{ remote_field_class: "remote_field_class", value: { key: "value" } }], + }; + server.mockEndpoint().get("/crm/v1/users/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.crm.users.retrieve("id"); + expect(response).toEqual({ + id: "0358cbc6-2040-430a-848e-aafacbadf3aa", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Gil Feig", + email: "merge_is_hiring@merge.dev", + isActive: true, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/users", + data: ["Varies by platform"], + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + value: { + key: "value", + }, + }, + ], + }); + }); + + test("ignoreCreate", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { reason: "GENERAL_CUSTOMER_REQUEST" }; + + server + .mockEndpoint() + .post("/crm/v1/users/ignore/model_id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .build(); + + const response = await client.crm.users.ignoreCreate("model_id", { + reason: "GENERAL_CUSTOMER_REQUEST", + }); + expect(response).toEqual(undefined); + }); + + test("remoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "string", + field_format: "string", + field_choices: [{}], + }, + ], + }; + server + .mockEndpoint() + .get("/crm/v1/users/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.users.remoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "string", + fieldFormat: "string", + fieldChoices: [{}], + }, + ], + }); + }); +}); diff --git a/tests/wire/crm/webhookReceivers.test.ts b/tests/wire/crm/webhookReceivers.test.ts new file mode 100644 index 000000000..09a1b2bbc --- /dev/null +++ b/tests/wire/crm/webhookReceivers.test.ts @@ -0,0 +1,56 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("WebhookReceivers", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = [{ event: "event", is_active: true, key: "key" }]; + server + .mockEndpoint() + .get("/crm/v1/webhook-receivers") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.webhookReceivers.list(); + expect(response).toEqual([ + { + event: "event", + isActive: true, + key: "key", + }, + ]); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { event: "event", is_active: true }; + const rawResponseBody = { event: "event", is_active: true, key: "key" }; + server + .mockEndpoint() + .post("/crm/v1/webhook-receivers") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.crm.webhookReceivers.create({ + event: "event", + isActive: true, + }); + expect(response).toEqual({ + event: "event", + isActive: true, + key: "key", + }); + }); +}); diff --git a/tests/wire/filestorage/accountDetails.test.ts b/tests/wire/filestorage/accountDetails.test.ts new file mode 100644 index 000000000..9e999640e --- /dev/null +++ b/tests/wire/filestorage/accountDetails.test.ts @@ -0,0 +1,51 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AccountDetails", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + integration: "BambooHR", + integration_slug: "bamboohr", + category: "hris", + end_user_origin_id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + end_user_organization_name: "Waystar Royco", + end_user_email_address: "kendall.roy@waystar-royco.com", + status: "COMPLETE", + webhook_listener_url: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + is_duplicate: true, + account_type: "PRODUCTION", + completed_at: "2024-08-26T20:11:19Z", + }; + server + .mockEndpoint() + .get("/filestorage/v1/account-details") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.accountDetails.retrieve(); + expect(response).toEqual({ + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + integration: "BambooHR", + integrationSlug: "bamboohr", + category: "hris", + endUserOriginId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + endUserOrganizationName: "Waystar Royco", + endUserEmailAddress: "kendall.roy@waystar-royco.com", + status: "COMPLETE", + webhookListenerUrl: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + isDuplicate: true, + accountType: "PRODUCTION", + completedAt: new Date("2024-08-26T20:11:19.000Z"), + }); + }); +}); diff --git a/tests/wire/filestorage/accountToken.test.ts b/tests/wire/filestorage/accountToken.test.ts new file mode 100644 index 000000000..9d0b9d010 --- /dev/null +++ b/tests/wire/filestorage/accountToken.test.ts @@ -0,0 +1,59 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AccountToken", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + account_token: "T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB", + integration: { + name: "name", + abbreviated_name: "abbreviated_name", + categories: ["hris"], + image: "image", + square_image: "square_image", + color: "color", + slug: "slug", + api_endpoints_to_documentation_urls: { key: "value" }, + webhook_setup_guide_url: "webhook_setup_guide_url", + category_beta_status: { key: "value" }, + }, + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + }; + server + .mockEndpoint() + .get("/filestorage/v1/account-token/public_token") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.accountToken.retrieve("public_token"); + expect(response).toEqual({ + accountToken: "T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB", + integration: { + name: "name", + abbreviatedName: "abbreviated_name", + categories: ["hris"], + image: "image", + squareImage: "square_image", + color: "color", + slug: "slug", + apiEndpointsToDocumentationUrls: { + key: "value", + }, + webhookSetupGuideUrl: "webhook_setup_guide_url", + categoryBetaStatus: { + key: "value", + }, + }, + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + }); + }); +}); diff --git a/tests/wire/filestorage/asyncPassthrough.test.ts b/tests/wire/filestorage/asyncPassthrough.test.ts new file mode 100644 index 000000000..bb1b804a5 --- /dev/null +++ b/tests/wire/filestorage/asyncPassthrough.test.ts @@ -0,0 +1,71 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AsyncPassthrough", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { method: "GET", path: "/scooters" }; + const rawResponseBody = { async_passthrough_receipt_id: "fd29020f-2695-445e-922e-dcd5e81903fd" }; + server + .mockEndpoint() + .post("/filestorage/v1/async-passthrough") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.asyncPassthrough.create({ + method: "GET", + path: "/scooters", + }); + expect(response).toEqual({ + asyncPassthroughReceiptId: "fd29020f-2695-445e-922e-dcd5e81903fd", + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + method: "GET", + path: "/scooters", + status: 200, + response: { key: "value" }, + response_headers: { "X-Page-Token": "value" }, + response_type: "JSON", + headers: { "EXTRA-HEADER": "value", Authorization: "" }, + }; + server + .mockEndpoint() + .get("/filestorage/v1/async-passthrough/async_passthrough_receipt_id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.asyncPassthrough.retrieve("async_passthrough_receipt_id"); + expect(response).toEqual({ + method: "GET", + path: "/scooters", + status: 200, + response: { + key: "value", + }, + responseHeaders: { + "X-Page-Token": "value", + }, + responseType: "JSON", + headers: { + "EXTRA-HEADER": "value", + Authorization: "", + }, + }); + }); +}); diff --git a/tests/wire/filestorage/auditTrail.test.ts b/tests/wire/filestorage/auditTrail.test.ts new file mode 100644 index 000000000..48d280639 --- /dev/null +++ b/tests/wire/filestorage/auditTrail.test.ts @@ -0,0 +1,57 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AuditTrail", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b5ceea2a-7171-47ce-8090-165cfce5572c", + user_name: "Gil Feig", + user_email: "hello@merge.dev", + role: "ADMIN", + ip_address: "192.0.2.123", + event_type: "CREATED_REMOTE_PRODUCTION_API_KEY", + event_description: + "Organization-wide Scopes for model hris.Employee updated from Read to Read+Write", + created_at: "2024-01-15T09:30:00Z", + }, + ], + }; + server + .mockEndpoint() + .get("/filestorage/v1/audit-trail") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.auditTrail.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b5ceea2a-7171-47ce-8090-165cfce5572c", + userName: "Gil Feig", + userEmail: "hello@merge.dev", + role: "ADMIN", + ipAddress: "192.0.2.123", + eventType: "CREATED_REMOTE_PRODUCTION_API_KEY", + eventDescription: + "Organization-wide Scopes for model hris.Employee updated from Read to Read+Write", + createdAt: new Date("2024-01-15T09:30:00.000Z"), + }, + ], + }); + }); +}); diff --git a/tests/wire/filestorage/availableActions.test.ts b/tests/wire/filestorage/availableActions.test.ts new file mode 100644 index 000000000..94d80c4e5 --- /dev/null +++ b/tests/wire/filestorage/availableActions.test.ts @@ -0,0 +1,73 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AvailableActions", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + integration: { + name: "name", + abbreviated_name: "abbreviated_name", + categories: ["hris"], + image: "image", + square_image: "square_image", + color: "color", + slug: "slug", + api_endpoints_to_documentation_urls: { key: "value" }, + webhook_setup_guide_url: "webhook_setup_guide_url", + category_beta_status: { key: "value" }, + }, + passthrough_available: true, + available_model_operations: [ + { + model_name: "Candidate", + available_operations: ["FETCH", "CREATE"], + required_post_parameters: ["remote_user_id"], + supported_fields: ["first_name", "last_name", "company", "title"], + }, + ], + }; + server + .mockEndpoint() + .get("/filestorage/v1/available-actions") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.availableActions.retrieve(); + expect(response).toEqual({ + integration: { + name: "name", + abbreviatedName: "abbreviated_name", + categories: ["hris"], + image: "image", + squareImage: "square_image", + color: "color", + slug: "slug", + apiEndpointsToDocumentationUrls: { + key: "value", + }, + webhookSetupGuideUrl: "webhook_setup_guide_url", + categoryBetaStatus: { + key: "value", + }, + }, + passthroughAvailable: true, + availableModelOperations: [ + { + modelName: "Candidate", + availableOperations: ["FETCH", "CREATE"], + requiredPostParameters: ["remote_user_id"], + supportedFields: ["first_name", "last_name", "company", "title"], + }, + ], + }); + }); +}); diff --git a/tests/wire/filestorage/deleteAccount.test.ts b/tests/wire/filestorage/deleteAccount.test.ts new file mode 100644 index 000000000..d3e2e5281 --- /dev/null +++ b/tests/wire/filestorage/deleteAccount.test.ts @@ -0,0 +1,18 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("DeleteAccount", () => { + test("delete", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + server.mockEndpoint().post("/filestorage/v1/delete-account").respondWith().statusCode(200).build(); + + const response = await client.filestorage.deleteAccount.delete(); + expect(response).toEqual(undefined); + }); +}); diff --git a/tests/wire/filestorage/drives.test.ts b/tests/wire/filestorage/drives.test.ts new file mode 100644 index 000000000..6f2e7b579 --- /dev/null +++ b/tests/wire/filestorage/drives.test.ts @@ -0,0 +1,128 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Drives", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "f9e3d315-d6c2-458e-85c4-fa773d6ff4a6", + remote_id: "2039348", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "My Drive", + remote_created_at: "2024-01-15T09:30:00Z", + drive_url: "https://drive.com/drives/2039349", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/drives", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/filestorage/v1/drives") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.drives.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "f9e3d315-d6c2-458e-85c4-fa773d6ff4a6", + remoteId: "2039348", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "My Drive", + remoteCreatedAt: new Date("2024-01-15T09:30:00.000Z"), + driveUrl: "https://drive.com/drives/2039349", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/drives", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "f9e3d315-d6c2-458e-85c4-fa773d6ff4a6", + remote_id: "2039348", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "My Drive", + remote_created_at: "2024-01-15T09:30:00Z", + drive_url: "https://drive.com/drives/2039349", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/drives", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/filestorage/v1/drives/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.drives.retrieve("id"); + expect(response).toEqual({ + id: "f9e3d315-d6c2-458e-85c4-fa773d6ff4a6", + remoteId: "2039348", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "My Drive", + remoteCreatedAt: new Date("2024-01-15T09:30:00.000Z"), + driveUrl: "https://drive.com/drives/2039349", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/drives", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/filestorage/fieldMapping.test.ts b/tests/wire/filestorage/fieldMapping.test.ts new file mode 100644 index 000000000..8c7073332 --- /dev/null +++ b/tests/wire/filestorage/fieldMapping.test.ts @@ -0,0 +1,866 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("FieldMapping", () => { + test("field_mappings_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + File: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Folder: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Drive: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Group: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + User: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + }; + server + .mockEndpoint() + .get("/filestorage/v1/field-mappings") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.fieldMapping.fieldMappingsRetrieve(); + expect(response).toEqual({ + file: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + folder: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + drive: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + group: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + user: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + }); + }); + + test("field_mappings_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { + target_field_name: "example_target_field_name", + target_field_description: "this is a example description of the target field", + remote_field_traversal_path: ["example_remote_field"], + remote_method: "GET", + remote_url_path: "/example-url-path", + common_model_name: "ExampleCommonModel", + }; + const rawResponseBody = { + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/filestorage/v1/field-mappings") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.fieldMapping.fieldMappingsCreate({ + targetFieldName: "example_target_field_name", + targetFieldDescription: "this is a example description of the target field", + remoteFieldTraversalPath: ["example_remote_field"], + remoteMethod: "GET", + remoteUrlPath: "/example-url-path", + commonModelName: "ExampleCommonModel", + }); + expect(response).toEqual({ + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("field_mappings_destroy", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .delete("/filestorage/v1/field-mappings/field_mapping_id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.fieldMapping.fieldMappingsDestroy("field_mapping_id"); + expect(response).toEqual({ + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("field_mappings_partial_update", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = {}; + const rawResponseBody = { + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .patch("/filestorage/v1/field-mappings/field_mapping_id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id"); + expect(response).toEqual({ + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("remote_fields_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + File: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Folder: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Drive: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Group: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + User: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + }; + server + .mockEndpoint() + .get("/filestorage/v1/remote-fields") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.fieldMapping.remoteFieldsRetrieve(); + expect(response).toEqual({ + file: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + folder: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + drive: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + group: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + user: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + }); + }); + + test("target_fields_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + File: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Folder: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Drive: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Group: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + User: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + }; + server + .mockEndpoint() + .get("/filestorage/v1/target-fields") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.fieldMapping.targetFieldsRetrieve(); + expect(response).toEqual({ + file: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + folder: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + drive: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + group: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + user: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + }); + }); +}); diff --git a/tests/wire/filestorage/files.test.ts b/tests/wire/filestorage/files.test.ts new file mode 100644 index 000000000..384f0990a --- /dev/null +++ b/tests/wire/filestorage/files.test.ts @@ -0,0 +1,805 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Files", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "45ce474c-dhcj-43a6-754r-629f799f7d68", + remote_id: "12", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "merge_file_storage_launch.docx", + file_url: "https://drive.com/1234", + file_thumbnail_url: "https://drive.com/1234/thumbnail.png", + size: 254, + mime_type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + description: "Use common model scopes to redact data returned in Merge's Common Models!", + folder: "folder", + checksum: { + type: "sha256", + content_hash: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + }, + permissions: "permissions", + drive: "drive", + remote_created_at: "2022-02-02T00:00:00Z", + remote_updated_at: "2022-02-03T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/files", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/filestorage/v1/files") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.files.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "45ce474c-dhcj-43a6-754r-629f799f7d68", + remoteId: "12", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "merge_file_storage_launch.docx", + fileUrl: "https://drive.com/1234", + fileThumbnailUrl: "https://drive.com/1234/thumbnail.png", + size: 254, + mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + description: "Use common model scopes to redact data returned in Merge's Common Models!", + folder: "folder", + checksum: { + type: "sha256", + content_hash: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + }, + permissions: "permissions", + drive: "drive", + remoteCreatedAt: new Date("2022-02-02T00:00:00.000Z"), + remoteUpdatedAt: new Date("2022-02-03T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/files", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "45ce474c-dhcj-43a6-754r-629f799f7d68", + remote_id: "12", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "merge_file_storage_launch.docx", + file_url: "https://drive.com/1234", + file_thumbnail_url: "https://drive.com/1234/thumbnail.png", + size: 254, + mime_type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + description: "Use common model scopes to redact data returned in Merge's Common Models!", + folder: "folder", + checksum: { + type: "sha256", + content_hash: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + }, + permissions: "permissions", + drive: "drive", + remote_created_at: "2022-02-02T00:00:00Z", + remote_updated_at: "2022-02-03T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/files", data: ["Varies by platform"] }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/filestorage/v1/files") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.files.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "45ce474c-dhcj-43a6-754r-629f799f7d68", + remoteId: "12", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "merge_file_storage_launch.docx", + fileUrl: "https://drive.com/1234", + fileThumbnailUrl: "https://drive.com/1234/thumbnail.png", + size: 254, + mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + description: "Use common model scopes to redact data returned in Merge's Common Models!", + folder: "folder", + checksum: { + type: "sha256", + content_hash: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + }, + permissions: "permissions", + drive: "drive", + remoteCreatedAt: new Date("2022-02-02T00:00:00.000Z"), + remoteUpdatedAt: new Date("2022-02-03T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/files", + data: ["Varies by platform"], + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "45ce474c-dhcj-43a6-754r-629f799f7d68", + remote_id: "12", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "merge_file_storage_launch.docx", + file_url: "https://drive.com/1234", + file_thumbnail_url: "https://drive.com/1234/thumbnail.png", + size: 254, + mime_type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + description: "Use common model scopes to redact data returned in Merge's Common Models!", + folder: "folder", + checksum: { + type: "sha256", + content_hash: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + }, + permissions: "permissions", + drive: "drive", + remote_created_at: "2022-02-02T00:00:00Z", + remote_updated_at: "2022-02-03T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/files", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/filestorage/v1/files/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.files.retrieve("id"); + expect(response).toEqual({ + id: "45ce474c-dhcj-43a6-754r-629f799f7d68", + remoteId: "12", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "merge_file_storage_launch.docx", + fileUrl: "https://drive.com/1234", + fileThumbnailUrl: "https://drive.com/1234/thumbnail.png", + size: 254, + mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + description: "Use common model scopes to redact data returned in Merge's Common Models!", + folder: "folder", + checksum: { + type: "sha256", + content_hash: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + }, + permissions: "permissions", + drive: "drive", + remoteCreatedAt: new Date("2022-02-02T00:00:00.000Z"), + remoteUpdatedAt: new Date("2022-02-03T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/files", + data: ["Varies by platform"], + }, + ], + }); + }); + + test("downloadRequestMetaRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + url: "https://www.googleapis.com/drive/v3/files/234?alt=media", + method: "GET", + headers: { Authorization: "Bearer 1234" }, + }; + server + .mockEndpoint() + .get("/filestorage/v1/files/id/download/request-meta") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.files.downloadRequestMetaRetrieve("id"); + expect(response).toEqual({ + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + url: "https://www.googleapis.com/drive/v3/files/234?alt=media", + method: "GET", + headers: { + Authorization: "Bearer 1234", + }, + }); + }); + + test("downloadRequestMetaList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + url: "https://www.googleapis.com/drive/v3/files/234?alt=media", + method: "GET", + headers: { Authorization: "Bearer 1234" }, + }, + ], + }; + server + .mockEndpoint() + .get("/filestorage/v1/files/download/request-meta") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.files.downloadRequestMetaList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + url: "https://www.googleapis.com/drive/v3/files/234?alt=media", + method: "GET", + headers: { + Authorization: "Bearer 1234", + }, + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/filestorage/v1/files/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.files.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/filestorage/folders.test.ts b/tests/wire/filestorage/folders.test.ts new file mode 100644 index 000000000..a1af8f9b6 --- /dev/null +++ b/tests/wire/filestorage/folders.test.ts @@ -0,0 +1,699 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Folders", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "e021f7a7-74fc-4487-8e12-14180c92d3b7", + remote_id: "14", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "R&D", + folder_url: "https://drive.com/1234", + size: 2738000, + description: "All things R&D related at Merge!", + parent_folder: "parent_folder", + drive: "drive", + permissions: "permissions", + remote_created_at: "2024-02-02T00:00:00Z", + remote_updated_at: "2024-06-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/folders", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/filestorage/v1/folders") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.folders.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "e021f7a7-74fc-4487-8e12-14180c92d3b7", + remoteId: "14", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "R&D", + folderUrl: "https://drive.com/1234", + size: 2738000, + description: "All things R&D related at Merge!", + parentFolder: "parent_folder", + drive: "drive", + permissions: "permissions", + remoteCreatedAt: new Date("2024-02-02T00:00:00.000Z"), + remoteUpdatedAt: new Date("2024-06-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/folders", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "e021f7a7-74fc-4487-8e12-14180c92d3b7", + remote_id: "14", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "R&D", + folder_url: "https://drive.com/1234", + size: 2738000, + description: "All things R&D related at Merge!", + parent_folder: "parent_folder", + drive: "drive", + permissions: "permissions", + remote_created_at: "2024-02-02T00:00:00Z", + remote_updated_at: "2024-06-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/folders", data: ["Varies by platform"] }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/filestorage/v1/folders") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.folders.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "e021f7a7-74fc-4487-8e12-14180c92d3b7", + remoteId: "14", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "R&D", + folderUrl: "https://drive.com/1234", + size: 2738000, + description: "All things R&D related at Merge!", + parentFolder: "parent_folder", + drive: "drive", + permissions: "permissions", + remoteCreatedAt: new Date("2024-02-02T00:00:00.000Z"), + remoteUpdatedAt: new Date("2024-06-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/folders", + data: ["Varies by platform"], + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "e021f7a7-74fc-4487-8e12-14180c92d3b7", + remote_id: "14", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "R&D", + folder_url: "https://drive.com/1234", + size: 2738000, + description: "All things R&D related at Merge!", + parent_folder: "parent_folder", + drive: "drive", + permissions: "permissions", + remote_created_at: "2024-02-02T00:00:00Z", + remote_updated_at: "2024-06-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/folders", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/filestorage/v1/folders/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.folders.retrieve("id"); + expect(response).toEqual({ + id: "e021f7a7-74fc-4487-8e12-14180c92d3b7", + remoteId: "14", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "R&D", + folderUrl: "https://drive.com/1234", + size: 2738000, + description: "All things R&D related at Merge!", + parentFolder: "parent_folder", + drive: "drive", + permissions: "permissions", + remoteCreatedAt: new Date("2024-02-02T00:00:00.000Z"), + remoteUpdatedAt: new Date("2024-06-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/folders", + data: ["Varies by platform"], + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/filestorage/v1/folders/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.folders.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/filestorage/forceResync.test.ts b/tests/wire/filestorage/forceResync.test.ts new file mode 100644 index 000000000..4f707d2de --- /dev/null +++ b/tests/wire/filestorage/forceResync.test.ts @@ -0,0 +1,49 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("ForceResync", () => { + test("sync_status_resync_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = [ + { + model_name: "File", + model_id: "filestorage.FileStorageFile", + last_sync_start: "2021-03-30T19:44:18Z", + next_sync_start: "2021-03-30T20:44:18Z", + last_sync_result: "SYNCING", + last_sync_finished: "2021-03-30T19:55:18Z", + status: "SYNCING", + is_initial_sync: true, + selective_sync_configurations_usage: "IN_NEXT_SYNC", + }, + ]; + server + .mockEndpoint() + .post("/filestorage/v1/sync-status/resync") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.forceResync.syncStatusResyncCreate(); + expect(response).toEqual([ + { + modelName: "File", + modelId: "filestorage.FileStorageFile", + lastSyncStart: new Date("2021-03-30T19:44:18.000Z"), + nextSyncStart: new Date("2021-03-30T20:44:18.000Z"), + lastSyncResult: "SYNCING", + lastSyncFinished: new Date("2021-03-30T19:55:18.000Z"), + status: "SYNCING", + isInitialSync: true, + selectiveSyncConfigurationsUsage: "IN_NEXT_SYNC", + }, + ]); + }); +}); diff --git a/tests/wire/filestorage/generateKey.test.ts b/tests/wire/filestorage/generateKey.test.ts new file mode 100644 index 000000000..3739e1a2a --- /dev/null +++ b/tests/wire/filestorage/generateKey.test.ts @@ -0,0 +1,34 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("GenerateKey", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { name: "Remote Deployment Key 1" }; + const rawResponseBody = { + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }; + server + .mockEndpoint() + .post("/filestorage/v1/generate-key") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.generateKey.create({ + name: "Remote Deployment Key 1", + }); + expect(response).toEqual({ + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }); + }); +}); diff --git a/tests/wire/filestorage/groups.test.ts b/tests/wire/filestorage/groups.test.ts new file mode 100644 index 000000000..5393c38be --- /dev/null +++ b/tests/wire/filestorage/groups.test.ts @@ -0,0 +1,128 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Groups", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "5624aceb-0ea2-4864-ba08-354ac56b9884", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Administrators", + users: ["6e93361b-8ae7-444b-bfa2-71206cbbee24"], + child_groups: ["a1f90b3c-633d-404e-a696-05cd54808676"], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/groups", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/filestorage/v1/groups") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.groups.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "5624aceb-0ea2-4864-ba08-354ac56b9884", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Administrators", + users: ["6e93361b-8ae7-444b-bfa2-71206cbbee24"], + childGroups: ["a1f90b3c-633d-404e-a696-05cd54808676"], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/groups", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "5624aceb-0ea2-4864-ba08-354ac56b9884", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Administrators", + users: ["6e93361b-8ae7-444b-bfa2-71206cbbee24"], + child_groups: ["a1f90b3c-633d-404e-a696-05cd54808676"], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/groups", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/filestorage/v1/groups/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.groups.retrieve("id"); + expect(response).toEqual({ + id: "5624aceb-0ea2-4864-ba08-354ac56b9884", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Administrators", + users: ["6e93361b-8ae7-444b-bfa2-71206cbbee24"], + childGroups: ["a1f90b3c-633d-404e-a696-05cd54808676"], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/groups", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/filestorage/issues.test.ts b/tests/wire/filestorage/issues.test.ts new file mode 100644 index 000000000..ebc82e20d --- /dev/null +++ b/tests/wire/filestorage/issues.test.ts @@ -0,0 +1,94 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Issues", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + error_description: "Missing Permissions", + end_user: { key: "value" }, + first_incident_time: "2022-12-05T16:19:15Z", + last_incident_time: "2022-12-05T16:19:15Z", + is_muted: true, + error_details: ["Missing employee permissions.", "Missing time off permissions."], + }, + ], + }; + server + .mockEndpoint() + .get("/filestorage/v1/issues") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.issues.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + errorDescription: "Missing Permissions", + endUser: { + key: "value", + }, + firstIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + lastIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + isMuted: true, + errorDetails: ["Missing employee permissions.", "Missing time off permissions."], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + error_description: "Missing Permissions", + end_user: { key: "value" }, + first_incident_time: "2022-12-05T16:19:15Z", + last_incident_time: "2022-12-05T16:19:15Z", + is_muted: true, + error_details: ["Missing employee permissions.", "Missing time off permissions."], + }; + server + .mockEndpoint() + .get("/filestorage/v1/issues/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.issues.retrieve("id"); + expect(response).toEqual({ + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + errorDescription: "Missing Permissions", + endUser: { + key: "value", + }, + firstIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + lastIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + isMuted: true, + errorDetails: ["Missing employee permissions.", "Missing time off permissions."], + }); + }); +}); diff --git a/tests/wire/filestorage/linkToken.test.ts b/tests/wire/filestorage/linkToken.test.ts new file mode 100644 index 000000000..3025eab1f --- /dev/null +++ b/tests/wire/filestorage/linkToken.test.ts @@ -0,0 +1,44 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("LinkToken", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { + end_user_email_address: "example@gmail.com", + end_user_organization_name: "Test Organization", + end_user_origin_id: "12345", + categories: ["hris", "ats"], + }; + const rawResponseBody = { + link_token: "necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0", + integration_name: "Lever", + magic_link_url: "https://link.merge.dev/asdfjkl12345jsndfgi2i83n", + }; + server + .mockEndpoint() + .post("/filestorage/v1/link-token") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.linkToken.create({ + endUserEmailAddress: "example@gmail.com", + endUserOrganizationName: "Test Organization", + endUserOriginId: "12345", + categories: ["hris", "ats"], + }); + expect(response).toEqual({ + linkToken: "necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0", + integrationName: "Lever", + magicLinkUrl: "https://link.merge.dev/asdfjkl12345jsndfgi2i83n", + }); + }); +}); diff --git a/tests/wire/filestorage/linkedAccounts.test.ts b/tests/wire/filestorage/linkedAccounts.test.ts new file mode 100644 index 000000000..d7e3cb2d5 --- /dev/null +++ b/tests/wire/filestorage/linkedAccounts.test.ts @@ -0,0 +1,97 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("LinkedAccounts", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "e59b1821-f85c-4e28-a6b3-1804156f3563", + category: "hris", + status: "COMPLETE", + status_detail: "Invalid login credentials", + end_user_origin_id: "3ac95cde-6c7f-4eef-afec-be710b42308d", + end_user_organization_name: "Foo Bar, LLC", + end_user_email_address: "hradmin@foobar.dev", + subdomain: "foobar", + webhook_listener_url: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + is_duplicate: true, + integration: { + name: "name", + categories: ["hris"], + color: "color", + slug: "slug", + passthrough_available: true, + available_model_operations: [ + { + model_name: "Candidate", + available_operations: ["FETCH", "CREATE"], + required_post_parameters: ["remote_user_id"], + supported_fields: ["first_name", "last_name", "company", "title"], + }, + ], + }, + account_type: "PRODUCTION", + completed_at: "2024-08-26T20:11:19Z", + integration_specific_fields: { integration_specific_field: "Varies by platform" }, + }, + ], + }; + server + .mockEndpoint() + .get("/filestorage/v1/linked-accounts") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.linkedAccounts.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "e59b1821-f85c-4e28-a6b3-1804156f3563", + category: "hris", + status: "COMPLETE", + statusDetail: "Invalid login credentials", + endUserOriginId: "3ac95cde-6c7f-4eef-afec-be710b42308d", + endUserOrganizationName: "Foo Bar, LLC", + endUserEmailAddress: "hradmin@foobar.dev", + subdomain: "foobar", + webhookListenerUrl: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + isDuplicate: true, + integration: { + name: "name", + categories: ["hris"], + color: "color", + slug: "slug", + passthroughAvailable: true, + availableModelOperations: [ + { + modelName: "Candidate", + availableOperations: ["FETCH", "CREATE"], + requiredPostParameters: ["remote_user_id"], + supportedFields: ["first_name", "last_name", "company", "title"], + }, + ], + }, + accountType: "PRODUCTION", + completedAt: new Date("2024-08-26T20:11:19.000Z"), + integrationSpecificFields: { + integration_specific_field: "Varies by platform", + }, + }, + ], + }); + }); +}); diff --git a/tests/wire/filestorage/passthrough.test.ts b/tests/wire/filestorage/passthrough.test.ts new file mode 100644 index 000000000..67372d50c --- /dev/null +++ b/tests/wire/filestorage/passthrough.test.ts @@ -0,0 +1,52 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Passthrough", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { method: "GET", path: "/scooters" }; + const rawResponseBody = { + method: "GET", + path: "/scooters", + status: 200, + response: { key: "value" }, + response_headers: { "X-Page-Token": "value" }, + response_type: "JSON", + headers: { "EXTRA-HEADER": "value", Authorization: "" }, + }; + server + .mockEndpoint() + .post("/filestorage/v1/passthrough") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.passthrough.create({ + method: "GET", + path: "/scooters", + }); + expect(response).toEqual({ + method: "GET", + path: "/scooters", + status: 200, + response: { + key: "value", + }, + responseHeaders: { + "X-Page-Token": "value", + }, + responseType: "JSON", + headers: { + "EXTRA-HEADER": "value", + Authorization: "", + }, + }); + }); +}); diff --git a/tests/wire/filestorage/regenerateKey.test.ts b/tests/wire/filestorage/regenerateKey.test.ts new file mode 100644 index 000000000..d9c3e8e4a --- /dev/null +++ b/tests/wire/filestorage/regenerateKey.test.ts @@ -0,0 +1,34 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("RegenerateKey", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { name: "Remote Deployment Key 1" }; + const rawResponseBody = { + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }; + server + .mockEndpoint() + .post("/filestorage/v1/regenerate-key") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.regenerateKey.create({ + name: "Remote Deployment Key 1", + }); + expect(response).toEqual({ + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }); + }); +}); diff --git a/tests/wire/filestorage/scopes.test.ts b/tests/wire/filestorage/scopes.test.ts new file mode 100644 index 000000000..78172fbbe --- /dev/null +++ b/tests/wire/filestorage/scopes.test.ts @@ -0,0 +1,281 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Scopes", () => { + test("default_scopes_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabled_fields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }; + server + .mockEndpoint() + .get("/filestorage/v1/default-scopes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.scopes.defaultScopesRetrieve(); + expect(response).toEqual({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabledFields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }); + }); + + test("linked_account_scopes_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabled_fields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }; + server + .mockEndpoint() + .get("/filestorage/v1/linked-account-scopes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.scopes.linkedAccountScopesRetrieve(); + expect(response).toEqual({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabledFields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }); + }); + + test("linked_account_scopes_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: ["avatar", "home_location"], + disabled_fields: ["work_location"], + }, + }, + { model_name: "Benefit", model_permissions: { WRITE: { is_enabled: false } } }, + ], + }; + const rawResponseBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabled_fields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }; + server + .mockEndpoint() + .post("/filestorage/v1/linked-account-scopes") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.scopes.linkedAccountScopesCreate({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: ["avatar", "home_location"], + disabledFields: ["work_location"], + }, + }, + { + modelName: "Benefit", + modelPermissions: { + WRITE: { + isEnabled: false, + }, + }, + }, + ], + }); + expect(response).toEqual({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabledFields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }); + }); +}); diff --git a/tests/wire/filestorage/syncStatus.test.ts b/tests/wire/filestorage/syncStatus.test.ts new file mode 100644 index 000000000..9ee662717 --- /dev/null +++ b/tests/wire/filestorage/syncStatus.test.ts @@ -0,0 +1,57 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("SyncStatus", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + model_name: "File", + model_id: "filestorage.FileStorageFile", + last_sync_start: "2021-03-30T19:44:18Z", + next_sync_start: "2021-03-30T20:44:18Z", + last_sync_result: "SYNCING", + last_sync_finished: "2021-03-30T19:55:18Z", + status: "SYNCING", + is_initial_sync: true, + selective_sync_configurations_usage: "IN_NEXT_SYNC", + }, + ], + }; + server + .mockEndpoint() + .get("/filestorage/v1/sync-status") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.syncStatus.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + modelName: "File", + modelId: "filestorage.FileStorageFile", + lastSyncStart: new Date("2021-03-30T19:44:18.000Z"), + nextSyncStart: new Date("2021-03-30T20:44:18.000Z"), + lastSyncResult: "SYNCING", + lastSyncFinished: new Date("2021-03-30T19:55:18.000Z"), + status: "SYNCING", + isInitialSync: true, + selectiveSyncConfigurationsUsage: "IN_NEXT_SYNC", + }, + ], + }); + }); +}); diff --git a/tests/wire/filestorage/users.test.ts b/tests/wire/filestorage/users.test.ts new file mode 100644 index 000000000..9f6efe868 --- /dev/null +++ b/tests/wire/filestorage/users.test.ts @@ -0,0 +1,128 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Users", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "83902e75-4362-4803-b76c-a7d6be292cbd", + remote_id: "2039349", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Gil Feig", + email_address: "hello@merge.dev", + is_me: true, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/users", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/filestorage/v1/users") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.users.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "83902e75-4362-4803-b76c-a7d6be292cbd", + remoteId: "2039349", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Gil Feig", + emailAddress: "hello@merge.dev", + isMe: true, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/users", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "83902e75-4362-4803-b76c-a7d6be292cbd", + remote_id: "2039349", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Gil Feig", + email_address: "hello@merge.dev", + is_me: true, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/users", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/filestorage/v1/users/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.users.retrieve("id"); + expect(response).toEqual({ + id: "83902e75-4362-4803-b76c-a7d6be292cbd", + remoteId: "2039349", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Gil Feig", + emailAddress: "hello@merge.dev", + isMe: true, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/users", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/filestorage/webhookReceivers.test.ts b/tests/wire/filestorage/webhookReceivers.test.ts new file mode 100644 index 000000000..6ad2f9dab --- /dev/null +++ b/tests/wire/filestorage/webhookReceivers.test.ts @@ -0,0 +1,56 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("WebhookReceivers", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = [{ event: "event", is_active: true, key: "key" }]; + server + .mockEndpoint() + .get("/filestorage/v1/webhook-receivers") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.webhookReceivers.list(); + expect(response).toEqual([ + { + event: "event", + isActive: true, + key: "key", + }, + ]); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { event: "event", is_active: true }; + const rawResponseBody = { event: "event", is_active: true, key: "key" }; + server + .mockEndpoint() + .post("/filestorage/v1/webhook-receivers") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.filestorage.webhookReceivers.create({ + event: "event", + isActive: true, + }); + expect(response).toEqual({ + event: "event", + isActive: true, + key: "key", + }); + }); +}); diff --git a/tests/wire/hris/accountDetails.test.ts b/tests/wire/hris/accountDetails.test.ts new file mode 100644 index 000000000..adc3fbc61 --- /dev/null +++ b/tests/wire/hris/accountDetails.test.ts @@ -0,0 +1,51 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AccountDetails", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + integration: "BambooHR", + integration_slug: "bamboohr", + category: "hris", + end_user_origin_id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + end_user_organization_name: "Waystar Royco", + end_user_email_address: "kendall.roy@waystar-royco.com", + status: "COMPLETE", + webhook_listener_url: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + is_duplicate: true, + account_type: "PRODUCTION", + completed_at: "2024-08-26T20:11:19Z", + }; + server + .mockEndpoint() + .get("/hris/v1/account-details") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.accountDetails.retrieve(); + expect(response).toEqual({ + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + integration: "BambooHR", + integrationSlug: "bamboohr", + category: "hris", + endUserOriginId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + endUserOrganizationName: "Waystar Royco", + endUserEmailAddress: "kendall.roy@waystar-royco.com", + status: "COMPLETE", + webhookListenerUrl: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + isDuplicate: true, + accountType: "PRODUCTION", + completedAt: new Date("2024-08-26T20:11:19.000Z"), + }); + }); +}); diff --git a/tests/wire/hris/accountToken.test.ts b/tests/wire/hris/accountToken.test.ts new file mode 100644 index 000000000..e8b622039 --- /dev/null +++ b/tests/wire/hris/accountToken.test.ts @@ -0,0 +1,59 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AccountToken", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + account_token: "T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB", + integration: { + name: "name", + abbreviated_name: "abbreviated_name", + categories: ["hris"], + image: "image", + square_image: "square_image", + color: "color", + slug: "slug", + api_endpoints_to_documentation_urls: { key: "value" }, + webhook_setup_guide_url: "webhook_setup_guide_url", + category_beta_status: { key: "value" }, + }, + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + }; + server + .mockEndpoint() + .get("/hris/v1/account-token/public_token") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.accountToken.retrieve("public_token"); + expect(response).toEqual({ + accountToken: "T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB", + integration: { + name: "name", + abbreviatedName: "abbreviated_name", + categories: ["hris"], + image: "image", + squareImage: "square_image", + color: "color", + slug: "slug", + apiEndpointsToDocumentationUrls: { + key: "value", + }, + webhookSetupGuideUrl: "webhook_setup_guide_url", + categoryBetaStatus: { + key: "value", + }, + }, + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + }); + }); +}); diff --git a/tests/wire/hris/asyncPassthrough.test.ts b/tests/wire/hris/asyncPassthrough.test.ts new file mode 100644 index 000000000..6e01d0c47 --- /dev/null +++ b/tests/wire/hris/asyncPassthrough.test.ts @@ -0,0 +1,71 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AsyncPassthrough", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { method: "GET", path: "/scooters" }; + const rawResponseBody = { async_passthrough_receipt_id: "fd29020f-2695-445e-922e-dcd5e81903fd" }; + server + .mockEndpoint() + .post("/hris/v1/async-passthrough") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.asyncPassthrough.create({ + method: "GET", + path: "/scooters", + }); + expect(response).toEqual({ + asyncPassthroughReceiptId: "fd29020f-2695-445e-922e-dcd5e81903fd", + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + method: "GET", + path: "/scooters", + status: 200, + response: { key: "value" }, + response_headers: { "X-Page-Token": "value" }, + response_type: "JSON", + headers: { "EXTRA-HEADER": "value", Authorization: "" }, + }; + server + .mockEndpoint() + .get("/hris/v1/async-passthrough/async_passthrough_receipt_id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.asyncPassthrough.retrieve("async_passthrough_receipt_id"); + expect(response).toEqual({ + method: "GET", + path: "/scooters", + status: 200, + response: { + key: "value", + }, + responseHeaders: { + "X-Page-Token": "value", + }, + responseType: "JSON", + headers: { + "EXTRA-HEADER": "value", + Authorization: "", + }, + }); + }); +}); diff --git a/tests/wire/hris/auditTrail.test.ts b/tests/wire/hris/auditTrail.test.ts new file mode 100644 index 000000000..7901f789c --- /dev/null +++ b/tests/wire/hris/auditTrail.test.ts @@ -0,0 +1,57 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AuditTrail", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b5ceea2a-7171-47ce-8090-165cfce5572c", + user_name: "Gil Feig", + user_email: "hello@merge.dev", + role: "ADMIN", + ip_address: "192.0.2.123", + event_type: "CREATED_REMOTE_PRODUCTION_API_KEY", + event_description: + "Organization-wide Scopes for model hris.Employee updated from Read to Read+Write", + created_at: "2024-01-15T09:30:00Z", + }, + ], + }; + server + .mockEndpoint() + .get("/hris/v1/audit-trail") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.auditTrail.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b5ceea2a-7171-47ce-8090-165cfce5572c", + userName: "Gil Feig", + userEmail: "hello@merge.dev", + role: "ADMIN", + ipAddress: "192.0.2.123", + eventType: "CREATED_REMOTE_PRODUCTION_API_KEY", + eventDescription: + "Organization-wide Scopes for model hris.Employee updated from Read to Read+Write", + createdAt: new Date("2024-01-15T09:30:00.000Z"), + }, + ], + }); + }); +}); diff --git a/tests/wire/hris/availableActions.test.ts b/tests/wire/hris/availableActions.test.ts new file mode 100644 index 000000000..75e16c0dc --- /dev/null +++ b/tests/wire/hris/availableActions.test.ts @@ -0,0 +1,73 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AvailableActions", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + integration: { + name: "name", + abbreviated_name: "abbreviated_name", + categories: ["hris"], + image: "image", + square_image: "square_image", + color: "color", + slug: "slug", + api_endpoints_to_documentation_urls: { key: "value" }, + webhook_setup_guide_url: "webhook_setup_guide_url", + category_beta_status: { key: "value" }, + }, + passthrough_available: true, + available_model_operations: [ + { + model_name: "Candidate", + available_operations: ["FETCH", "CREATE"], + required_post_parameters: ["remote_user_id"], + supported_fields: ["first_name", "last_name", "company", "title"], + }, + ], + }; + server + .mockEndpoint() + .get("/hris/v1/available-actions") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.availableActions.retrieve(); + expect(response).toEqual({ + integration: { + name: "name", + abbreviatedName: "abbreviated_name", + categories: ["hris"], + image: "image", + squareImage: "square_image", + color: "color", + slug: "slug", + apiEndpointsToDocumentationUrls: { + key: "value", + }, + webhookSetupGuideUrl: "webhook_setup_guide_url", + categoryBetaStatus: { + key: "value", + }, + }, + passthroughAvailable: true, + availableModelOperations: [ + { + modelName: "Candidate", + availableOperations: ["FETCH", "CREATE"], + requiredPostParameters: ["remote_user_id"], + supportedFields: ["first_name", "last_name", "company", "title"], + }, + ], + }); + }); +}); diff --git a/tests/wire/hris/bankInfo.test.ts b/tests/wire/hris/bankInfo.test.ts new file mode 100644 index 000000000..73fa852f9 --- /dev/null +++ b/tests/wire/hris/bankInfo.test.ts @@ -0,0 +1,134 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("BankInfo", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "fd1e0fb5-8f92-4ec9-9f32-179cf732867d", + remote_id: "123234", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee: "employee", + account_number: "439291590", + routing_number: "089690059", + bank_name: "Chase", + account_type: "SAVINGS", + remote_created_at: "2021-12-06T10:11:26Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/bank-info", data: ["Varies by platform"] }], + }, + ], + }; + server.mockEndpoint().get("/hris/v1/bank-info").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.hris.bankInfo.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "fd1e0fb5-8f92-4ec9-9f32-179cf732867d", + remoteId: "123234", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employee: "employee", + accountNumber: "439291590", + routingNumber: "089690059", + bankName: "Chase", + accountType: "SAVINGS", + remoteCreatedAt: new Date("2021-12-06T10:11:26.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/bank-info", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "fd1e0fb5-8f92-4ec9-9f32-179cf732867d", + remote_id: "123234", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee: "employee", + account_number: "439291590", + routing_number: "089690059", + bank_name: "Chase", + account_type: "SAVINGS", + remote_created_at: "2021-12-06T10:11:26Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/bank-info", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/hris/v1/bank-info/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.bankInfo.retrieve("id"); + expect(response).toEqual({ + id: "fd1e0fb5-8f92-4ec9-9f32-179cf732867d", + remoteId: "123234", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employee: "employee", + accountNumber: "439291590", + routingNumber: "089690059", + bankName: "Chase", + accountType: "SAVINGS", + remoteCreatedAt: new Date("2021-12-06T10:11:26.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/bank-info", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/hris/benefits.test.ts b/tests/wire/hris/benefits.test.ts new file mode 100644 index 000000000..2c4f29710 --- /dev/null +++ b/tests/wire/hris/benefits.test.ts @@ -0,0 +1,142 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Benefits", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3fe5ae7a-f1ba-4529-b7af-84e86dc6d232", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee: "employee", + provider_name: "Blue Shield of California", + benefit_plan_type: "benefit_plan_type", + employee_contribution: 23.65, + company_contribution: 150, + start_date: "2020-11-15T00:59:25Z", + end_date: "2021-10-15T00:23:25Z", + remote_was_deleted: true, + employer_benefit: "025fjlc6-6000-430a-848e-aafacbadf4fe", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/benefits", data: ["Varies by platform"] }], + }, + ], + }; + server.mockEndpoint().get("/hris/v1/benefits").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.hris.benefits.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3fe5ae7a-f1ba-4529-b7af-84e86dc6d232", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employee: "employee", + providerName: "Blue Shield of California", + benefitPlanType: "benefit_plan_type", + employeeContribution: 23.65, + companyContribution: 150, + startDate: new Date("2020-11-15T00:59:25.000Z"), + endDate: new Date("2021-10-15T00:23:25.000Z"), + remoteWasDeleted: true, + employerBenefit: "025fjlc6-6000-430a-848e-aafacbadf4fe", + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/benefits", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "3fe5ae7a-f1ba-4529-b7af-84e86dc6d232", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee: "employee", + provider_name: "Blue Shield of California", + benefit_plan_type: "benefit_plan_type", + employee_contribution: 23.65, + company_contribution: 150, + start_date: "2020-11-15T00:59:25Z", + end_date: "2021-10-15T00:23:25Z", + remote_was_deleted: true, + employer_benefit: "025fjlc6-6000-430a-848e-aafacbadf4fe", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/benefits", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/hris/v1/benefits/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.benefits.retrieve("id"); + expect(response).toEqual({ + id: "3fe5ae7a-f1ba-4529-b7af-84e86dc6d232", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employee: "employee", + providerName: "Blue Shield of California", + benefitPlanType: "benefit_plan_type", + employeeContribution: 23.65, + companyContribution: 150, + startDate: new Date("2020-11-15T00:59:25.000Z"), + endDate: new Date("2021-10-15T00:23:25.000Z"), + remoteWasDeleted: true, + employerBenefit: "025fjlc6-6000-430a-848e-aafacbadf4fe", + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/benefits", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/hris/companies.test.ts b/tests/wire/hris/companies.test.ts new file mode 100644 index 000000000..5968cb78a --- /dev/null +++ b/tests/wire/hris/companies.test.ts @@ -0,0 +1,122 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Companies", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "1b998423-db0a-4037-a4cf-f79c60cb67b3", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + legal_name: "Waystar Royco, Inc.", + display_name: "Waystar Royco", + eins: ["12-3456789", "12-3451111", "11-0011000"], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/companies", data: ["Varies by platform"] }], + }, + ], + }; + server.mockEndpoint().get("/hris/v1/companies").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.hris.companies.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "1b998423-db0a-4037-a4cf-f79c60cb67b3", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + legalName: "Waystar Royco, Inc.", + displayName: "Waystar Royco", + eins: ["12-3456789", "12-3451111", "11-0011000"], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/companies", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "1b998423-db0a-4037-a4cf-f79c60cb67b3", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + legal_name: "Waystar Royco, Inc.", + display_name: "Waystar Royco", + eins: ["12-3456789", "12-3451111", "11-0011000"], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/companies", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/hris/v1/companies/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.companies.retrieve("id"); + expect(response).toEqual({ + id: "1b998423-db0a-4037-a4cf-f79c60cb67b3", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + legalName: "Waystar Royco, Inc.", + displayName: "Waystar Royco", + eins: ["12-3456789", "12-3451111", "11-0011000"], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/companies", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/hris/deleteAccount.test.ts b/tests/wire/hris/deleteAccount.test.ts new file mode 100644 index 000000000..4d6156363 --- /dev/null +++ b/tests/wire/hris/deleteAccount.test.ts @@ -0,0 +1,18 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("DeleteAccount", () => { + test("delete", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + server.mockEndpoint().post("/hris/v1/delete-account").respondWith().statusCode(200).build(); + + const response = await client.hris.deleteAccount.delete(); + expect(response).toEqual(undefined); + }); +}); diff --git a/tests/wire/hris/dependents.test.ts b/tests/wire/hris/dependents.test.ts new file mode 100644 index 000000000..af02d41bc --- /dev/null +++ b/tests/wire/hris/dependents.test.ts @@ -0,0 +1,160 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Dependents", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "025fjlc6-6000-430a-848e-aafacbadf4fe", + remote_id: "19202940", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + first_name: "Greg", + middle_name: "A", + last_name: "Hirsch", + relationship: "CHILD", + employee: "0958cbc6-6040-430a-848e-aafacbadf4ae", + date_of_birth: "1990-11-10T00:00:00Z", + gender: "MALE", + phone_number: "+1234567890", + home_location: "d2f972d0-2526-434b-9409-4c3b468e08f0", + is_student: true, + ssn: "1234567890", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/dependent", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/hris/v1/dependents") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.dependents.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "025fjlc6-6000-430a-848e-aafacbadf4fe", + remoteId: "19202940", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + firstName: "Greg", + middleName: "A", + lastName: "Hirsch", + relationship: "CHILD", + employee: "0958cbc6-6040-430a-848e-aafacbadf4ae", + dateOfBirth: new Date("1990-11-10T00:00:00.000Z"), + gender: "MALE", + phoneNumber: "+1234567890", + homeLocation: "d2f972d0-2526-434b-9409-4c3b468e08f0", + isStudent: true, + ssn: "1234567890", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/dependent", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "025fjlc6-6000-430a-848e-aafacbadf4fe", + remote_id: "19202940", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + first_name: "Greg", + middle_name: "A", + last_name: "Hirsch", + relationship: "CHILD", + employee: "0958cbc6-6040-430a-848e-aafacbadf4ae", + date_of_birth: "1990-11-10T00:00:00Z", + gender: "MALE", + phone_number: "+1234567890", + home_location: "d2f972d0-2526-434b-9409-4c3b468e08f0", + is_student: true, + ssn: "1234567890", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/dependent", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/hris/v1/dependents/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.dependents.retrieve("id"); + expect(response).toEqual({ + id: "025fjlc6-6000-430a-848e-aafacbadf4fe", + remoteId: "19202940", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + firstName: "Greg", + middleName: "A", + lastName: "Hirsch", + relationship: "CHILD", + employee: "0958cbc6-6040-430a-848e-aafacbadf4ae", + dateOfBirth: new Date("1990-11-10T00:00:00.000Z"), + gender: "MALE", + phoneNumber: "+1234567890", + homeLocation: "d2f972d0-2526-434b-9409-4c3b468e08f0", + isStudent: true, + ssn: "1234567890", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/dependent", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/hris/employeePayrollRuns.test.ts b/tests/wire/hris/employeePayrollRuns.test.ts new file mode 100644 index 000000000..4e9622968 --- /dev/null +++ b/tests/wire/hris/employeePayrollRuns.test.ts @@ -0,0 +1,393 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("EmployeePayrollRuns", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "fb8c55b6-1cb8-4b4c-9fb6-17924231619d", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee: "employee", + payroll_run: "payroll_run", + gross_pay: 1342.67, + net_pay: 865.78, + start_date: "2020-11-08T00:00:00Z", + end_date: "2020-11-09T00:00:00Z", + check_date: "2020-11-10T00:00:00Z", + earnings: [ + { + id: "babbced6-3a81-4775-8da2-490dc6385259", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee_payroll_run: "35347df1-95e7-46e2-93cc-66f1191edca5", + amount: 1002.34, + type: "SALARY", + }, + { + id: "babbced6-3a81-4775-8da2-490dc6385259", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee_payroll_run: "35347df1-95e7-46e2-93cc-66f1191edca5", + amount: 8342.34, + type: "OVERTIME", + }, + ], + deductions: [ + { + id: "5fd439fc-1b64-4755-b275-64918936c365", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee_payroll_run: "35347df1-95e7-46e2-93cc-66f1191edca5", + name: "Social Security", + employee_deduction: 34.54, + company_deduction: 78.78, + }, + ], + taxes: [ + { + id: "e3a825fd-c38d-4095-a717-df98c4cb9ebc", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee_payroll_run: "35347df1-95e7-46e2-93cc-66f1191edca5", + name: "California State Income Tax", + amount: 100.25, + employer_tax: true, + }, + ], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/employee-payroll", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/hris/v1/employee-payroll-runs") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.employeePayrollRuns.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "fb8c55b6-1cb8-4b4c-9fb6-17924231619d", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employee: "employee", + payrollRun: "payroll_run", + grossPay: 1342.67, + netPay: 865.78, + startDate: new Date("2020-11-08T00:00:00.000Z"), + endDate: new Date("2020-11-09T00:00:00.000Z"), + checkDate: new Date("2020-11-10T00:00:00.000Z"), + earnings: [ + { + id: "babbced6-3a81-4775-8da2-490dc6385259", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employeePayrollRun: "35347df1-95e7-46e2-93cc-66f1191edca5", + amount: 1002.34, + type: "SALARY", + }, + { + id: "babbced6-3a81-4775-8da2-490dc6385259", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employeePayrollRun: "35347df1-95e7-46e2-93cc-66f1191edca5", + amount: 8342.34, + type: "OVERTIME", + }, + ], + deductions: [ + { + id: "5fd439fc-1b64-4755-b275-64918936c365", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employeePayrollRun: "35347df1-95e7-46e2-93cc-66f1191edca5", + name: "Social Security", + employeeDeduction: 34.54, + companyDeduction: 78.78, + }, + ], + taxes: [ + { + id: "e3a825fd-c38d-4095-a717-df98c4cb9ebc", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employeePayrollRun: "35347df1-95e7-46e2-93cc-66f1191edca5", + name: "California State Income Tax", + amount: 100.25, + employerTax: true, + }, + ], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/employee-payroll", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "fb8c55b6-1cb8-4b4c-9fb6-17924231619d", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee: "employee", + payroll_run: "payroll_run", + gross_pay: 1342.67, + net_pay: 865.78, + start_date: "2020-11-08T00:00:00Z", + end_date: "2020-11-09T00:00:00Z", + check_date: "2020-11-10T00:00:00Z", + earnings: [ + { + id: "babbced6-3a81-4775-8da2-490dc6385259", + remote_id: "52802", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee_payroll_run: "35347df1-95e7-46e2-93cc-66f1191edca5", + amount: 1002.34, + type: "SALARY", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + }, + { + id: "babbced6-3a81-4775-8da2-490dc6385259", + remote_id: "52802", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee_payroll_run: "35347df1-95e7-46e2-93cc-66f1191edca5", + amount: 8342.34, + type: "OVERTIME", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + }, + ], + deductions: [ + { + id: "5fd439fc-1b64-4755-b275-64918936c365", + remote_id: "93478612", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee_payroll_run: "35347df1-95e7-46e2-93cc-66f1191edca5", + name: "Social Security", + employee_deduction: 34.54, + company_deduction: 78.78, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/payroll-deduction", data: ["Varies by platform"] }], + }, + ], + taxes: [ + { + id: "e3a825fd-c38d-4095-a717-df98c4cb9ebc", + remote_id: "26806834", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee_payroll_run: "35347df1-95e7-46e2-93cc-66f1191edca5", + name: "California State Income Tax", + amount: 100.25, + employer_tax: true, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + }, + ], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/employee-payroll", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/hris/v1/employee-payroll-runs/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.employeePayrollRuns.retrieve("id"); + expect(response).toEqual({ + id: "fb8c55b6-1cb8-4b4c-9fb6-17924231619d", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employee: "employee", + payrollRun: "payroll_run", + grossPay: 1342.67, + netPay: 865.78, + startDate: new Date("2020-11-08T00:00:00.000Z"), + endDate: new Date("2020-11-09T00:00:00.000Z"), + checkDate: new Date("2020-11-10T00:00:00.000Z"), + earnings: [ + { + id: "babbced6-3a81-4775-8da2-490dc6385259", + remoteId: "52802", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employeePayrollRun: "35347df1-95e7-46e2-93cc-66f1191edca5", + amount: 1002.34, + type: "SALARY", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + }, + { + id: "babbced6-3a81-4775-8da2-490dc6385259", + remoteId: "52802", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employeePayrollRun: "35347df1-95e7-46e2-93cc-66f1191edca5", + amount: 8342.34, + type: "OVERTIME", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + }, + ], + deductions: [ + { + id: "5fd439fc-1b64-4755-b275-64918936c365", + remoteId: "93478612", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employeePayrollRun: "35347df1-95e7-46e2-93cc-66f1191edca5", + name: "Social Security", + employeeDeduction: 34.54, + companyDeduction: 78.78, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/payroll-deduction", + data: ["Varies by platform"], + }, + ], + }, + ], + taxes: [ + { + id: "e3a825fd-c38d-4095-a717-df98c4cb9ebc", + remoteId: "26806834", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employeePayrollRun: "35347df1-95e7-46e2-93cc-66f1191edca5", + name: "California State Income Tax", + amount: 100.25, + employerTax: true, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + }, + ], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/employee-payroll", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/hris/employees.test.ts b/tests/wire/hris/employees.test.ts new file mode 100644 index 000000000..0c9d971ad --- /dev/null +++ b/tests/wire/hris/employees.test.ts @@ -0,0 +1,838 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Employees", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee_number: "2", + company: "company", + first_name: "Greg", + last_name: "Hirsch", + preferred_name: "Greg the egg", + display_full_name: "Cousin Greg Hirsch", + username: "cousingreg", + groups: ["21a54124-397f-494d-985e-3c5b330b8a68"], + work_email: "greg@merge.dev", + personal_email: "greg@gmail.com", + mobile_phone_number: "+1234567890", + employments: ["17a54124-287f-494d-965e-3c5b330c9a68"], + home_location: "home_location", + work_location: "work_location", + manager: "manager", + team: "team", + pay_group: "pay_group", + ssn: "1234567890", + gender: "MALE", + ethnicity: "AMERICAN_INDIAN_OR_ALASKA_NATIVE", + marital_status: "SINGLE", + date_of_birth: "1990-11-10T00:00:00Z", + hire_date: "2020-10-10T00:00:00Z", + start_date: "2020-10-11T00:00:00Z", + remote_created_at: "2020-10-11T00:00:00Z", + employment_status: "ACTIVE", + termination_date: "2021-10-12T00:00:00Z", + avatar: "http://alturl.com/h2h8m", + custom_fields: { key: "value" }, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/people", data: ["Varies by platform"] }], + }, + ], + }; + server.mockEndpoint().get("/hris/v1/employees").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.hris.employees.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employeeNumber: "2", + company: "company", + firstName: "Greg", + lastName: "Hirsch", + preferredName: "Greg the egg", + displayFullName: "Cousin Greg Hirsch", + username: "cousingreg", + groups: ["21a54124-397f-494d-985e-3c5b330b8a68"], + workEmail: "greg@merge.dev", + personalEmail: "greg@gmail.com", + mobilePhoneNumber: "+1234567890", + employments: ["17a54124-287f-494d-965e-3c5b330c9a68"], + homeLocation: "home_location", + workLocation: "work_location", + manager: "manager", + team: "team", + payGroup: "pay_group", + ssn: "1234567890", + gender: "MALE", + ethnicity: "AMERICAN_INDIAN_OR_ALASKA_NATIVE", + maritalStatus: "SINGLE", + dateOfBirth: new Date("1990-11-10T00:00:00.000Z"), + hireDate: new Date("2020-10-10T00:00:00.000Z"), + startDate: new Date("2020-10-11T00:00:00.000Z"), + remoteCreatedAt: new Date("2020-10-11T00:00:00.000Z"), + employmentStatus: "ACTIVE", + terminationDate: new Date("2021-10-12T00:00:00.000Z"), + avatar: "http://alturl.com/h2h8m", + customFields: { + key: "value", + }, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/people", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee_number: "2", + company: "company", + first_name: "Greg", + last_name: "Hirsch", + preferred_name: "Greg the egg", + display_full_name: "Cousin Greg Hirsch", + username: "cousingreg", + groups: ["21a54124-397f-494d-985e-3c5b330b8a68"], + work_email: "greg@merge.dev", + personal_email: "greg@gmail.com", + mobile_phone_number: "+1234567890", + employments: ["17a54124-287f-494d-965e-3c5b330c9a68"], + home_location: "home_location", + work_location: "work_location", + manager: "manager", + team: "team", + pay_group: "pay_group", + ssn: "1234567890", + gender: "MALE", + ethnicity: "AMERICAN_INDIAN_OR_ALASKA_NATIVE", + marital_status: "SINGLE", + date_of_birth: "1990-11-10T00:00:00Z", + hire_date: "2020-10-10T00:00:00Z", + start_date: "2020-10-11T00:00:00Z", + remote_created_at: "2020-10-11T00:00:00Z", + employment_status: "ACTIVE", + termination_date: "2021-10-12T00:00:00Z", + avatar: "http://alturl.com/h2h8m", + custom_fields: { key: "value" }, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/people", data: ["Varies by platform"] }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/hris/v1/employees") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.employees.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employeeNumber: "2", + company: "company", + firstName: "Greg", + lastName: "Hirsch", + preferredName: "Greg the egg", + displayFullName: "Cousin Greg Hirsch", + username: "cousingreg", + groups: ["21a54124-397f-494d-985e-3c5b330b8a68"], + workEmail: "greg@merge.dev", + personalEmail: "greg@gmail.com", + mobilePhoneNumber: "+1234567890", + employments: ["17a54124-287f-494d-965e-3c5b330c9a68"], + homeLocation: "home_location", + workLocation: "work_location", + manager: "manager", + team: "team", + payGroup: "pay_group", + ssn: "1234567890", + gender: "MALE", + ethnicity: "AMERICAN_INDIAN_OR_ALASKA_NATIVE", + maritalStatus: "SINGLE", + dateOfBirth: new Date("1990-11-10T00:00:00.000Z"), + hireDate: new Date("2020-10-10T00:00:00.000Z"), + startDate: new Date("2020-10-11T00:00:00.000Z"), + remoteCreatedAt: new Date("2020-10-11T00:00:00.000Z"), + employmentStatus: "ACTIVE", + terminationDate: new Date("2021-10-12T00:00:00.000Z"), + avatar: "http://alturl.com/h2h8m", + customFields: { + key: "value", + }, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/people", + data: ["Varies by platform"], + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee_number: "2", + company: "company", + first_name: "Greg", + last_name: "Hirsch", + preferred_name: "Greg the egg", + display_full_name: "Cousin Greg Hirsch", + username: "cousingreg", + groups: ["21a54124-397f-494d-985e-3c5b330b8a68"], + work_email: "greg@merge.dev", + personal_email: "greg@gmail.com", + mobile_phone_number: "+1234567890", + employments: ["17a54124-287f-494d-965e-3c5b330c9a68"], + home_location: "home_location", + work_location: "work_location", + manager: "manager", + team: "team", + pay_group: "pay_group", + ssn: "1234567890", + gender: "MALE", + ethnicity: "AMERICAN_INDIAN_OR_ALASKA_NATIVE", + marital_status: "SINGLE", + date_of_birth: "1990-11-10T00:00:00Z", + hire_date: "2020-10-10T00:00:00Z", + start_date: "2020-10-11T00:00:00Z", + remote_created_at: "2020-10-11T00:00:00Z", + employment_status: "ACTIVE", + termination_date: "2021-10-12T00:00:00Z", + avatar: "http://alturl.com/h2h8m", + custom_fields: { key: "value" }, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/people", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/hris/v1/employees/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.employees.retrieve("id"); + expect(response).toEqual({ + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employeeNumber: "2", + company: "company", + firstName: "Greg", + lastName: "Hirsch", + preferredName: "Greg the egg", + displayFullName: "Cousin Greg Hirsch", + username: "cousingreg", + groups: ["21a54124-397f-494d-985e-3c5b330b8a68"], + workEmail: "greg@merge.dev", + personalEmail: "greg@gmail.com", + mobilePhoneNumber: "+1234567890", + employments: ["17a54124-287f-494d-965e-3c5b330c9a68"], + homeLocation: "home_location", + workLocation: "work_location", + manager: "manager", + team: "team", + payGroup: "pay_group", + ssn: "1234567890", + gender: "MALE", + ethnicity: "AMERICAN_INDIAN_OR_ALASKA_NATIVE", + maritalStatus: "SINGLE", + dateOfBirth: new Date("1990-11-10T00:00:00.000Z"), + hireDate: new Date("2020-10-10T00:00:00.000Z"), + startDate: new Date("2020-10-11T00:00:00.000Z"), + remoteCreatedAt: new Date("2020-10-11T00:00:00.000Z"), + employmentStatus: "ACTIVE", + terminationDate: new Date("2021-10-12T00:00:00.000Z"), + avatar: "http://alturl.com/h2h8m", + customFields: { + key: "value", + }, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/people", + data: ["Varies by platform"], + }, + ], + }); + }); + + test("ignoreCreate", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { reason: "GENERAL_CUSTOMER_REQUEST" }; + + server + .mockEndpoint() + .post("/hris/v1/employees/ignore/model_id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .build(); + + const response = await client.hris.employees.ignoreCreate("model_id", { + reason: "GENERAL_CUSTOMER_REQUEST", + }); + expect(response).toEqual(undefined); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/hris/v1/employees/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.employees.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/hris/employerBenefits.test.ts b/tests/wire/hris/employerBenefits.test.ts new file mode 100644 index 000000000..9ac0b3f08 --- /dev/null +++ b/tests/wire/hris/employerBenefits.test.ts @@ -0,0 +1,133 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("EmployerBenefits", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "025fjlc6-6000-430a-848e-aafacbadf4fele", + remote_id: "19202939", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + benefit_plan_type: "MEDICAL", + name: "Kaiser Permanente Medical Plan", + description: "HDHP Silver Plan", + deduction_code: "COL", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + }, + ], + }; + server + .mockEndpoint() + .get("/hris/v1/employer-benefits") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.employerBenefits.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "025fjlc6-6000-430a-848e-aafacbadf4fele", + remoteId: "19202939", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + benefitPlanType: "MEDICAL", + name: "Kaiser Permanente Medical Plan", + description: "HDHP Silver Plan", + deductionCode: "COL", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "025fjlc6-6000-430a-848e-aafacbadf4fele", + remote_id: "19202939", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + benefit_plan_type: "MEDICAL", + name: "Kaiser Permanente Medical Plan", + description: "HDHP Silver Plan", + deduction_code: "COL", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint", data: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/hris/v1/employer-benefits/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.employerBenefits.retrieve("id"); + expect(response).toEqual({ + id: "025fjlc6-6000-430a-848e-aafacbadf4fele", + remoteId: "19202939", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + benefitPlanType: "MEDICAL", + name: "Kaiser Permanente Medical Plan", + description: "HDHP Silver Plan", + deductionCode: "COL", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + data: { + key: "value", + }, + }, + ], + }); + }); +}); diff --git a/tests/wire/hris/employments.test.ts b/tests/wire/hris/employments.test.ts new file mode 100644 index 000000000..34f79000c --- /dev/null +++ b/tests/wire/hris/employments.test.ts @@ -0,0 +1,156 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Employments", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "65d8ffd0-211b-4ba4-b85a-fbe2ce220982", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee: "employee", + job_title: "Executive Assistant to Tom Wambsgans", + pay_rate: 1.1, + pay_period: "HOUR", + pay_frequency: "WEEKLY", + pay_currency: "XUA", + pay_group: "pay_group", + flsa_status: "EXEMPT", + effective_date: "2023-10-06T18:42:34Z", + employment_type: "FULL_TIME", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/jobs", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/hris/v1/employments") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.employments.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "65d8ffd0-211b-4ba4-b85a-fbe2ce220982", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employee: "employee", + jobTitle: "Executive Assistant to Tom Wambsgans", + payRate: 1.1, + payPeriod: "HOUR", + payFrequency: "WEEKLY", + payCurrency: "XUA", + payGroup: "pay_group", + flsaStatus: "EXEMPT", + effectiveDate: new Date("2023-10-06T18:42:34.000Z"), + employmentType: "FULL_TIME", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/jobs", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "65d8ffd0-211b-4ba4-b85a-fbe2ce220982", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee: "employee", + job_title: "Executive Assistant to Tom Wambsgans", + pay_rate: 1.1, + pay_period: "HOUR", + pay_frequency: "WEEKLY", + pay_currency: "XUA", + pay_group: "pay_group", + flsa_status: "EXEMPT", + effective_date: "2023-10-06T18:42:34Z", + employment_type: "FULL_TIME", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/jobs", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/hris/v1/employments/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.employments.retrieve("id"); + expect(response).toEqual({ + id: "65d8ffd0-211b-4ba4-b85a-fbe2ce220982", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employee: "employee", + jobTitle: "Executive Assistant to Tom Wambsgans", + payRate: 1.1, + payPeriod: "HOUR", + payFrequency: "WEEKLY", + payCurrency: "XUA", + payGroup: "pay_group", + flsaStatus: "EXEMPT", + effectiveDate: new Date("2023-10-06T18:42:34.000Z"), + employmentType: "FULL_TIME", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/jobs", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/hris/fieldMapping.test.ts b/tests/wire/hris/fieldMapping.test.ts new file mode 100644 index 000000000..55f408ddf --- /dev/null +++ b/tests/wire/hris/fieldMapping.test.ts @@ -0,0 +1,1834 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("FieldMapping", () => { + test("field_mappings_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + Benefit: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + EmployerBenefit: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Company: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + EmployeePayrollRun: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Employee: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Employment: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Location: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + PayrollRun: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Team: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + TimeOff: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + TimeOffBalance: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + BankInfo: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + PayGroup: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Group: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Dependent: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + TimesheetEntry: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + }; + server + .mockEndpoint() + .get("/hris/v1/field-mappings") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.fieldMapping.fieldMappingsRetrieve(); + expect(response).toEqual({ + benefit: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + employerBenefit: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + company: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + employeePayrollRun: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + employee: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + employment: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + location: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + payrollRun: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + team: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + timeOff: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + timeOffBalance: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + bankInfo: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + payGroup: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + group: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + dependent: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + timesheetEntry: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + }); + }); + + test("field_mappings_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { + target_field_name: "example_target_field_name", + target_field_description: "this is a example description of the target field", + remote_field_traversal_path: ["example_remote_field"], + remote_method: "GET", + remote_url_path: "/example-url-path", + common_model_name: "ExampleCommonModel", + }; + const rawResponseBody = { + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/hris/v1/field-mappings") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.fieldMapping.fieldMappingsCreate({ + targetFieldName: "example_target_field_name", + targetFieldDescription: "this is a example description of the target field", + remoteFieldTraversalPath: ["example_remote_field"], + remoteMethod: "GET", + remoteUrlPath: "/example-url-path", + commonModelName: "ExampleCommonModel", + }); + expect(response).toEqual({ + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("field_mappings_destroy", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .delete("/hris/v1/field-mappings/field_mapping_id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.fieldMapping.fieldMappingsDestroy("field_mapping_id"); + expect(response).toEqual({ + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("field_mappings_partial_update", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = {}; + const rawResponseBody = { + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .patch("/hris/v1/field-mappings/field_mapping_id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id"); + expect(response).toEqual({ + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("remote_fields_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + Benefit: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + EmployerBenefit: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Company: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + EmployeePayrollRun: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Employee: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Employment: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Location: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + PayrollRun: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Team: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + TimeOff: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + TimeOffBalance: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + BankInfo: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + PayGroup: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Group: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Dependent: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + TimesheetEntry: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + }; + server + .mockEndpoint() + .get("/hris/v1/remote-fields") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.fieldMapping.remoteFieldsRetrieve(); + expect(response).toEqual({ + benefit: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + employerBenefit: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + company: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + employeePayrollRun: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + employee: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + employment: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + location: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + payrollRun: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + team: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + timeOff: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + timeOffBalance: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + bankInfo: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + payGroup: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + group: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + dependent: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + timesheetEntry: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + }); + }); + + test("target_fields_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + Benefit: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + EmployerBenefit: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Company: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + EmployeePayrollRun: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Employee: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Employment: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Location: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + PayrollRun: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Team: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + TimeOff: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + TimeOffBalance: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + BankInfo: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + PayGroup: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Group: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Dependent: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + TimesheetEntry: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + }; + server + .mockEndpoint() + .get("/hris/v1/target-fields") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.fieldMapping.targetFieldsRetrieve(); + expect(response).toEqual({ + benefit: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + employerBenefit: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + company: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + employeePayrollRun: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + employee: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + employment: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + location: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + payrollRun: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + team: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + timeOff: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + timeOffBalance: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + bankInfo: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + payGroup: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + group: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + dependent: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + timesheetEntry: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + }); + }); +}); diff --git a/tests/wire/hris/forceResync.test.ts b/tests/wire/hris/forceResync.test.ts new file mode 100644 index 000000000..0dc9e9ae1 --- /dev/null +++ b/tests/wire/hris/forceResync.test.ts @@ -0,0 +1,49 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("ForceResync", () => { + test("sync_status_resync_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = [ + { + model_name: "Employee", + model_id: "hris.Employee", + last_sync_start: "2021-03-30T19:44:18Z", + next_sync_start: "2021-03-30T20:44:18Z", + last_sync_result: "SYNCING", + last_sync_finished: "2021-03-30T19:55:18Z", + status: "SYNCING", + is_initial_sync: true, + selective_sync_configurations_usage: "IN_NEXT_SYNC", + }, + ]; + server + .mockEndpoint() + .post("/hris/v1/sync-status/resync") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.forceResync.syncStatusResyncCreate(); + expect(response).toEqual([ + { + modelName: "Employee", + modelId: "hris.Employee", + lastSyncStart: new Date("2021-03-30T19:44:18.000Z"), + nextSyncStart: new Date("2021-03-30T20:44:18.000Z"), + lastSyncResult: "SYNCING", + lastSyncFinished: new Date("2021-03-30T19:55:18.000Z"), + status: "SYNCING", + isInitialSync: true, + selectiveSyncConfigurationsUsage: "IN_NEXT_SYNC", + }, + ]); + }); +}); diff --git a/tests/wire/hris/generateKey.test.ts b/tests/wire/hris/generateKey.test.ts new file mode 100644 index 000000000..ec7f854f6 --- /dev/null +++ b/tests/wire/hris/generateKey.test.ts @@ -0,0 +1,34 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("GenerateKey", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { name: "Remote Deployment Key 1" }; + const rawResponseBody = { + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }; + server + .mockEndpoint() + .post("/hris/v1/generate-key") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.generateKey.create({ + name: "Remote Deployment Key 1", + }); + expect(response).toEqual({ + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }); + }); +}); diff --git a/tests/wire/hris/groups.test.ts b/tests/wire/hris/groups.test.ts new file mode 100644 index 000000000..445e70d66 --- /dev/null +++ b/tests/wire/hris/groups.test.ts @@ -0,0 +1,120 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Groups", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "134e0111-0f67-44f6-98f0-597000290bb3", + remote_id: "800293", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + parent_group: "2ef51b11-2c4e-4b02-8d1d-50592d9e96ef", + name: "COST_CENTER_US", + type: "TEAM", + is_commonly_used_as_team: true, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/group", data: ["Varies by platform"] }], + }, + ], + }; + server.mockEndpoint().get("/hris/v1/groups").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.hris.groups.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "134e0111-0f67-44f6-98f0-597000290bb3", + remoteId: "800293", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + parentGroup: "2ef51b11-2c4e-4b02-8d1d-50592d9e96ef", + name: "COST_CENTER_US", + type: "TEAM", + isCommonlyUsedAsTeam: true, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/group", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "134e0111-0f67-44f6-98f0-597000290bb3", + remote_id: "800293", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + parent_group: "2ef51b11-2c4e-4b02-8d1d-50592d9e96ef", + name: "COST_CENTER_US", + type: "TEAM", + is_commonly_used_as_team: true, + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/group", data: ["Varies by platform"] }], + }; + server.mockEndpoint().get("/hris/v1/groups/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.hris.groups.retrieve("id"); + expect(response).toEqual({ + id: "134e0111-0f67-44f6-98f0-597000290bb3", + remoteId: "800293", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + parentGroup: "2ef51b11-2c4e-4b02-8d1d-50592d9e96ef", + name: "COST_CENTER_US", + type: "TEAM", + isCommonlyUsedAsTeam: true, + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/group", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/hris/issues.test.ts b/tests/wire/hris/issues.test.ts new file mode 100644 index 000000000..946d2cee4 --- /dev/null +++ b/tests/wire/hris/issues.test.ts @@ -0,0 +1,82 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Issues", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + error_description: "Missing Permissions", + end_user: { key: "value" }, + first_incident_time: "2022-12-05T16:19:15Z", + last_incident_time: "2022-12-05T16:19:15Z", + is_muted: true, + error_details: ["Missing employee permissions.", "Missing time off permissions."], + }, + ], + }; + server.mockEndpoint().get("/hris/v1/issues").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.hris.issues.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + errorDescription: "Missing Permissions", + endUser: { + key: "value", + }, + firstIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + lastIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + isMuted: true, + errorDetails: ["Missing employee permissions.", "Missing time off permissions."], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + error_description: "Missing Permissions", + end_user: { key: "value" }, + first_incident_time: "2022-12-05T16:19:15Z", + last_incident_time: "2022-12-05T16:19:15Z", + is_muted: true, + error_details: ["Missing employee permissions.", "Missing time off permissions."], + }; + server.mockEndpoint().get("/hris/v1/issues/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.hris.issues.retrieve("id"); + expect(response).toEqual({ + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + errorDescription: "Missing Permissions", + endUser: { + key: "value", + }, + firstIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + lastIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + isMuted: true, + errorDetails: ["Missing employee permissions.", "Missing time off permissions."], + }); + }); +}); diff --git a/tests/wire/hris/linkToken.test.ts b/tests/wire/hris/linkToken.test.ts new file mode 100644 index 000000000..191e69639 --- /dev/null +++ b/tests/wire/hris/linkToken.test.ts @@ -0,0 +1,44 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("LinkToken", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { + end_user_email_address: "example@gmail.com", + end_user_organization_name: "Test Organization", + end_user_origin_id: "12345", + categories: ["hris", "ats"], + }; + const rawResponseBody = { + link_token: "necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0", + integration_name: "Lever", + magic_link_url: "https://link.merge.dev/asdfjkl12345jsndfgi2i83n", + }; + server + .mockEndpoint() + .post("/hris/v1/link-token") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.linkToken.create({ + endUserEmailAddress: "example@gmail.com", + endUserOrganizationName: "Test Organization", + endUserOriginId: "12345", + categories: ["hris", "ats"], + }); + expect(response).toEqual({ + linkToken: "necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0", + integrationName: "Lever", + magicLinkUrl: "https://link.merge.dev/asdfjkl12345jsndfgi2i83n", + }); + }); +}); diff --git a/tests/wire/hris/linkedAccounts.test.ts b/tests/wire/hris/linkedAccounts.test.ts new file mode 100644 index 000000000..dadefce0a --- /dev/null +++ b/tests/wire/hris/linkedAccounts.test.ts @@ -0,0 +1,97 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("LinkedAccounts", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "e59b1821-f85c-4e28-a6b3-1804156f3563", + category: "hris", + status: "COMPLETE", + status_detail: "Invalid login credentials", + end_user_origin_id: "3ac95cde-6c7f-4eef-afec-be710b42308d", + end_user_organization_name: "Foo Bar, LLC", + end_user_email_address: "hradmin@foobar.dev", + subdomain: "foobar", + webhook_listener_url: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + is_duplicate: true, + integration: { + name: "name", + categories: ["hris"], + color: "color", + slug: "slug", + passthrough_available: true, + available_model_operations: [ + { + model_name: "Candidate", + available_operations: ["FETCH", "CREATE"], + required_post_parameters: ["remote_user_id"], + supported_fields: ["first_name", "last_name", "company", "title"], + }, + ], + }, + account_type: "PRODUCTION", + completed_at: "2024-08-26T20:11:19Z", + integration_specific_fields: { integration_specific_field: "Varies by platform" }, + }, + ], + }; + server + .mockEndpoint() + .get("/hris/v1/linked-accounts") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.linkedAccounts.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "e59b1821-f85c-4e28-a6b3-1804156f3563", + category: "hris", + status: "COMPLETE", + statusDetail: "Invalid login credentials", + endUserOriginId: "3ac95cde-6c7f-4eef-afec-be710b42308d", + endUserOrganizationName: "Foo Bar, LLC", + endUserEmailAddress: "hradmin@foobar.dev", + subdomain: "foobar", + webhookListenerUrl: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + isDuplicate: true, + integration: { + name: "name", + categories: ["hris"], + color: "color", + slug: "slug", + passthroughAvailable: true, + availableModelOperations: [ + { + modelName: "Candidate", + availableOperations: ["FETCH", "CREATE"], + requiredPostParameters: ["remote_user_id"], + supportedFields: ["first_name", "last_name", "company", "title"], + }, + ], + }, + accountType: "PRODUCTION", + completedAt: new Date("2024-08-26T20:11:19.000Z"), + integrationSpecificFields: { + integration_specific_field: "Varies by platform", + }, + }, + ], + }); + }); +}); diff --git a/tests/wire/hris/locations.test.ts b/tests/wire/hris/locations.test.ts new file mode 100644 index 000000000..2af770eb7 --- /dev/null +++ b/tests/wire/hris/locations.test.ts @@ -0,0 +1,146 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Locations", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "f5e6a151-f44e-449a-afb1-8fd781905958", + remote_id: "93018402", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "NYC Office", + phone_number: "+1111111111", + street_1: "2920 Broadway", + street_2: "2nd Floor", + city: "New York ", + state: "NY", + zip_code: "10027", + country: "AF", + location_type: "HOME", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/locations", data: ["Varies by platform"] }], + }, + ], + }; + server.mockEndpoint().get("/hris/v1/locations").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.hris.locations.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "f5e6a151-f44e-449a-afb1-8fd781905958", + remoteId: "93018402", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "NYC Office", + phoneNumber: "+1111111111", + street1: "2920 Broadway", + street2: "2nd Floor", + city: "New York ", + state: "NY", + zipCode: "10027", + country: "AF", + locationType: "HOME", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/locations", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "f5e6a151-f44e-449a-afb1-8fd781905958", + remote_id: "93018402", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "NYC Office", + phone_number: "+1111111111", + street_1: "2920 Broadway", + street_2: "2nd Floor", + city: "New York ", + state: "NY", + zip_code: "10027", + country: "AF", + location_type: "HOME", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/locations", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/hris/v1/locations/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.locations.retrieve("id"); + expect(response).toEqual({ + id: "f5e6a151-f44e-449a-afb1-8fd781905958", + remoteId: "93018402", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "NYC Office", + phoneNumber: "+1111111111", + street1: "2920 Broadway", + street2: "2nd Floor", + city: "New York ", + state: "NY", + zipCode: "10027", + country: "AF", + locationType: "HOME", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/locations", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/hris/passthrough.test.ts b/tests/wire/hris/passthrough.test.ts new file mode 100644 index 000000000..61c65ec2e --- /dev/null +++ b/tests/wire/hris/passthrough.test.ts @@ -0,0 +1,52 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Passthrough", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { method: "GET", path: "/scooters" }; + const rawResponseBody = { + method: "GET", + path: "/scooters", + status: 200, + response: { key: "value" }, + response_headers: { "X-Page-Token": "value" }, + response_type: "JSON", + headers: { "EXTRA-HEADER": "value", Authorization: "" }, + }; + server + .mockEndpoint() + .post("/hris/v1/passthrough") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.passthrough.create({ + method: "GET", + path: "/scooters", + }); + expect(response).toEqual({ + method: "GET", + path: "/scooters", + status: 200, + response: { + key: "value", + }, + responseHeaders: { + "X-Page-Token": "value", + }, + responseType: "JSON", + headers: { + "EXTRA-HEADER": "value", + Authorization: "", + }, + }); + }); +}); diff --git a/tests/wire/hris/payGroups.test.ts b/tests/wire/hris/payGroups.test.ts new file mode 100644 index 000000000..95400d62c --- /dev/null +++ b/tests/wire/hris/payGroups.test.ts @@ -0,0 +1,120 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("PayGroups", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "fd1e0fb5-8f92-4ec9-9f32-179cf732867d", + remote_id: "800293", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + pay_group_name: "contractor", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/pay-group", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/hris/v1/pay-groups") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.payGroups.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "fd1e0fb5-8f92-4ec9-9f32-179cf732867d", + remoteId: "800293", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + payGroupName: "contractor", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/pay-group", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "fd1e0fb5-8f92-4ec9-9f32-179cf732867d", + remote_id: "800293", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + pay_group_name: "contractor", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/pay-group", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/hris/v1/pay-groups/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.payGroups.retrieve("id"); + expect(response).toEqual({ + id: "fd1e0fb5-8f92-4ec9-9f32-179cf732867d", + remoteId: "800293", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + payGroupName: "contractor", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/pay-group", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/hris/payrollRuns.test.ts b/tests/wire/hris/payrollRuns.test.ts new file mode 100644 index 000000000..6fe8c49f7 --- /dev/null +++ b/tests/wire/hris/payrollRuns.test.ts @@ -0,0 +1,136 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("PayrollRuns", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "37336947-b3d4-4a4c-a310-ab6ab510e079", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + run_state: "PAID", + run_type: "REGULAR", + start_date: "2020-11-08T00:00:00Z", + end_date: "2020-11-15T00:00:00Z", + check_date: "2020-11-15T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/payroll", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/hris/v1/payroll-runs") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.payrollRuns.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "37336947-b3d4-4a4c-a310-ab6ab510e079", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + runState: "PAID", + runType: "REGULAR", + startDate: new Date("2020-11-08T00:00:00.000Z"), + endDate: new Date("2020-11-15T00:00:00.000Z"), + checkDate: new Date("2020-11-15T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/payroll", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "37336947-b3d4-4a4c-a310-ab6ab510e079", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + run_state: "PAID", + run_type: "REGULAR", + start_date: "2020-11-08T00:00:00Z", + end_date: "2020-11-15T00:00:00Z", + check_date: "2020-11-15T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/payroll", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/hris/v1/payroll-runs/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.payrollRuns.retrieve("id"); + expect(response).toEqual({ + id: "37336947-b3d4-4a4c-a310-ab6ab510e079", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + runState: "PAID", + runType: "REGULAR", + startDate: new Date("2020-11-08T00:00:00.000Z"), + endDate: new Date("2020-11-15T00:00:00.000Z"), + checkDate: new Date("2020-11-15T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/payroll", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/hris/regenerateKey.test.ts b/tests/wire/hris/regenerateKey.test.ts new file mode 100644 index 000000000..13ce0c341 --- /dev/null +++ b/tests/wire/hris/regenerateKey.test.ts @@ -0,0 +1,34 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("RegenerateKey", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { name: "Remote Deployment Key 1" }; + const rawResponseBody = { + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }; + server + .mockEndpoint() + .post("/hris/v1/regenerate-key") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.regenerateKey.create({ + name: "Remote Deployment Key 1", + }); + expect(response).toEqual({ + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }); + }); +}); diff --git a/tests/wire/hris/scopes.test.ts b/tests/wire/hris/scopes.test.ts new file mode 100644 index 000000000..ffe29c312 --- /dev/null +++ b/tests/wire/hris/scopes.test.ts @@ -0,0 +1,281 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Scopes", () => { + test("default_scopes_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabled_fields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }; + server + .mockEndpoint() + .get("/hris/v1/default-scopes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.scopes.defaultScopesRetrieve(); + expect(response).toEqual({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabledFields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }); + }); + + test("linked_account_scopes_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabled_fields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }; + server + .mockEndpoint() + .get("/hris/v1/linked-account-scopes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.scopes.linkedAccountScopesRetrieve(); + expect(response).toEqual({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabledFields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }); + }); + + test("linked_account_scopes_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: ["avatar", "home_location"], + disabled_fields: ["work_location"], + }, + }, + { model_name: "Benefit", model_permissions: { WRITE: { is_enabled: false } } }, + ], + }; + const rawResponseBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabled_fields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }; + server + .mockEndpoint() + .post("/hris/v1/linked-account-scopes") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.scopes.linkedAccountScopesCreate({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: ["avatar", "home_location"], + disabledFields: ["work_location"], + }, + }, + { + modelName: "Benefit", + modelPermissions: { + WRITE: { + isEnabled: false, + }, + }, + }, + ], + }); + expect(response).toEqual({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabledFields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }); + }); +}); diff --git a/tests/wire/hris/syncStatus.test.ts b/tests/wire/hris/syncStatus.test.ts new file mode 100644 index 000000000..ee625ff0a --- /dev/null +++ b/tests/wire/hris/syncStatus.test.ts @@ -0,0 +1,57 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("SyncStatus", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + model_name: "Employee", + model_id: "hris.Employee", + last_sync_start: "2021-03-30T19:44:18Z", + next_sync_start: "2021-03-30T20:44:18Z", + last_sync_result: "SYNCING", + last_sync_finished: "2021-03-30T19:55:18Z", + status: "SYNCING", + is_initial_sync: true, + selective_sync_configurations_usage: "IN_NEXT_SYNC", + }, + ], + }; + server + .mockEndpoint() + .get("/hris/v1/sync-status") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.syncStatus.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + modelName: "Employee", + modelId: "hris.Employee", + lastSyncStart: new Date("2021-03-30T19:44:18.000Z"), + nextSyncStart: new Date("2021-03-30T20:44:18.000Z"), + lastSyncResult: "SYNCING", + lastSyncFinished: new Date("2021-03-30T19:55:18.000Z"), + status: "SYNCING", + isInitialSync: true, + selectiveSyncConfigurationsUsage: "IN_NEXT_SYNC", + }, + ], + }); + }); +}); diff --git a/tests/wire/hris/teams.test.ts b/tests/wire/hris/teams.test.ts new file mode 100644 index 000000000..adfe25df9 --- /dev/null +++ b/tests/wire/hris/teams.test.ts @@ -0,0 +1,112 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Teams", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "13a72919-9fae-4f54-81ca-ddfd8712a1ba", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Engineering", + parent_team: "parent_team", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/teams", data: ["Varies by platform"] }], + }, + ], + }; + server.mockEndpoint().get("/hris/v1/teams").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.hris.teams.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "13a72919-9fae-4f54-81ca-ddfd8712a1ba", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Engineering", + parentTeam: "parent_team", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/teams", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "13a72919-9fae-4f54-81ca-ddfd8712a1ba", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Engineering", + parent_team: "parent_team", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/teams", data: ["Varies by platform"] }], + }; + server.mockEndpoint().get("/hris/v1/teams/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.hris.teams.retrieve("id"); + expect(response).toEqual({ + id: "13a72919-9fae-4f54-81ca-ddfd8712a1ba", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Engineering", + parentTeam: "parent_team", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/teams", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/hris/timeOff.test.ts b/tests/wire/hris/timeOff.test.ts new file mode 100644 index 000000000..e457f2120 --- /dev/null +++ b/tests/wire/hris/timeOff.test.ts @@ -0,0 +1,693 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("TimeOff", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "91b2b905-e866-40c8-8be2-efe53827a0aa", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee: "employee", + approver: "approver", + status: "REQUESTED", + employee_note: "Moving into the new apartment Kendall Roy gave me!", + units: "HOURS", + amount: 3, + request_type: "VACATION", + start_time: "2020-11-10T00:00:00Z", + end_time: "2020-11-17T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/leave", data: ["Varies by platform"] }], + }, + ], + }; + server.mockEndpoint().get("/hris/v1/time-off").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.hris.timeOff.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "91b2b905-e866-40c8-8be2-efe53827a0aa", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employee: "employee", + approver: "approver", + status: "REQUESTED", + employeeNote: "Moving into the new apartment Kendall Roy gave me!", + units: "HOURS", + amount: 3, + requestType: "VACATION", + startTime: new Date("2020-11-10T00:00:00.000Z"), + endTime: new Date("2020-11-17T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/leave", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "91b2b905-e866-40c8-8be2-efe53827a0aa", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee: "employee", + approver: "approver", + status: "REQUESTED", + employee_note: "Moving into the new apartment Kendall Roy gave me!", + units: "HOURS", + amount: 3, + request_type: "VACATION", + start_time: "2020-11-10T00:00:00Z", + end_time: "2020-11-17T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/leave", data: ["Varies by platform"] }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/hris/v1/time-off") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.timeOff.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "91b2b905-e866-40c8-8be2-efe53827a0aa", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employee: "employee", + approver: "approver", + status: "REQUESTED", + employeeNote: "Moving into the new apartment Kendall Roy gave me!", + units: "HOURS", + amount: 3, + requestType: "VACATION", + startTime: new Date("2020-11-10T00:00:00.000Z"), + endTime: new Date("2020-11-17T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/leave", + data: ["Varies by platform"], + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "91b2b905-e866-40c8-8be2-efe53827a0aa", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee: "employee", + approver: "approver", + status: "REQUESTED", + employee_note: "Moving into the new apartment Kendall Roy gave me!", + units: "HOURS", + amount: 3, + request_type: "VACATION", + start_time: "2020-11-10T00:00:00Z", + end_time: "2020-11-17T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/leave", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/hris/v1/time-off/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.timeOff.retrieve("id"); + expect(response).toEqual({ + id: "91b2b905-e866-40c8-8be2-efe53827a0aa", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employee: "employee", + approver: "approver", + status: "REQUESTED", + employeeNote: "Moving into the new apartment Kendall Roy gave me!", + units: "HOURS", + amount: 3, + requestType: "VACATION", + startTime: new Date("2020-11-10T00:00:00.000Z"), + endTime: new Date("2020-11-17T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/leave", + data: ["Varies by platform"], + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/hris/v1/time-off/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.timeOff.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/hris/timeOffBalances.test.ts b/tests/wire/hris/timeOffBalances.test.ts new file mode 100644 index 000000000..8f35f11a5 --- /dev/null +++ b/tests/wire/hris/timeOffBalances.test.ts @@ -0,0 +1,132 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("TimeOffBalances", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "91b2b905-e866-40c8-8be2-efe53827a0aa", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee: "employee", + balance: 1.1, + used: 1.1, + policy_type: "VACATION", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/leave", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/hris/v1/time-off-balances") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.timeOffBalances.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "91b2b905-e866-40c8-8be2-efe53827a0aa", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employee: "employee", + balance: 1.1, + used: 1.1, + policyType: "VACATION", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/leave", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "91b2b905-e866-40c8-8be2-efe53827a0aa", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee: "employee", + balance: 1.1, + used: 1.1, + policy_type: "VACATION", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/leave", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/hris/v1/time-off-balances/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.timeOffBalances.retrieve("id"); + expect(response).toEqual({ + id: "91b2b905-e866-40c8-8be2-efe53827a0aa", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employee: "employee", + balance: 1.1, + used: 1.1, + policyType: "VACATION", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/leave", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/hris/timesheetEntries.test.ts b/tests/wire/hris/timesheetEntries.test.ts new file mode 100644 index 000000000..57c398adf --- /dev/null +++ b/tests/wire/hris/timesheetEntries.test.ts @@ -0,0 +1,669 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("TimesheetEntries", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "91b2b905-e866-40c8-8be2-efe53827a0aa", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee: "employee", + hours_worked: 10, + start_time: "2020-11-10T00:00:00Z", + end_time: "2020-11-10T00:10:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/dependent", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/hris/v1/timesheet-entries") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.timesheetEntries.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "91b2b905-e866-40c8-8be2-efe53827a0aa", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employee: "employee", + hoursWorked: 10, + startTime: new Date("2020-11-10T00:00:00.000Z"), + endTime: new Date("2020-11-10T00:10:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/dependent", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "91b2b905-e866-40c8-8be2-efe53827a0aa", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee: "employee", + hours_worked: 10, + start_time: "2020-11-10T00:00:00Z", + end_time: "2020-11-10T00:10:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/dependent", data: ["Varies by platform"] }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/hris/v1/timesheet-entries") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.timesheetEntries.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "91b2b905-e866-40c8-8be2-efe53827a0aa", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employee: "employee", + hoursWorked: 10, + startTime: new Date("2020-11-10T00:00:00.000Z"), + endTime: new Date("2020-11-10T00:10:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/dependent", + data: ["Varies by platform"], + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "91b2b905-e866-40c8-8be2-efe53827a0aa", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + employee: "employee", + hours_worked: 10, + start_time: "2020-11-10T00:00:00Z", + end_time: "2020-11-10T00:10:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/dependent", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/hris/v1/timesheet-entries/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.timesheetEntries.retrieve("id"); + expect(response).toEqual({ + id: "91b2b905-e866-40c8-8be2-efe53827a0aa", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + employee: "employee", + hoursWorked: 10, + startTime: new Date("2020-11-10T00:00:00.000Z"), + endTime: new Date("2020-11-10T00:10:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/dependent", + data: ["Varies by platform"], + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/hris/v1/timesheet-entries/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.timesheetEntries.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/hris/webhookReceivers.test.ts b/tests/wire/hris/webhookReceivers.test.ts new file mode 100644 index 000000000..c1f577977 --- /dev/null +++ b/tests/wire/hris/webhookReceivers.test.ts @@ -0,0 +1,56 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("WebhookReceivers", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = [{ event: "event", is_active: true, key: "key" }]; + server + .mockEndpoint() + .get("/hris/v1/webhook-receivers") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.webhookReceivers.list(); + expect(response).toEqual([ + { + event: "event", + isActive: true, + key: "key", + }, + ]); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { event: "event", is_active: true }; + const rawResponseBody = { event: "event", is_active: true, key: "key" }; + server + .mockEndpoint() + .post("/hris/v1/webhook-receivers") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.hris.webhookReceivers.create({ + event: "event", + isActive: true, + }); + expect(response).toEqual({ + event: "event", + isActive: true, + key: "key", + }); + }); +}); diff --git a/tests/wire/ticketing/accountDetails.test.ts b/tests/wire/ticketing/accountDetails.test.ts new file mode 100644 index 000000000..a00b7e221 --- /dev/null +++ b/tests/wire/ticketing/accountDetails.test.ts @@ -0,0 +1,51 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AccountDetails", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + integration: "BambooHR", + integration_slug: "bamboohr", + category: "hris", + end_user_origin_id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + end_user_organization_name: "Waystar Royco", + end_user_email_address: "kendall.roy@waystar-royco.com", + status: "COMPLETE", + webhook_listener_url: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + is_duplicate: true, + account_type: "PRODUCTION", + completed_at: "2024-08-26T20:11:19Z", + }; + server + .mockEndpoint() + .get("/ticketing/v1/account-details") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.accountDetails.retrieve(); + expect(response).toEqual({ + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + integration: "BambooHR", + integrationSlug: "bamboohr", + category: "hris", + endUserOriginId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + endUserOrganizationName: "Waystar Royco", + endUserEmailAddress: "kendall.roy@waystar-royco.com", + status: "COMPLETE", + webhookListenerUrl: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + isDuplicate: true, + accountType: "PRODUCTION", + completedAt: new Date("2024-08-26T20:11:19.000Z"), + }); + }); +}); diff --git a/tests/wire/ticketing/accountToken.test.ts b/tests/wire/ticketing/accountToken.test.ts new file mode 100644 index 000000000..5528718e1 --- /dev/null +++ b/tests/wire/ticketing/accountToken.test.ts @@ -0,0 +1,59 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AccountToken", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + account_token: "T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB", + integration: { + name: "name", + abbreviated_name: "abbreviated_name", + categories: ["hris"], + image: "image", + square_image: "square_image", + color: "color", + slug: "slug", + api_endpoints_to_documentation_urls: { key: "value" }, + webhook_setup_guide_url: "webhook_setup_guide_url", + category_beta_status: { key: "value" }, + }, + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + }; + server + .mockEndpoint() + .get("/ticketing/v1/account-token/public_token") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.accountToken.retrieve("public_token"); + expect(response).toEqual({ + accountToken: "T9klMDQrcHdm9jrtHuOS2Nf06BIHwMNjpPXPMB", + integration: { + name: "name", + abbreviatedName: "abbreviated_name", + categories: ["hris"], + image: "image", + squareImage: "square_image", + color: "color", + slug: "slug", + apiEndpointsToDocumentationUrls: { + key: "value", + }, + webhookSetupGuideUrl: "webhook_setup_guide_url", + categoryBetaStatus: { + key: "value", + }, + }, + id: "0496d4c2-42e6-4072-80b3-7b69bfdc76fd", + }); + }); +}); diff --git a/tests/wire/ticketing/accounts.test.ts b/tests/wire/ticketing/accounts.test.ts new file mode 100644 index 000000000..9497ba9ec --- /dev/null +++ b/tests/wire/ticketing/accounts.test.ts @@ -0,0 +1,124 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Accounts", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Waystar Royco", + domains: ["waystar-royco.com", "royco.com"], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/accounts") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.accounts.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Waystar Royco", + domains: ["waystar-royco.com", "royco.com"], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Waystar Royco", + domains: ["waystar-royco.com", "royco.com"], + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/actions", data: ["Varies by platform"] }], + }; + server + .mockEndpoint() + .get("/ticketing/v1/accounts/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.accounts.retrieve("id"); + expect(response).toEqual({ + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Waystar Royco", + domains: ["waystar-royco.com", "royco.com"], + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/actions", + data: ["Varies by platform"], + }, + ], + }); + }); +}); diff --git a/tests/wire/ticketing/asyncPassthrough.test.ts b/tests/wire/ticketing/asyncPassthrough.test.ts new file mode 100644 index 000000000..03165ce42 --- /dev/null +++ b/tests/wire/ticketing/asyncPassthrough.test.ts @@ -0,0 +1,71 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AsyncPassthrough", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { method: "GET", path: "/scooters" }; + const rawResponseBody = { async_passthrough_receipt_id: "fd29020f-2695-445e-922e-dcd5e81903fd" }; + server + .mockEndpoint() + .post("/ticketing/v1/async-passthrough") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.asyncPassthrough.create({ + method: "GET", + path: "/scooters", + }); + expect(response).toEqual({ + asyncPassthroughReceiptId: "fd29020f-2695-445e-922e-dcd5e81903fd", + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + method: "GET", + path: "/scooters", + status: 200, + response: { key: "value" }, + response_headers: { "X-Page-Token": "value" }, + response_type: "JSON", + headers: { "EXTRA-HEADER": "value", Authorization: "" }, + }; + server + .mockEndpoint() + .get("/ticketing/v1/async-passthrough/async_passthrough_receipt_id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.asyncPassthrough.retrieve("async_passthrough_receipt_id"); + expect(response).toEqual({ + method: "GET", + path: "/scooters", + status: 200, + response: { + key: "value", + }, + responseHeaders: { + "X-Page-Token": "value", + }, + responseType: "JSON", + headers: { + "EXTRA-HEADER": "value", + Authorization: "", + }, + }); + }); +}); diff --git a/tests/wire/ticketing/attachments.test.ts b/tests/wire/ticketing/attachments.test.ts new file mode 100644 index 000000000..3420d041a --- /dev/null +++ b/tests/wire/ticketing/attachments.test.ts @@ -0,0 +1,681 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Attachments", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + file_name: "Screenshot.png", + ticket: "ticket", + file_url: "http://alturl.com/p749b", + content_type: "jpeg", + uploaded_by: "28b54125-287f-494d-965e-3c5b330c9a68", + remote_created_at: "2022-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/attachments") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.attachments.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + fileName: "Screenshot.png", + ticket: "ticket", + fileUrl: "http://alturl.com/p749b", + contentType: "jpeg", + uploadedBy: "28b54125-287f-494d-965e-3c5b330c9a68", + remoteCreatedAt: new Date("2022-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + file_name: "Screenshot.png", + ticket: "ticket", + file_url: "http://alturl.com/p749b", + content_type: "jpeg", + uploaded_by: "28b54125-287f-494d-965e-3c5b330c9a68", + remote_created_at: "2022-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/ticketing/v1/attachments") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.attachments.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + fileName: "Screenshot.png", + ticket: "ticket", + fileUrl: "http://alturl.com/p749b", + contentType: "jpeg", + uploadedBy: "28b54125-287f-494d-965e-3c5b330c9a68", + remoteCreatedAt: new Date("2022-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + file_name: "Screenshot.png", + ticket: "ticket", + file_url: "http://alturl.com/p749b", + content_type: "jpeg", + uploaded_by: "28b54125-287f-494d-965e-3c5b330c9a68", + remote_created_at: "2022-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint", data: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/ticketing/v1/attachments/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.attachments.retrieve("id"); + expect(response).toEqual({ + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + fileName: "Screenshot.png", + ticket: "ticket", + fileUrl: "http://alturl.com/p749b", + contentType: "jpeg", + uploadedBy: "28b54125-287f-494d-965e-3c5b330c9a68", + remoteCreatedAt: new Date("2022-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + data: { + key: "value", + }, + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/ticketing/v1/attachments/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.attachments.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/ticketing/auditTrail.test.ts b/tests/wire/ticketing/auditTrail.test.ts new file mode 100644 index 000000000..85af163cc --- /dev/null +++ b/tests/wire/ticketing/auditTrail.test.ts @@ -0,0 +1,57 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AuditTrail", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b5ceea2a-7171-47ce-8090-165cfce5572c", + user_name: "Gil Feig", + user_email: "hello@merge.dev", + role: "ADMIN", + ip_address: "192.0.2.123", + event_type: "CREATED_REMOTE_PRODUCTION_API_KEY", + event_description: + "Organization-wide Scopes for model hris.Employee updated from Read to Read+Write", + created_at: "2024-01-15T09:30:00Z", + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/audit-trail") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.auditTrail.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "b5ceea2a-7171-47ce-8090-165cfce5572c", + userName: "Gil Feig", + userEmail: "hello@merge.dev", + role: "ADMIN", + ipAddress: "192.0.2.123", + eventType: "CREATED_REMOTE_PRODUCTION_API_KEY", + eventDescription: + "Organization-wide Scopes for model hris.Employee updated from Read to Read+Write", + createdAt: new Date("2024-01-15T09:30:00.000Z"), + }, + ], + }); + }); +}); diff --git a/tests/wire/ticketing/availableActions.test.ts b/tests/wire/ticketing/availableActions.test.ts new file mode 100644 index 000000000..3c93f0e29 --- /dev/null +++ b/tests/wire/ticketing/availableActions.test.ts @@ -0,0 +1,73 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("AvailableActions", () => { + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + integration: { + name: "name", + abbreviated_name: "abbreviated_name", + categories: ["hris"], + image: "image", + square_image: "square_image", + color: "color", + slug: "slug", + api_endpoints_to_documentation_urls: { key: "value" }, + webhook_setup_guide_url: "webhook_setup_guide_url", + category_beta_status: { key: "value" }, + }, + passthrough_available: true, + available_model_operations: [ + { + model_name: "Candidate", + available_operations: ["FETCH", "CREATE"], + required_post_parameters: ["remote_user_id"], + supported_fields: ["first_name", "last_name", "company", "title"], + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/available-actions") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.availableActions.retrieve(); + expect(response).toEqual({ + integration: { + name: "name", + abbreviatedName: "abbreviated_name", + categories: ["hris"], + image: "image", + squareImage: "square_image", + color: "color", + slug: "slug", + apiEndpointsToDocumentationUrls: { + key: "value", + }, + webhookSetupGuideUrl: "webhook_setup_guide_url", + categoryBetaStatus: { + key: "value", + }, + }, + passthroughAvailable: true, + availableModelOperations: [ + { + modelName: "Candidate", + availableOperations: ["FETCH", "CREATE"], + requiredPostParameters: ["remote_user_id"], + supportedFields: ["first_name", "last_name", "company", "title"], + }, + ], + }); + }); +}); diff --git a/tests/wire/ticketing/collections.test.ts b/tests/wire/ticketing/collections.test.ts new file mode 100644 index 000000000..51d74ca71 --- /dev/null +++ b/tests/wire/ticketing/collections.test.ts @@ -0,0 +1,180 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Collections", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "fb8c55b6-1cb8-4b4c-9fb6-17924231619d", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Q1 Platform", + description: "For tracking all tasks related to Platform for Q1", + access_level: "PRIVATE", + collection_type: "LIST", + parent_collection: "parent_collection", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/collections") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.collections.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "fb8c55b6-1cb8-4b4c-9fb6-17924231619d", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Q1 Platform", + description: "For tracking all tasks related to Platform for Q1", + accessLevel: "PRIVATE", + collectionType: "LIST", + parentCollection: "parent_collection", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + }, + ], + }); + }); + + test("viewersList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + team: "team", + user: "user", + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/collections/collection_id/viewers") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.collections.viewersList("collection_id"); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + team: "team", + user: "user", + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "fb8c55b6-1cb8-4b4c-9fb6-17924231619d", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Q1 Platform", + description: "For tracking all tasks related to Platform for Q1", + access_level: "PRIVATE", + collection_type: "LIST", + parent_collection: "parent_collection", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint", data: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/ticketing/v1/collections/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.collections.retrieve("id"); + expect(response).toEqual({ + id: "fb8c55b6-1cb8-4b4c-9fb6-17924231619d", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Q1 Platform", + description: "For tracking all tasks related to Platform for Q1", + accessLevel: "PRIVATE", + collectionType: "LIST", + parentCollection: "parent_collection", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + data: { + key: "value", + }, + }, + ], + }); + }); +}); diff --git a/tests/wire/ticketing/comments.test.ts b/tests/wire/ticketing/comments.test.ts new file mode 100644 index 000000000..0941fc619 --- /dev/null +++ b/tests/wire/ticketing/comments.test.ts @@ -0,0 +1,687 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Comments", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + user: "user", + contact: "contact", + body: "When will these integrations be done? You all should use Merge.", + html_body: "When will these integrations be done? You all should use Merge.", + ticket: "ticket", + is_private: true, + remote_created_at: "1990-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/comments") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.comments.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + user: "user", + contact: "contact", + body: "When will these integrations be done? You all should use Merge.", + htmlBody: "When will these integrations be done? You all should use Merge.", + ticket: "ticket", + isPrivate: true, + remoteCreatedAt: new Date("1990-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + user: "user", + contact: "contact", + body: "When will these integrations be done? You all should use Merge.", + html_body: "When will these integrations be done? You all should use Merge.", + ticket: "ticket", + is_private: true, + remote_created_at: "1990-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/ticketing/v1/comments") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.comments.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + user: "user", + contact: "contact", + body: "When will these integrations be done? You all should use Merge.", + htmlBody: "When will these integrations be done? You all should use Merge.", + ticket: "ticket", + isPrivate: true, + remoteCreatedAt: new Date("1990-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + user: "user", + contact: "contact", + body: "When will these integrations be done? You all should use Merge.", + html_body: "When will these integrations be done? You all should use Merge.", + ticket: "ticket", + is_private: true, + remote_created_at: "1990-11-10T00:00:00Z", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint", data: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/ticketing/v1/comments/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.comments.retrieve("id"); + expect(response).toEqual({ + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + user: "user", + contact: "contact", + body: "When will these integrations be done? You all should use Merge.", + htmlBody: "When will these integrations be done? You all should use Merge.", + ticket: "ticket", + isPrivate: true, + remoteCreatedAt: new Date("1990-11-10T00:00:00.000Z"), + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + data: { + key: "value", + }, + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/ticketing/v1/comments/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.comments.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/ticketing/contacts.test.ts b/tests/wire/ticketing/contacts.test.ts new file mode 100644 index 000000000..36935e79c --- /dev/null +++ b/tests/wire/ticketing/contacts.test.ts @@ -0,0 +1,675 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Contacts", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Cousin Greg", + email_address: "greg@waystar-royco.com", + phone_number: "5108890293", + details: "Executive Assistant to Tom Wambsgans", + account: "account", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/contacts") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.contacts.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Cousin Greg", + emailAddress: "greg@waystar-royco.com", + phoneNumber: "5108890293", + details: "Executive Assistant to Tom Wambsgans", + account: "account", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Cousin Greg", + email_address: "greg@waystar-royco.com", + phone_number: "5108890293", + details: "Executive Assistant to Tom Wambsgans", + account: "account", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/ticketing/v1/contacts") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.contacts.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Cousin Greg", + emailAddress: "greg@waystar-royco.com", + phoneNumber: "5108890293", + details: "Executive Assistant to Tom Wambsgans", + account: "account", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Cousin Greg", + email_address: "greg@waystar-royco.com", + phone_number: "5108890293", + details: "Executive Assistant to Tom Wambsgans", + account: "account", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint", data: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/ticketing/v1/contacts/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.contacts.retrieve("id"); + expect(response).toEqual({ + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Cousin Greg", + emailAddress: "greg@waystar-royco.com", + phoneNumber: "5108890293", + details: "Executive Assistant to Tom Wambsgans", + account: "account", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + data: { + key: "value", + }, + }, + ], + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/ticketing/v1/contacts/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.contacts.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); +}); diff --git a/tests/wire/ticketing/deleteAccount.test.ts b/tests/wire/ticketing/deleteAccount.test.ts new file mode 100644 index 000000000..50aeed72f --- /dev/null +++ b/tests/wire/ticketing/deleteAccount.test.ts @@ -0,0 +1,18 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("DeleteAccount", () => { + test("delete", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + server.mockEndpoint().post("/ticketing/v1/delete-account").respondWith().statusCode(200).build(); + + const response = await client.ticketing.deleteAccount.delete(); + expect(response).toEqual(undefined); + }); +}); diff --git a/tests/wire/ticketing/fieldMapping.test.ts b/tests/wire/ticketing/fieldMapping.test.ts new file mode 100644 index 000000000..1c269cd18 --- /dev/null +++ b/tests/wire/ticketing/fieldMapping.test.ts @@ -0,0 +1,1394 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("FieldMapping", () => { + test("field_mappings_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + Ticket: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Comment: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Project: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Collection: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + User: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Role: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Account: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Team: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Attachment: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Tag: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + Contact: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/field-mappings") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.fieldMapping.fieldMappingsRetrieve(); + expect(response).toEqual({ + ticket: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + comment: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + project: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + collection: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + user: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + role: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + account: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + team: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + attachment: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + tag: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + contact: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + ], + }); + }); + + test("field_mappings_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { + target_field_name: "example_target_field_name", + target_field_description: "this is a example description of the target field", + remote_field_traversal_path: ["example_remote_field"], + remote_method: "GET", + remote_url_path: "/example-url-path", + common_model_name: "ExampleCommonModel", + }; + const rawResponseBody = { + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/ticketing/v1/field-mappings") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.fieldMapping.fieldMappingsCreate({ + targetFieldName: "example_target_field_name", + targetFieldDescription: "this is a example description of the target field", + remoteFieldTraversalPath: ["example_remote_field"], + remoteMethod: "GET", + remoteUrlPath: "/example-url-path", + commonModelName: "ExampleCommonModel", + }); + expect(response).toEqual({ + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("field_mappings_destroy", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .delete("/ticketing/v1/field-mappings/field_mapping_id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.fieldMapping.fieldMappingsDestroy("field_mapping_id"); + expect(response).toEqual({ + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("field_mappings_partial_update", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = {}; + const rawResponseBody = { + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + is_integration_wide: true, + target_field: { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_organization_wide: true, + }, + remote_field: { + remote_key_name: "example_remote_field_key", + schema: { type: "string" }, + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .patch("/ticketing/v1/field-mappings/field_mapping_id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.fieldMapping.fieldMappingsPartialUpdate("field_mapping_id"); + expect(response).toEqual({ + model: { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + isIntegrationWide: true, + targetField: { + name: "example_target_field_name", + description: "this is a example description of a target field", + isOrganizationWide: true, + }, + remoteField: { + remoteKeyName: "example_remote_field_key", + schema: { + type: "string", + }, + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_remote_field_key"], + }, + }, + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("remote_fields_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + Ticket: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Comment: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Project: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Collection: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + User: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Role: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Account: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Team: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Attachment: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Tag: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + Contact: [ + { + schema: { type: "string" }, + remote_key_name: "example_remote_key_name", + remote_endpoint_info: { + method: "GET", + url_path: "/example-url-path", + field_traversal_path: ["example_key_name"], + }, + example_values: ["example"], + advanced_metadata: { id: "id" }, + coverage: 1, + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/remote-fields") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.fieldMapping.remoteFieldsRetrieve(); + expect(response).toEqual({ + ticket: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + comment: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + project: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + collection: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + user: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + role: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + account: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + team: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + attachment: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + tag: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + contact: [ + { + schema: { + type: "string", + }, + remoteKeyName: "example_remote_key_name", + remoteEndpointInfo: { + method: "GET", + urlPath: "/example-url-path", + fieldTraversalPath: ["example_key_name"], + }, + exampleValues: ["example"], + advancedMetadata: { + id: "id", + }, + coverage: 1, + }, + ], + }); + }); + + test("target_fields_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + Ticket: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Comment: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Project: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Collection: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + User: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Role: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Account: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Team: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Attachment: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Tag: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + Contact: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + is_mapped: "is_mapped", + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/target-fields") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.fieldMapping.targetFieldsRetrieve(); + expect(response).toEqual({ + ticket: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + comment: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + project: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + collection: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + user: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + role: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + account: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + team: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + attachment: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + tag: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + contact: [ + { + name: "example_target_field_name", + description: "this is a example description of a target field", + isMapped: "is_mapped", + }, + ], + }); + }); +}); diff --git a/tests/wire/ticketing/forceResync.test.ts b/tests/wire/ticketing/forceResync.test.ts new file mode 100644 index 000000000..95b346c7f --- /dev/null +++ b/tests/wire/ticketing/forceResync.test.ts @@ -0,0 +1,49 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("ForceResync", () => { + test("sync_status_resync_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = [ + { + model_name: "Ticket", + model_id: "ticketing.Ticket", + last_sync_start: "2021-03-30T19:44:18Z", + next_sync_start: "2021-03-30T20:44:18Z", + last_sync_result: "SYNCING", + last_sync_finished: "2021-03-30T19:55:18Z", + status: "SYNCING", + is_initial_sync: true, + selective_sync_configurations_usage: "IN_NEXT_SYNC", + }, + ]; + server + .mockEndpoint() + .post("/ticketing/v1/sync-status/resync") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.forceResync.syncStatusResyncCreate(); + expect(response).toEqual([ + { + modelName: "Ticket", + modelId: "ticketing.Ticket", + lastSyncStart: new Date("2021-03-30T19:44:18.000Z"), + nextSyncStart: new Date("2021-03-30T20:44:18.000Z"), + lastSyncResult: "SYNCING", + lastSyncFinished: new Date("2021-03-30T19:55:18.000Z"), + status: "SYNCING", + isInitialSync: true, + selectiveSyncConfigurationsUsage: "IN_NEXT_SYNC", + }, + ]); + }); +}); diff --git a/tests/wire/ticketing/generateKey.test.ts b/tests/wire/ticketing/generateKey.test.ts new file mode 100644 index 000000000..b5e59e9b8 --- /dev/null +++ b/tests/wire/ticketing/generateKey.test.ts @@ -0,0 +1,34 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("GenerateKey", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { name: "Remote Deployment Key 1" }; + const rawResponseBody = { + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }; + server + .mockEndpoint() + .post("/ticketing/v1/generate-key") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.generateKey.create({ + name: "Remote Deployment Key 1", + }); + expect(response).toEqual({ + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }); + }); +}); diff --git a/tests/wire/ticketing/issues.test.ts b/tests/wire/ticketing/issues.test.ts new file mode 100644 index 000000000..abbdac92d --- /dev/null +++ b/tests/wire/ticketing/issues.test.ts @@ -0,0 +1,94 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Issues", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + error_description: "Missing Permissions", + end_user: { key: "value" }, + first_incident_time: "2022-12-05T16:19:15Z", + last_incident_time: "2022-12-05T16:19:15Z", + is_muted: true, + error_details: ["Missing employee permissions.", "Missing time off permissions."], + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/issues") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.issues.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + errorDescription: "Missing Permissions", + endUser: { + key: "value", + }, + firstIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + lastIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + isMuted: true, + errorDetails: ["Missing employee permissions.", "Missing time off permissions."], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + error_description: "Missing Permissions", + end_user: { key: "value" }, + first_incident_time: "2022-12-05T16:19:15Z", + last_incident_time: "2022-12-05T16:19:15Z", + is_muted: true, + error_details: ["Missing employee permissions.", "Missing time off permissions."], + }; + server + .mockEndpoint() + .get("/ticketing/v1/issues/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.issues.retrieve("id"); + expect(response).toEqual({ + id: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + status: "ONGOING", + errorDescription: "Missing Permissions", + endUser: { + key: "value", + }, + firstIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + lastIncidentTime: new Date("2022-12-05T16:19:15.000Z"), + isMuted: true, + errorDetails: ["Missing employee permissions.", "Missing time off permissions."], + }); + }); +}); diff --git a/tests/wire/ticketing/linkToken.test.ts b/tests/wire/ticketing/linkToken.test.ts new file mode 100644 index 000000000..18cb60361 --- /dev/null +++ b/tests/wire/ticketing/linkToken.test.ts @@ -0,0 +1,44 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("LinkToken", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { + end_user_email_address: "example@gmail.com", + end_user_organization_name: "Test Organization", + end_user_origin_id: "12345", + categories: ["hris", "ats"], + }; + const rawResponseBody = { + link_token: "necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0", + integration_name: "Lever", + magic_link_url: "https://link.merge.dev/asdfjkl12345jsndfgi2i83n", + }; + server + .mockEndpoint() + .post("/ticketing/v1/link-token") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.linkToken.create({ + endUserEmailAddress: "example@gmail.com", + endUserOrganizationName: "Test Organization", + endUserOriginId: "12345", + categories: ["hris", "ats"], + }); + expect(response).toEqual({ + linkToken: "necdP7FtdASl1fQwm62be2_dM4wBG8_GactqoUV0", + integrationName: "Lever", + magicLinkUrl: "https://link.merge.dev/asdfjkl12345jsndfgi2i83n", + }); + }); +}); diff --git a/tests/wire/ticketing/linkedAccounts.test.ts b/tests/wire/ticketing/linkedAccounts.test.ts new file mode 100644 index 000000000..243c48ba2 --- /dev/null +++ b/tests/wire/ticketing/linkedAccounts.test.ts @@ -0,0 +1,97 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("LinkedAccounts", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "e59b1821-f85c-4e28-a6b3-1804156f3563", + category: "hris", + status: "COMPLETE", + status_detail: "Invalid login credentials", + end_user_origin_id: "3ac95cde-6c7f-4eef-afec-be710b42308d", + end_user_organization_name: "Foo Bar, LLC", + end_user_email_address: "hradmin@foobar.dev", + subdomain: "foobar", + webhook_listener_url: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + is_duplicate: true, + integration: { + name: "name", + categories: ["hris"], + color: "color", + slug: "slug", + passthrough_available: true, + available_model_operations: [ + { + model_name: "Candidate", + available_operations: ["FETCH", "CREATE"], + required_post_parameters: ["remote_user_id"], + supported_fields: ["first_name", "last_name", "company", "title"], + }, + ], + }, + account_type: "PRODUCTION", + completed_at: "2024-08-26T20:11:19Z", + integration_specific_fields: { integration_specific_field: "Varies by platform" }, + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/linked-accounts") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.linkedAccounts.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "e59b1821-f85c-4e28-a6b3-1804156f3563", + category: "hris", + status: "COMPLETE", + statusDetail: "Invalid login credentials", + endUserOriginId: "3ac95cde-6c7f-4eef-afec-be710b42308d", + endUserOrganizationName: "Foo Bar, LLC", + endUserEmailAddress: "hradmin@foobar.dev", + subdomain: "foobar", + webhookListenerUrl: "https://api.merge.dev/api/integrations/webhook-listener/7fc3mee0UW8ecV4", + isDuplicate: true, + integration: { + name: "name", + categories: ["hris"], + color: "color", + slug: "slug", + passthroughAvailable: true, + availableModelOperations: [ + { + modelName: "Candidate", + availableOperations: ["FETCH", "CREATE"], + requiredPostParameters: ["remote_user_id"], + supportedFields: ["first_name", "last_name", "company", "title"], + }, + ], + }, + accountType: "PRODUCTION", + completedAt: new Date("2024-08-26T20:11:19.000Z"), + integrationSpecificFields: { + integration_specific_field: "Varies by platform", + }, + }, + ], + }); + }); +}); diff --git a/tests/wire/ticketing/passthrough.test.ts b/tests/wire/ticketing/passthrough.test.ts new file mode 100644 index 000000000..e3a9e802c --- /dev/null +++ b/tests/wire/ticketing/passthrough.test.ts @@ -0,0 +1,52 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Passthrough", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { method: "GET", path: "/scooters" }; + const rawResponseBody = { + method: "GET", + path: "/scooters", + status: 200, + response: { key: "value" }, + response_headers: { "X-Page-Token": "value" }, + response_type: "JSON", + headers: { "EXTRA-HEADER": "value", Authorization: "" }, + }; + server + .mockEndpoint() + .post("/ticketing/v1/passthrough") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.passthrough.create({ + method: "GET", + path: "/scooters", + }); + expect(response).toEqual({ + method: "GET", + path: "/scooters", + status: 200, + response: { + key: "value", + }, + responseHeaders: { + "X-Page-Token": "value", + }, + responseType: "JSON", + headers: { + "EXTRA-HEADER": "value", + Authorization: "", + }, + }); + }); +}); diff --git a/tests/wire/ticketing/projects.test.ts b/tests/wire/ticketing/projects.test.ts new file mode 100644 index 000000000..b2fa6be00 --- /dev/null +++ b/tests/wire/ticketing/projects.test.ts @@ -0,0 +1,196 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Projects", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "fb8c55b6-1cb8-4b4c-9fb6-17924231619d", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Q1 Platform", + description: "For tracking all tasks related to Platform for Q1", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/projects") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.projects.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "fb8c55b6-1cb8-4b4c-9fb6-17924231619d", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Q1 Platform", + description: "For tracking all tasks related to Platform for Q1", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "fb8c55b6-1cb8-4b4c-9fb6-17924231619d", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Q1 Platform", + description: "For tracking all tasks related to Platform for Q1", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint", data: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/ticketing/v1/projects/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.projects.retrieve("id"); + expect(response).toEqual({ + id: "fb8c55b6-1cb8-4b4c-9fb6-17924231619d", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Q1 Platform", + description: "For tracking all tasks related to Platform for Q1", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + data: { + key: "value", + }, + }, + ], + }); + }); + + test("usersList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Gil Feig", + email_address: "help@merge.dev", + is_active: true, + teams: ["28b54125-287f-494d-965e-3c5b330c9a68", "17a54124-287f-494d-965e-3c5b330c9a68"], + roles: ["23454124-387f-494d-265e-345b330c9123"], + avatar: "https://merge.dev/user_profile_pic.png", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/projects/parent_id/users") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.projects.usersList("parent_id"); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Gil Feig", + emailAddress: "help@merge.dev", + isActive: true, + teams: ["28b54125-287f-494d-965e-3c5b330c9a68", "17a54124-287f-494d-965e-3c5b330c9a68"], + roles: ["23454124-387f-494d-265e-345b330c9123"], + avatar: "https://merge.dev/user_profile_pic.png", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + }, + ], + }); + }); +}); diff --git a/tests/wire/ticketing/regenerateKey.test.ts b/tests/wire/ticketing/regenerateKey.test.ts new file mode 100644 index 000000000..3f3e4e3a6 --- /dev/null +++ b/tests/wire/ticketing/regenerateKey.test.ts @@ -0,0 +1,34 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("RegenerateKey", () => { + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { name: "Remote Deployment Key 1" }; + const rawResponseBody = { + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }; + server + .mockEndpoint() + .post("/ticketing/v1/regenerate-key") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.regenerateKey.create({ + name: "Remote Deployment Key 1", + }); + expect(response).toEqual({ + name: "Remote Deployment Key 1", + key: "hXY57W0g0WkdRHjCaPvwijK63fwfN-o_Wh7f30SLTq_uPCOLo-WFcA", + }); + }); +}); diff --git a/tests/wire/ticketing/roles.test.ts b/tests/wire/ticketing/roles.test.ts new file mode 100644 index 000000000..1a69abbda --- /dev/null +++ b/tests/wire/ticketing/roles.test.ts @@ -0,0 +1,129 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Roles", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "23454124-387f-494d-265e-345b330c9123", + remote_id: "123", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Member", + ticket_actions: ["VIEW", "EDIT", "CREATE"], + ticket_access: "ticket_access", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/roles") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.roles.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "23454124-387f-494d-265e-345b330c9123", + remoteId: "123", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Member", + ticketActions: ["VIEW", "EDIT", "CREATE"], + ticketAccess: "ticket_access", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "23454124-387f-494d-265e-345b330c9123", + remote_id: "123", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Member", + ticket_actions: ["VIEW", "EDIT", "CREATE"], + ticket_access: "ticket_access", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint", data: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/ticketing/v1/roles/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.roles.retrieve("id"); + expect(response).toEqual({ + id: "23454124-387f-494d-265e-345b330c9123", + remoteId: "123", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Member", + ticketActions: ["VIEW", "EDIT", "CREATE"], + ticketAccess: "ticket_access", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + data: { + key: "value", + }, + }, + ], + }); + }); +}); diff --git a/tests/wire/ticketing/scopes.test.ts b/tests/wire/ticketing/scopes.test.ts new file mode 100644 index 000000000..dec71fb4f --- /dev/null +++ b/tests/wire/ticketing/scopes.test.ts @@ -0,0 +1,281 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Scopes", () => { + test("default_scopes_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabled_fields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/default-scopes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.scopes.defaultScopesRetrieve(); + expect(response).toEqual({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabledFields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }); + }); + + test("linked_account_scopes_retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabled_fields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/linked-account-scopes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.scopes.linkedAccountScopesRetrieve(); + expect(response).toEqual({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabledFields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }); + }); + + test("linked_account_scopes_create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: ["avatar", "home_location"], + disabled_fields: ["work_location"], + }, + }, + { model_name: "Benefit", model_permissions: { WRITE: { is_enabled: false } } }, + ], + }; + const rawResponseBody = { + common_models: [ + { + model_name: "Employee", + model_permissions: { READ: { is_enabled: true }, WRITE: { is_enabled: false } }, + field_permissions: { + enabled_fields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabled_fields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }; + server + .mockEndpoint() + .post("/ticketing/v1/linked-account-scopes") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.scopes.linkedAccountScopesCreate({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: ["avatar", "home_location"], + disabledFields: ["work_location"], + }, + }, + { + modelName: "Benefit", + modelPermissions: { + WRITE: { + isEnabled: false, + }, + }, + }, + ], + }); + expect(response).toEqual({ + commonModels: [ + { + modelName: "Employee", + modelPermissions: { + READ: { + isEnabled: true, + }, + WRITE: { + isEnabled: false, + }, + }, + fieldPermissions: { + enabledFields: [ + "avatar", + "created_at", + "custom_fields", + "date_of_birth", + "first_name", + "gender", + "remote_created_at", + "remote_data", + ], + disabledFields: [ + "company", + "employments", + "groups", + "home_location", + "manager", + "work_location", + ], + }, + }, + ], + }); + }); +}); diff --git a/tests/wire/ticketing/syncStatus.test.ts b/tests/wire/ticketing/syncStatus.test.ts new file mode 100644 index 000000000..dd7c9d529 --- /dev/null +++ b/tests/wire/ticketing/syncStatus.test.ts @@ -0,0 +1,57 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("SyncStatus", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + model_name: "Ticket", + model_id: "ticketing.Ticket", + last_sync_start: "2021-03-30T19:44:18Z", + next_sync_start: "2021-03-30T20:44:18Z", + last_sync_result: "SYNCING", + last_sync_finished: "2021-03-30T19:55:18Z", + status: "SYNCING", + is_initial_sync: true, + selective_sync_configurations_usage: "IN_NEXT_SYNC", + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/sync-status") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.syncStatus.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + modelName: "Ticket", + modelId: "ticketing.Ticket", + lastSyncStart: new Date("2021-03-30T19:44:18.000Z"), + nextSyncStart: new Date("2021-03-30T20:44:18.000Z"), + lastSyncResult: "SYNCING", + lastSyncFinished: new Date("2021-03-30T19:55:18.000Z"), + status: "SYNCING", + isInitialSync: true, + selectiveSyncConfigurationsUsage: "IN_NEXT_SYNC", + }, + ], + }); + }); +}); diff --git a/tests/wire/ticketing/tags.test.ts b/tests/wire/ticketing/tags.test.ts new file mode 100644 index 000000000..d7b66e6d5 --- /dev/null +++ b/tests/wire/ticketing/tags.test.ts @@ -0,0 +1,115 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Tags", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + id: "17a54124-287f-494d-965e-3c5b330c9a68", + name: "Ticketing API", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + }, + ], + }; + server.mockEndpoint().get("/ticketing/v1/tags").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + + const response = await client.ticketing.tags.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + id: "17a54124-287f-494d-965e-3c5b330c9a68", + name: "Ticketing API", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + id: "17a54124-287f-494d-965e-3c5b330c9a68", + name: "Ticketing API", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint", data: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/ticketing/v1/tags/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.tags.retrieve("id"); + expect(response).toEqual({ + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + id: "17a54124-287f-494d-965e-3c5b330c9a68", + name: "Ticketing API", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + data: { + key: "value", + }, + }, + ], + }); + }); +}); diff --git a/tests/wire/ticketing/teams.test.ts b/tests/wire/ticketing/teams.test.ts new file mode 100644 index 000000000..aabe7c05c --- /dev/null +++ b/tests/wire/ticketing/teams.test.ts @@ -0,0 +1,125 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Teams", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Platform", + description: "Platform and Integrations Team", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/teams") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.teams.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Platform", + description: "Platform and Integrations Team", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Platform", + description: "Platform and Integrations Team", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint", data: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/ticketing/v1/teams/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.teams.retrieve("id"); + expect(response).toEqual({ + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Platform", + description: "Platform and Integrations Team", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + data: { + key: "value", + }, + }, + ], + }); + }); +}); diff --git a/tests/wire/ticketing/tickets.test.ts b/tests/wire/ticketing/tickets.test.ts new file mode 100644 index 000000000..431956d83 --- /dev/null +++ b/tests/wire/ticketing/tickets.test.ts @@ -0,0 +1,1460 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Tickets", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Please add more integrations", + assignees: ["17a54124-287f-494d-965e-3c5b330c9a68"], + assigned_teams: ["4857c306-c1f9-489e-a6b6-90902f736dfe"], + creator: "creator", + due_date: "2022-10-11T00:00:00Z", + status: "OPEN", + description: "Can you please add more integrations? It'll make syncing data much easier!", + collections: ["fb8c55b6-1cb8-4b4c-9fb6-17924231619d"], + ticket_type: "incident", + account: "account", + contact: "contact", + parent_ticket: "parent_ticket", + attachments: ["42747df1-95e7-46e2-93cc-66f1191edca5", "92f972d0-2526-434b-9409-4c3b468e08f0"], + access_level: "COMPANY", + tags: ["enterprise", "other-tag"], + roles: ["21a54124-397f-494d-985e-3c5b330b8a68", "17a54124-287f-494d-965e-3c5b330c9a68"], + remote_created_at: "2021-11-10T00:00:00Z", + remote_updated_at: "2021-12-09T00:00:00Z", + completed_at: "2021-12-09T00:00:00Z", + remote_was_deleted: true, + ticket_url: "https://thirdpartysoftware.com/project/3/issue/1", + priority: "URGENT", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/tickets") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.tickets.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Please add more integrations", + assignees: ["17a54124-287f-494d-965e-3c5b330c9a68"], + assignedTeams: ["4857c306-c1f9-489e-a6b6-90902f736dfe"], + creator: "creator", + dueDate: new Date("2022-10-11T00:00:00.000Z"), + status: "OPEN", + description: "Can you please add more integrations? It'll make syncing data much easier!", + collections: ["fb8c55b6-1cb8-4b4c-9fb6-17924231619d"], + ticketType: "incident", + account: "account", + contact: "contact", + parentTicket: "parent_ticket", + attachments: ["42747df1-95e7-46e2-93cc-66f1191edca5", "92f972d0-2526-434b-9409-4c3b468e08f0"], + accessLevel: "COMPANY", + tags: ["enterprise", "other-tag"], + roles: ["21a54124-397f-494d-985e-3c5b330b8a68", "17a54124-287f-494d-965e-3c5b330c9a68"], + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + remoteUpdatedAt: new Date("2021-12-09T00:00:00.000Z"), + completedAt: new Date("2021-12-09T00:00:00.000Z"), + remoteWasDeleted: true, + ticketUrl: "https://thirdpartysoftware.com/project/3/issue/1", + priority: "URGENT", + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + ], + }); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Please add more integrations", + assignees: ["17a54124-287f-494d-965e-3c5b330c9a68"], + assigned_teams: ["4857c306-c1f9-489e-a6b6-90902f736dfe"], + creator: "creator", + due_date: "2022-10-11T00:00:00Z", + status: "OPEN", + description: "Can you please add more integrations? It'll make syncing data much easier!", + collections: ["fb8c55b6-1cb8-4b4c-9fb6-17924231619d"], + ticket_type: "incident", + account: "account", + contact: "contact", + parent_ticket: "parent_ticket", + attachments: ["42747df1-95e7-46e2-93cc-66f1191edca5", "92f972d0-2526-434b-9409-4c3b468e08f0"], + access_level: "COMPANY", + tags: ["enterprise", "other-tag"], + roles: ["21a54124-397f-494d-985e-3c5b330b8a68", "17a54124-287f-494d-965e-3c5b330c9a68"], + remote_created_at: "2021-11-10T00:00:00Z", + remote_updated_at: "2021-12-09T00:00:00Z", + completed_at: "2021-12-09T00:00:00Z", + remote_was_deleted: true, + ticket_url: "https://thirdpartysoftware.com/project/3/issue/1", + priority: "URGENT", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .post("/ticketing/v1/tickets") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.tickets.create({ + model: {}, + }); + expect(response).toEqual({ + model: { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Please add more integrations", + assignees: ["17a54124-287f-494d-965e-3c5b330c9a68"], + assignedTeams: ["4857c306-c1f9-489e-a6b6-90902f736dfe"], + creator: "creator", + dueDate: new Date("2022-10-11T00:00:00.000Z"), + status: "OPEN", + description: "Can you please add more integrations? It'll make syncing data much easier!", + collections: ["fb8c55b6-1cb8-4b4c-9fb6-17924231619d"], + ticketType: "incident", + account: "account", + contact: "contact", + parentTicket: "parent_ticket", + attachments: ["42747df1-95e7-46e2-93cc-66f1191edca5", "92f972d0-2526-434b-9409-4c3b468e08f0"], + accessLevel: "COMPANY", + tags: ["enterprise", "other-tag"], + roles: ["21a54124-397f-494d-985e-3c5b330b8a68", "17a54124-287f-494d-965e-3c5b330c9a68"], + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + remoteUpdatedAt: new Date("2021-12-09T00:00:00.000Z"), + completedAt: new Date("2021-12-09T00:00:00.000Z"), + remoteWasDeleted: true, + ticketUrl: "https://thirdpartysoftware.com/project/3/issue/1", + priority: "URGENT", + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Please add more integrations", + assignees: ["17a54124-287f-494d-965e-3c5b330c9a68"], + assigned_teams: ["4857c306-c1f9-489e-a6b6-90902f736dfe"], + creator: "creator", + due_date: "2022-10-11T00:00:00Z", + status: "OPEN", + description: "Can you please add more integrations? It'll make syncing data much easier!", + collections: ["fb8c55b6-1cb8-4b4c-9fb6-17924231619d"], + ticket_type: "incident", + account: "account", + contact: "contact", + parent_ticket: "parent_ticket", + attachments: ["42747df1-95e7-46e2-93cc-66f1191edca5", "92f972d0-2526-434b-9409-4c3b468e08f0"], + access_level: "COMPANY", + tags: ["enterprise", "other-tag"], + roles: ["21a54124-397f-494d-985e-3c5b330b8a68", "17a54124-287f-494d-965e-3c5b330c9a68"], + remote_created_at: "2021-11-10T00:00:00Z", + remote_updated_at: "2021-12-09T00:00:00Z", + completed_at: "2021-12-09T00:00:00Z", + remote_was_deleted: true, + ticket_url: "https://thirdpartysoftware.com/project/3/issue/1", + priority: "URGENT", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint", data: { key: "value" } }], + remote_fields: [{ remote_field_class: "remote_field_class", value: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/ticketing/v1/tickets/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.tickets.retrieve("id"); + expect(response).toEqual({ + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Please add more integrations", + assignees: ["17a54124-287f-494d-965e-3c5b330c9a68"], + assignedTeams: ["4857c306-c1f9-489e-a6b6-90902f736dfe"], + creator: "creator", + dueDate: new Date("2022-10-11T00:00:00.000Z"), + status: "OPEN", + description: "Can you please add more integrations? It'll make syncing data much easier!", + collections: ["fb8c55b6-1cb8-4b4c-9fb6-17924231619d"], + ticketType: "incident", + account: "account", + contact: "contact", + parentTicket: "parent_ticket", + attachments: ["42747df1-95e7-46e2-93cc-66f1191edca5", "92f972d0-2526-434b-9409-4c3b468e08f0"], + accessLevel: "COMPANY", + tags: ["enterprise", "other-tag"], + roles: ["21a54124-397f-494d-985e-3c5b330b8a68", "17a54124-287f-494d-965e-3c5b330c9a68"], + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + remoteUpdatedAt: new Date("2021-12-09T00:00:00.000Z"), + completedAt: new Date("2021-12-09T00:00:00.000Z"), + remoteWasDeleted: true, + ticketUrl: "https://thirdpartysoftware.com/project/3/issue/1", + priority: "URGENT", + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + data: { + key: "value", + }, + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + value: { + key: "value", + }, + }, + ], + }); + }); + + test("partialUpdate", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { model: {} }; + const rawResponseBody = { + model: { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Please add more integrations", + assignees: ["17a54124-287f-494d-965e-3c5b330c9a68"], + assigned_teams: ["4857c306-c1f9-489e-a6b6-90902f736dfe"], + creator: "creator", + due_date: "2022-10-11T00:00:00Z", + status: "OPEN", + description: "Can you please add more integrations? It'll make syncing data much easier!", + collections: ["fb8c55b6-1cb8-4b4c-9fb6-17924231619d"], + ticket_type: "incident", + account: "account", + contact: "contact", + parent_ticket: "parent_ticket", + attachments: ["42747df1-95e7-46e2-93cc-66f1191edca5", "92f972d0-2526-434b-9409-4c3b468e08f0"], + access_level: "COMPANY", + tags: ["enterprise", "other-tag"], + roles: ["21a54124-397f-494d-985e-3c5b330b8a68", "17a54124-287f-494d-965e-3c5b330c9a68"], + remote_created_at: "2021-11-10T00:00:00Z", + remote_updated_at: "2021-12-09T00:00:00Z", + completed_at: "2021-12-09T00:00:00Z", + remote_was_deleted: true, + ticket_url: "https://thirdpartysoftware.com/project/3/issue/1", + priority: "URGENT", + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + remote_fields: [{ remote_field_class: "remote_field_class" }], + }, + warnings: [ + { + source: { pointer: "pointer" }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problem_type: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { pointer: "pointer" }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problem_type: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + log_id: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboard_view: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + log_summary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + status_code: 200, + }, + }, + ], + }; + server + .mockEndpoint() + .patch("/ticketing/v1/tickets/id") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.tickets.partialUpdate("id", { + model: {}, + }); + expect(response).toEqual({ + model: { + id: "0958cbc6-6040-430a-848e-aafacbadf4ae", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Please add more integrations", + assignees: ["17a54124-287f-494d-965e-3c5b330c9a68"], + assignedTeams: ["4857c306-c1f9-489e-a6b6-90902f736dfe"], + creator: "creator", + dueDate: new Date("2022-10-11T00:00:00.000Z"), + status: "OPEN", + description: "Can you please add more integrations? It'll make syncing data much easier!", + collections: ["fb8c55b6-1cb8-4b4c-9fb6-17924231619d"], + ticketType: "incident", + account: "account", + contact: "contact", + parentTicket: "parent_ticket", + attachments: ["42747df1-95e7-46e2-93cc-66f1191edca5", "92f972d0-2526-434b-9409-4c3b468e08f0"], + accessLevel: "COMPANY", + tags: ["enterprise", "other-tag"], + roles: ["21a54124-397f-494d-985e-3c5b330b8a68", "17a54124-287f-494d-965e-3c5b330c9a68"], + remoteCreatedAt: new Date("2021-11-10T00:00:00.000Z"), + remoteUpdatedAt: new Date("2021-12-09T00:00:00.000Z"), + completedAt: new Date("2021-12-09T00:00:00.000Z"), + remoteWasDeleted: true, + ticketUrl: "https://thirdpartysoftware.com/project/3/issue/1", + priority: "URGENT", + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + remoteFields: [ + { + remoteFieldClass: "remote_field_class", + }, + ], + }, + warnings: [ + { + source: { + pointer: "pointer", + }, + title: "Unrecognized Field", + detail: "An unrecognized field, age, was passed in with request data.", + problemType: "UNRECOGNIZED_FIELD", + }, + ], + errors: [ + { + source: { + pointer: "pointer", + }, + title: "Missing Required Field", + detail: "custom_fields is a required field on model.", + problemType: "MISSING_REQUIRED_FIELD", + }, + ], + logs: [ + { + logId: "99433219-8017-4acd-bb3c-ceb23d663832", + dashboardView: "https://app.merge.dev/logs/99433219-8017-4acd-bb3c-ceb23d663832", + logSummary: { + url: "www.exampleintegration.com/api/v1/exampleapi", + method: "POST", + statusCode: 200, + }, + }, + ], + }); + }); + + test("viewersList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remote_id: "088899", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + team: "team", + user: "user", + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/tickets/ticket_id/viewers") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.tickets.viewersList("ticket_id"); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remoteId: "088899", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + team: "team", + user: "user", + }, + ], + }); + }); + + test("metaPatchRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/ticketing/v1/tickets/meta/patch/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.tickets.metaPatchRetrieve("id"); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("metaPostRetrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + request_schema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + email_address_type: { type: "string", title: "email_address_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + url_type: { type: "string", title: "url_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { type: "string", title: "first_name", description: "The first name." }, + last_name: { type: "string", title: "last_name", description: "The last name." }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { type: "string", title: "value" }, + phone_number_type: { type: "string", title: "phone_number_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { type: "string", title: "id" }, + file_url: { type: "string", title: "file_url" }, + file_name: { type: "string", title: "file_name" }, + attachment_type: { type: "string", title: "attachment_type" }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { value: "HRIS", description: "Merge HRIS Category" }, + { value: "ATS", description: "Merge ATS Category" }, + { value: "Accounting", description: "Merge Accounting Category" }, + { value: "Ticketing", description: "Merge Ticketing Category" }, + { value: "File Storage", description: "Merge File Storage Category" }, + { value: "CRM", description: "Merge CRM Category" }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { type: "string", format: "uuid" }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remote_field_classes: { key: "value" }, + status: { linked_account_status: "linked_account_status", can_make_request: true }, + has_conditional_params: true, + has_required_linked_account_params: true, + }; + server + .mockEndpoint() + .get("/ticketing/v1/tickets/meta/post") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.tickets.metaPostRetrieve(); + expect(response).toEqual({ + requestSchema: { + type: "object", + properties: { + model: { + type: "object", + required: [ + "last_name", + "first_name", + "merge_categories", + "new_york_city_neighborhood", + "favorite_tv_shows", + "favorite_watch", + ], + properties: { + email_addresses: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + email_address_type: { + type: "string", + title: "email_address_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "email_addresses", + description: "Array of email_addresses objects", + }, + urls: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + url_type: { + type: "string", + title: "url_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "urls", + description: "Array of urls objects", + }, + first_name: { + type: "string", + title: "first_name", + description: "The first name.", + }, + last_name: { + type: "string", + title: "last_name", + description: "The last name.", + }, + phone_numbers: { + type: "array", + items: { + type: "object", + properties: { + value: { + type: "string", + title: "value", + }, + phone_number_type: { + type: "string", + title: "phone_number_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "phone_numbers", + description: "Array of phone_numbers objects", + }, + tags: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "tags", + description: "Array of tags names", + }, + attachments: { + type: "array", + items: { + type: "object", + properties: { + id: { + type: "string", + title: "id", + }, + file_url: { + type: "string", + title: "file_url", + }, + file_name: { + type: "string", + title: "file_name", + }, + attachment_type: { + type: "string", + title: "attachment_type", + }, + integration_params: { + type: "object", + title: "integration_params", + properties: {}, + }, + linked_account_params: { + type: "object", + title: "linked_account_params", + properties: {}, + }, + }, + }, + title: "attachments", + description: "Array of attachments objects ", + }, + merge_categories: { + type: "array", + categories: { + type: "string", + enum: [ + "HRIS", + "ATS", + "Accounting", + "Ticketing", + "File Storage", + "CRM", + "Marketing Automation", + ], + enum_information: [ + { + value: "HRIS", + description: "Merge HRIS Category", + }, + { + value: "ATS", + description: "Merge ATS Category", + }, + { + value: "Accounting", + description: "Merge Accounting Category", + }, + { + value: "Ticketing", + description: "Merge Ticketing Category", + }, + { + value: "File Storage", + description: "Merge File Storage Category", + }, + { + value: "CRM", + description: "Merge CRM Category", + }, + { + value: "Marketing Automation", + description: "Merge Marketing Automation Category", + }, + ], + }, + title: "Merge Categories", + description: "Array of Merge's Unified API Categories", + }, + new_york_city_neighborhood: { + type: "string", + title: "Borough", + description: "One of the 5 Boroughs of New York City", + }, + favorite_tv_shows: { + type: "array", + items: { + type: "string", + format: "uuid", + }, + title: "Favorite TV Shows", + description: "Array of TV Show objects on merge.tv_shows", + }, + favorite_watch: { + type: "string", + title: "Favorite Watch", + description: "Favorite watch of all time", + }, + }, + }, + }, + }, + remoteFieldClasses: { + key: "value", + }, + status: { + linkedAccountStatus: "linked_account_status", + canMakeRequest: true, + }, + hasConditionalParams: true, + hasRequiredLinkedAccountParams: true, + }); + }); + + test("remoteFieldClassesList", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + display_name: "display_name", + remote_key_name: "remote_key_name", + description: "description", + is_custom: true, + is_required: true, + field_type: "field_type", + field_format: "field_format", + field_choices: [{}], + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/tickets/remote-field-classes") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.tickets.remoteFieldClassesList(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "id", + displayName: "display_name", + remoteKeyName: "remote_key_name", + description: "description", + isCustom: true, + isRequired: true, + fieldType: "field_type", + fieldFormat: "field_format", + fieldChoices: [{}], + }, + ], + }); + }); +}); diff --git a/tests/wire/ticketing/users.test.ts b/tests/wire/ticketing/users.test.ts new file mode 100644 index 000000000..64ba1f153 --- /dev/null +++ b/tests/wire/ticketing/users.test.ts @@ -0,0 +1,141 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("Users", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Gil Feig", + email_address: "help@merge.dev", + is_active: true, + teams: ["28b54125-287f-494d-965e-3c5b330c9a68", "17a54124-287f-494d-965e-3c5b330c9a68"], + roles: ["23454124-387f-494d-265e-345b330c9123"], + avatar: "https://merge.dev/user_profile_pic.png", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint" }], + }, + ], + }; + server + .mockEndpoint() + .get("/ticketing/v1/users") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.users.list(); + expect(response).toEqual({ + next: "cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw", + previous: "cj1sZXdwd2VycWVtY29zZnNkc2NzUWxNMEUxTXk0ME16UXpNallsTWtJ", + results: [ + { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Gil Feig", + emailAddress: "help@merge.dev", + isActive: true, + teams: ["28b54125-287f-494d-965e-3c5b330c9a68", "17a54124-287f-494d-965e-3c5b330c9a68"], + roles: ["23454124-387f-494d-265e-345b330c9123"], + avatar: "https://merge.dev/user_profile_pic.png", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + }, + ], + }, + ], + }); + }); + + test("retrieve", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remote_id: "19202938", + created_at: "2021-09-15T00:00:00Z", + modified_at: "2021-10-16T00:00:00Z", + name: "Gil Feig", + email_address: "help@merge.dev", + is_active: true, + teams: ["28b54125-287f-494d-965e-3c5b330c9a68", "17a54124-287f-494d-965e-3c5b330c9a68"], + roles: ["23454124-387f-494d-265e-345b330c9123"], + avatar: "https://merge.dev/user_profile_pic.png", + remote_was_deleted: true, + field_mappings: { + organization_defined_targets: { custom_key: "custom_value" }, + linked_account_defined_targets: { custom_key: "custom_value" }, + }, + remote_data: [{ path: "/platform-endpoint", data: { key: "value" } }], + }; + server + .mockEndpoint() + .get("/ticketing/v1/users/id") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.users.retrieve("id"); + expect(response).toEqual({ + id: "17a54124-287f-494d-965e-3c5b330c9a68", + remoteId: "19202938", + createdAt: new Date("2021-09-15T00:00:00.000Z"), + modifiedAt: new Date("2021-10-16T00:00:00.000Z"), + name: "Gil Feig", + emailAddress: "help@merge.dev", + isActive: true, + teams: ["28b54125-287f-494d-965e-3c5b330c9a68", "17a54124-287f-494d-965e-3c5b330c9a68"], + roles: ["23454124-387f-494d-265e-345b330c9123"], + avatar: "https://merge.dev/user_profile_pic.png", + remoteWasDeleted: true, + fieldMappings: { + organization_defined_targets: { + custom_key: "custom_value", + }, + linked_account_defined_targets: { + custom_key: "custom_value", + }, + }, + remoteData: [ + { + path: "/platform-endpoint", + data: { + key: "value", + }, + }, + ], + }); + }); +}); diff --git a/tests/wire/ticketing/webhookReceivers.test.ts b/tests/wire/ticketing/webhookReceivers.test.ts new file mode 100644 index 000000000..af5aedcb8 --- /dev/null +++ b/tests/wire/ticketing/webhookReceivers.test.ts @@ -0,0 +1,56 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ + +import { mockServerPool } from "../../mock-server/MockServerPool.js"; +import { MergeClient } from "../../../src/Client"; + +describe("WebhookReceivers", () => { + test("list", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + + const rawResponseBody = [{ event: "event", is_active: true, key: "key" }]; + server + .mockEndpoint() + .get("/ticketing/v1/webhook-receivers") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.webhookReceivers.list(); + expect(response).toEqual([ + { + event: "event", + isActive: true, + key: "key", + }, + ]); + }); + + test("create", async () => { + const server = mockServerPool.createServer(); + const client = new MergeClient({ apiKey: "test", accountToken: "test", environment: server.baseUrl }); + const rawRequestBody = { event: "event", is_active: true }; + const rawResponseBody = { event: "event", is_active: true, key: "key" }; + server + .mockEndpoint() + .post("/ticketing/v1/webhook-receivers") + .jsonBody(rawRequestBody) + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.ticketing.webhookReceivers.create({ + event: "event", + isActive: true, + }); + expect(response).toEqual({ + event: "event", + isActive: true, + key: "key", + }); + }); +}); diff --git a/yarn.lock b/yarn.lock index 2db2b976b..dcb3f1cb4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -273,6 +273,60 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@bundled-es-modules/cookie@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@bundled-es-modules/cookie/-/cookie-2.0.1.tgz#b41376af6a06b3e32a15241d927b840a9b4de507" + integrity sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw== + dependencies: + cookie "^0.7.2" + +"@bundled-es-modules/statuses@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@bundled-es-modules/statuses/-/statuses-1.0.1.tgz#761d10f44e51a94902c4da48675b71a76cc98872" + integrity sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg== + dependencies: + statuses "^2.0.1" + +"@bundled-es-modules/tough-cookie@^0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@bundled-es-modules/tough-cookie/-/tough-cookie-0.1.6.tgz#fa9cd3cedfeecd6783e8b0d378b4a99e52bde5d3" + integrity sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw== + dependencies: + "@types/tough-cookie" "^4.0.5" + tough-cookie "^4.1.4" + +"@inquirer/confirm@^5.0.0": + version "5.1.12" + resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.1.12.tgz#387037889a5a558ceefe52e978228630aa6e7d0e" + integrity sha512-dpq+ielV9/bqgXRUbNH//KsY6WEw9DrGPmipkpmgC1Y46cwuBTNx7PXFWTjc3MQ+urcc0QxoVHcMI0FW4Ok0hg== + dependencies: + "@inquirer/core" "^10.1.13" + "@inquirer/type" "^3.0.7" + +"@inquirer/core@^10.1.13": + version "10.1.13" + resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.1.13.tgz#8f1ecfaba288fd2d705c7ac0690371464cf687b0" + integrity sha512-1viSxebkYN2nJULlzCxES6G9/stgHSepZ9LqqfdIGPHj5OHhiBUXVS0a6R0bEC2A+VL4D9w6QB66ebCr6HGllA== + dependencies: + "@inquirer/figures" "^1.0.12" + "@inquirer/type" "^3.0.7" + ansi-escapes "^4.3.2" + cli-width "^4.1.0" + mute-stream "^2.0.0" + signal-exit "^4.1.0" + wrap-ansi "^6.2.0" + yoctocolors-cjs "^2.1.2" + +"@inquirer/figures@^1.0.12": + version "1.0.12" + resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.12.tgz#667d6254cc7ba3b0c010a323d78024a1d30c6053" + integrity sha512-MJttijd8rMFcKJC8NYmprWr6hD3r9Gd9qUC0XwPNwoEPWSMVJwA2MlXxF+nhZZNMY+HXsWa+o7KY2emWYIn0jQ== + +"@inquirer/type@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.7.tgz#b46bcf377b3172dbc768fdbd053e6492ad801a09" + integrity sha512-PfunHQcjwnju84L+ycmcMKB/pTPIngjUJvfnRhKY6FKPuYXlM4aQCb/nIdTFR6BEhMjFvngzvng/vBAJMZpLSA== + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -521,6 +575,36 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@mswjs/interceptors@^0.39.1": + version "0.39.2" + resolved "https://registry.yarnpkg.com/@mswjs/interceptors/-/interceptors-0.39.2.tgz#de9de0ab23f99d387c7904df7219a92157d1d666" + integrity sha512-RuzCup9Ct91Y7V79xwCb146RaBRHZ7NBbrIUySumd1rpKqHL5OonaqrGIbug5hNwP/fRyxFMA6ISgw4FTtYFYg== + dependencies: + "@open-draft/deferred-promise" "^2.2.0" + "@open-draft/logger" "^0.3.0" + "@open-draft/until" "^2.0.0" + is-node-process "^1.2.0" + outvariant "^1.4.3" + strict-event-emitter "^0.5.1" + +"@open-draft/deferred-promise@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz#4a822d10f6f0e316be4d67b4d4f8c9a124b073bd" + integrity sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA== + +"@open-draft/logger@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@open-draft/logger/-/logger-0.3.0.tgz#2b3ab1242b360aa0adb28b85f5d7da1c133a0954" + integrity sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ== + dependencies: + is-node-process "^1.2.0" + outvariant "^1.4.0" + +"@open-draft/until@^2.0.0", "@open-draft/until@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@open-draft/until/-/until-2.1.0.tgz#0acf32f470af2ceaf47f095cdecd40d68666efda" + integrity sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg== + "@sinclair/typebox@^0.27.8": version "0.27.8" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" @@ -578,6 +662,11 @@ dependencies: "@babel/types" "^7.20.7" +"@types/cookie@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.6.0.tgz#eac397f28bf1d6ae0ae081363eca2f425bedf0d5" + integrity sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA== + "@types/eslint-scope@^3.7.7": version "3.7.7" resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" @@ -595,9 +684,9 @@ "@types/json-schema" "*" "@types/estree@*", "@types/estree@^1.0.6": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.7.tgz#4158d3105276773d5b7695cd4834b1722e4f37a8" - integrity sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ== + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== "@types/graceful-fs@^4.1.3": version "4.1.9" @@ -656,16 +745,16 @@ form-data "^4.0.0" "@types/node@*": - version "22.15.29" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.15.29.tgz#c75999124a8224a3f79dd8b6ccfb37d74098f678" - integrity sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ== + version "24.0.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.0.1.tgz#e9bfcb1c35547437c294403b7bec497772a88b0a" + integrity sha512-MX4Zioh39chHlDJbKmEgydJDS3tspMP/lnQC67G3SWsTnb9NeYVWOjkxpOSy4oMfPs4StcWHwBrvUb4ybfnuaw== dependencies: - undici-types "~6.21.0" + undici-types "~7.8.0" "@types/node@^18.19.70": - version "18.19.110" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.110.tgz#33e25fa1796ba5023cee137f24f15d332d2d45d1" - integrity sha512-WW2o4gTmREtSnqKty9nhqF/vA0GKd0V/rbC0OyjSk9Bz6bzlsXKT+i7WDdS/a0z74rfT2PO4dArVCSnapNLA5Q== + version "18.19.111" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.111.tgz#e95b89efc24cc625834b43bcd70bd5591a5dfba5" + integrity sha512-90sGdgA+QLJr1F9X79tQuEut0gEYIfkX9pydI4XGRgvFo9g2JWswefI+WUSUHPYVBHYSEfTEqBxA5hQvAZB3Mw== dependencies: undici-types "~5.26.4" @@ -686,7 +775,12 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== -"@types/tough-cookie@*": +"@types/statuses@^2.0.4": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/statuses/-/statuses-2.0.6.tgz#66748315cc9a96d63403baa8671b2c124f8633aa" + integrity sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA== + +"@types/tough-cookie@*", "@types/tough-cookie@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== @@ -867,9 +961,9 @@ acorn-walk@^8.0.2: acorn "^8.11.0" acorn@^8.1.0, acorn@^8.11.0, acorn@^8.14.0, acorn@^8.8.1: - version "8.14.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb" - integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg== + version "8.15.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== agent-base@6: version "6.0.2" @@ -902,7 +996,7 @@ ajv@^8.0.0, ajv@^8.9.0: json-schema-traverse "^1.0.0" require-from-string "^2.0.2" -ansi-escapes@^4.2.1: +ansi-escapes@^4.2.1, ansi-escapes@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -1025,17 +1119,17 @@ base64-js@^1.3.1: integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + version "1.1.12" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" + integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + version "2.0.2" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" + integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== dependencies: balanced-match "^1.0.0" @@ -1115,9 +1209,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001718: - version "1.0.30001721" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001721.tgz#36b90cd96901f8c98dd6698bf5c8af7d4c6872d7" - integrity sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ== + version "1.0.30001722" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001722.tgz#ec25a2b3085b25b9079b623db83c22a70882ce85" + integrity sha512-DCQHBBZtiK6JVkAGw7drvAMK0Q0POD/xZvEmDp6baiMMP6QXXk9HpD6mNYBZWhOPG6LvIDb82ITqtWjhDckHCA== chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0: version "4.1.2" @@ -1147,6 +1241,11 @@ cjs-module-lexer@^1.0.0: resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz#0f79731eb8cfe1ec72acd4066efac9d61991b00d" integrity sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q== +cli-width@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5" + integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== + cliui@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" @@ -1200,6 +1299,11 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== +cookie@^0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" + integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== + create-jest@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" @@ -1309,9 +1413,9 @@ ejs@^3.1.10: jake "^10.8.5" electron-to-chromium@^1.5.160: - version "1.5.165" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.165.tgz#477b0957e42f071905a86f7c905a9848f95d2bdb" - integrity sha512-naiMx1Z6Nb2TxPU6fiFrUrDTjyPMLdTtaOd2oLmG8zVSg2hCWGkhPyxwk+qRmZ1ytwVqUv0u7ZcDA5+ALhaUtw== + version "1.5.166" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.166.tgz#3fff386ed473cc2169dbe2d3ace9592262601114" + integrity sha512-QPWqHL0BglzPYyJJ1zSSmwFFL6MFXhbACOCcsCdUMCkzPdS9/OIBVxg516X/Ado2qwAq8k0nJJ7phQPCqiaFAw== emittery@^0.13.1: version "0.13.1" @@ -1332,9 +1436,9 @@ enhanced-resolve@^5.0.0, enhanced-resolve@^5.17.1: tapable "^2.2.0" entities@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.0.tgz#09c9e29cb79b0a6459a9b9db9efb418ac5bb8e51" - integrity sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw== + version "6.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.1.tgz#c28c34a43379ca7f61d074130b2f5f7020a30694" + integrity sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g== error-ex@^1.3.1: version "1.3.2" @@ -1623,6 +1727,11 @@ graceful-fs@^4.1.2, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.9: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== +graphql@^16.8.1: + version "16.11.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.11.0.tgz#96d17f66370678027fdf59b2d4c20b4efaa8a633" + integrity sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw== + has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" @@ -1647,6 +1756,11 @@ hasown@^2.0.2: dependencies: function-bind "^1.1.2" +headers-polyfill@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/headers-polyfill/-/headers-polyfill-4.0.3.tgz#922a0155de30ecc1f785bcf04be77844ca95ad07" + integrity sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ== + html-encoding-sniffer@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" @@ -1741,6 +1855,11 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== +is-node-process@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-node-process/-/is-node-process-1.2.0.tgz#ea02a1b90ddb3934a19aea414e88edef7e11d134" + integrity sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw== + is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -2138,7 +2257,7 @@ jest-snapshot@^29.7.0: pretty-format "^29.7.0" semver "^7.5.3" -jest-util@^29.0.0, jest-util@^29.7.0: +jest-util@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== @@ -2387,6 +2506,35 @@ ms@^2.1.3: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +msw@^2.8.4: + version "2.10.2" + resolved "https://registry.yarnpkg.com/msw/-/msw-2.10.2.tgz#e7a56ed0b6865b00a30b4c4a5b59e5388fd48315" + integrity sha512-RCKM6IZseZQCWcSWlutdf590M8nVfRHG1ImwzOtwz8IYxgT4zhUO0rfTcTvDGiaFE0Rhcc+h43lcF3Jc9gFtwQ== + dependencies: + "@bundled-es-modules/cookie" "^2.0.1" + "@bundled-es-modules/statuses" "^1.0.1" + "@bundled-es-modules/tough-cookie" "^0.1.6" + "@inquirer/confirm" "^5.0.0" + "@mswjs/interceptors" "^0.39.1" + "@open-draft/deferred-promise" "^2.2.0" + "@open-draft/until" "^2.1.0" + "@types/cookie" "^0.6.0" + "@types/statuses" "^2.0.4" + graphql "^16.8.1" + headers-polyfill "^4.0.2" + is-node-process "^1.2.0" + outvariant "^1.4.3" + path-to-regexp "^6.3.0" + picocolors "^1.1.1" + strict-event-emitter "^0.5.1" + type-fest "^4.26.1" + yargs "^17.7.2" + +mute-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-2.0.0.tgz#a5446fc0c512b71c83c44d908d5c7b7b4c493b2b" + integrity sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -2450,6 +2598,11 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +outvariant@^1.4.0, outvariant@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/outvariant/-/outvariant-1.4.3.tgz#221c1bfc093e8fec7075497e7799fdbf43d14873" + integrity sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA== + p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -2513,6 +2666,11 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-to-regexp@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.3.0.tgz#2b6a26a337737a8e1416f9272ed0766b1c0389f4" + integrity sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ== + picocolors@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" @@ -2756,6 +2914,11 @@ signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -2804,6 +2967,16 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" +statuses@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382" + integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw== + +strict-event-emitter@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz#1602ece81c51574ca39c6815e09f1a3e8550bd93" + integrity sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ== + string-length@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" @@ -2891,9 +3064,9 @@ terser-webpack-plugin@^5.3.11: terser "^5.31.1" terser@^5.31.1: - version "5.41.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.41.0.tgz#11646bba11eff72d506fbafbd0086f57173141e1" - integrity sha512-H406eLPXpZbAX14+B8psIuvIr8+3c+2hkuYzpMkoE0ij+NdsVATbA78vb8neA/eqrj7rywa2pIkdmWRsXW6wmw== + version "5.42.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.42.0.tgz#1db8493aa0f3f866e488ec0fcf7e0c28eb43a2f5" + integrity sha512-UYCvU9YQW2f/Vwl+P0GfhxJxbUGLwd+5QrrGgLajzWAtC/23AX0vcise32kkP7Eu0Wu9VlzzHAXkLObgjQfFlQ== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.14.0" @@ -2921,7 +3094,7 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -tough-cookie@^4.1.2: +tough-cookie@^4.1.2, tough-cookie@^4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== @@ -2943,15 +3116,14 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -ts-jest@^29.1.1: - version "29.3.4" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.3.4.tgz#9354472aceae1d3867a80e8e02014ea5901aee41" - integrity sha512-Iqbrm8IXOmV+ggWHOTEbjwyCf2xZlUMv5npExksXohL+tk8va4Fjhb+X2+Rt9NBmgO7bJ8WpnMLOwih/DnMlFA== +ts-jest@^29.3.4: + version "29.4.0" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.0.tgz#bef0ee98d94c83670af7462a1617bf2367a83740" + integrity sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q== dependencies: bs-logger "^0.2.6" ejs "^3.1.10" fast-json-stable-stringify "^2.1.0" - jest-util "^29.0.0" json5 "^2.2.3" lodash.memoize "^4.1.2" make-error "^1.3.6" @@ -2980,7 +3152,7 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -type-fest@^4.41.0: +type-fest@^4.26.1, type-fest@^4.41.0: version "4.41.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.41.0.tgz#6ae1c8e5731273c2bf1f58ad39cbae2c91a46c58" integrity sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA== @@ -2995,10 +3167,10 @@ undici-types@~5.26.4: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -undici-types@~6.21.0: - version "6.21.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" - integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== +undici-types@~7.8.0: + version "7.8.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.8.0.tgz#de00b85b710c54122e44fbfd911f8d70174cd294" + integrity sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw== universalify@^0.2.0: version "0.2.0" @@ -3137,6 +3309,15 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -3189,7 +3370,7 @@ yargs-parser@^21.1.1: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@^17.3.1: +yargs@^17.3.1, yargs@^17.7.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== @@ -3206,3 +3387,8 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yoctocolors-cjs@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz#f4b905a840a37506813a7acaa28febe97767a242" + integrity sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==