From 103732cc2e8fe9dd5fbb8f9dc1e14ec3eeede58d Mon Sep 17 00:00:00 2001 From: Renato Byrro Date: Fri, 10 Oct 2025 16:35:55 -0300 Subject: [PATCH] Xero API Starter MCP server (#603) --- docker/toolkits.txt | 1 + toolkits/xero_api/.pre-commit-config.yaml | 18 + toolkits/xero_api/.ruff.toml | 44 + toolkits/xero_api/LICENSE | 21 + toolkits/xero_api/Makefile | 54 + toolkits/xero_api/arcade_xero_api/__init__.py | 0 .../arcade_xero_api/tools/__init__.py | 6585 +++++++++++++++++ .../AddContactHistoryRecord.json | 171 + .../wrapper_tools/AddExpenseClaimHistory.json | 171 + .../wrapper_tools/AddQuoteHistory.json | 171 + .../CreateBankTransactionHistory.json | 171 + .../CreateBankTransferHistory.json | 171 + .../CreateBatchPaymentHistoryRecord.json | 171 + .../wrapper_tools/CreateInvoiceHistory.json | 171 + .../wrapper_tools/CreateItemHistory.json | 171 + .../CreateJournalHistoryRecord.json | 171 + .../CreatePaymentHistoryRecord.json | 171 + .../CreatePrepaymentHistory.json | 171 + .../CreatePurchaseOrderHistory.json | 171 + .../CreateRepeatingInvoiceHistory.json | 171 + .../wrapper_tools/DeleteAccount.json | 139 + .../DeleteCreditNoteAllocation.json | 171 + .../wrapper_tools/DeleteInventoryItem.json | 139 + .../DeleteLinkedTransaction.json | 139 + .../DeleteOverpaymentAllocation.json | 171 + .../DeletePrepaymentAllocation.json | 171 + .../wrapper_tools/DeleteTenantConnection.json | 101 + .../wrapper_tools/DeleteTrackingOption.json | 171 + .../wrapper_tools/FetchAllXeroContacts.json | 396 + .../FetchBankTransferAttachment.json | 204 + .../wrapper_tools/FetchCreditNoteHistory.json | 171 + .../wrapper_tools/FetchInvoicePayments.json | 268 + .../FetchPurchaseOrderAttachment.json | 204 + .../GetAgedPayablesReportByContact.json | 235 + .../GetAgedReceivablesReportByContact.json | 235 + .../wrapper_tools/GetBalanceSheetReport.json | 339 + .../wrapper_tools/GetBankSummaryReport.json | 171 + .../GetBankTransactionAttachment.json | 204 + .../GetBankTransactionHistory.json | 140 + .../wrapper_tools/GetBankTransferHistory.json | 140 + .../wrapper_tools/GetBatchPaymentDetails.json | 140 + .../wrapper_tools/GetBrandingThemes.json | 108 + .../wrapper_tools/GetBudgetSummaryReport.json | 203 + .../wrapper_tools/GetCisSettings.json | 140 + .../wrapper_tools/GetConnectedTenants.json | 105 + .../wrapper_tools/GetContactAttachment.json | 204 + .../wrapper_tools/GetContactAttachments.json | 140 + .../wrapper_tools/GetContactCisSettings.json | 140 + .../wrapper_tools/GetContactHistory.json | 140 + .../GetCreditNoteAttachment.json | 204 + .../GetCreditNoteAttachments.json | 140 + .../wrapper_tools/GetCreditNoteHistory.json | 140 + .../wrapper_tools/GetCreditNotePdf.json | 140 + .../wrapper_tools/GetCreditNotes.json | 300 + .../GetDraftExpenseReceipts.json | 236 + .../GetExpenseReceiptAttachment.json | 204 + .../wrapper_tools/GetFinancialJournals.json | 203 + .../wrapper_tools/GetInvoiceAttachment.json | 204 + .../wrapper_tools/GetInvoiceDetails.json | 172 + .../GetInvoiceReminderSettings.json | 108 + .../wrapper_tools/GetItemHistory.json | 140 + .../wrapper_tools/GetItems.json | 236 + .../GetJournalAttachmentByFilename.json | 204 + .../wrapper_tools/GetLinkedTransaction.json | 140 + .../GetManualJournalHistory.json | 140 + .../wrapper_tools/GetOverpaymentHistory.json | 140 + .../GetPaymentServicesForBrandingTheme.json | 139 + .../wrapper_tools/GetPrepaymentDetails.json | 140 + .../wrapper_tools/GetPrepaymentHistory.json | 140 + .../wrapper_tools/GetProfitAndLossReport.json | 435 ++ .../wrapper_tools/GetPurchaseOrderPdf.json | 140 + .../wrapper_tools/GetQuoteAttachment.json | 204 + .../wrapper_tools/GetReceiptAttachments.json | 140 + .../wrapper_tools/GetRepeatingInvoice.json | 140 + .../GetRepeatingInvoiceHistory.json | 140 + .../wrapper_tools/GetRepeatingInvoices.json | 172 + .../wrapper_tools/GetTaxRateByTaxType.json | 140 + .../wrapper_tools/GetTrackingCategories.json | 204 + .../wrapper_tools/GetTrackingCategory.json | 140 + .../wrapper_tools/GetTrialBalanceReport.json | 171 + .../wrapper_tools/GetXeroContactByNumber.json | 140 + .../wrapper_tools/GetXeroCurrencies.json | 172 + .../GetXeroOrganisationDetails.json | 108 + .../RecordOverpaymentHistory.json | 171 + .../wrapper_tools/RecordReceiptHistory.json | 171 + .../wrapper_tools/RemoveContactFromGroup.json | 171 + .../RemoveContactsFromGroup.json | 139 + .../wrapper_tools/RemoveTrackingCategory.json | 139 + .../wrapper_tools/Retrieve1099Reports.json | 140 + .../RetrieveAccountAttachment.json | 204 + .../RetrieveAccountAttachmentByFilename.json | 204 + .../RetrieveAccountAttachments.json | 140 + .../wrapper_tools/RetrieveAccountDetails.json | 140 + .../RetrieveBankTransaction.json | 172 + .../RetrieveBankTransactionAttachment.json | 204 + .../RetrieveBankTransactionAttachments.json | 140 + .../RetrieveBankTransactions.json | 300 + .../wrapper_tools/RetrieveBankTransfer.json | 140 + .../RetrieveBankTransferAttachment.json | 204 + .../RetrieveBankTransferAttachments.json | 140 + .../wrapper_tools/RetrieveBankTransfers.json | 204 + .../RetrieveBatchPaymentHistory.json | 140 + .../wrapper_tools/RetrieveBatchPayments.json | 204 + .../wrapper_tools/RetrieveBrandingTheme.json | 140 + .../wrapper_tools/RetrieveBudgetDetails.json | 203 + .../wrapper_tools/RetrieveBudgets.json | 203 + .../RetrieveContactAttachment.json | 204 + .../wrapper_tools/RetrieveContactGroup.json | 140 + .../wrapper_tools/RetrieveContactGroups.json | 172 + .../wrapper_tools/RetrieveCreditNote.json | 172 + .../RetrieveCreditNoteAttachment.json | 204 + .../RetrieveDraftExpenseClaimReceipt.json | 172 + .../RetrieveExecutiveSummaryReport.json | 139 + .../wrapper_tools/RetrieveExpenseClaim.json | 140 + .../RetrieveExpenseClaimHistory.json | 140 + .../wrapper_tools/RetrieveExpenseClaims.json | 204 + .../RetrieveFullChartOfAccounts.json | 204 + .../RetrieveInvoiceAttachment.json | 202 + .../RetrieveInvoiceAttachmentById.json | 204 + .../RetrieveInvoiceAttachments.json | 140 + .../wrapper_tools/RetrieveInvoiceHistory.json | 140 + .../wrapper_tools/RetrieveInvoicePayment.json | 140 + .../wrapper_tools/RetrieveInvoicePdf.json | 140 + .../wrapper_tools/RetrieveInvoices.json | 556 ++ .../RetrieveJournalAttachment.json | 204 + .../RetrieveJournalAttachments.json | 140 + .../RetrieveJournalByNumber.json | 139 + .../RetrieveLinkedTransactions.json | 300 + .../wrapper_tools/RetrieveManualJournal.json | 140 + .../wrapper_tools/RetrieveManualJournals.json | 268 + .../RetrieveOnlineInvoiceUrl.json | 140 + .../wrapper_tools/RetrieveOverpayments.json | 300 + .../wrapper_tools/RetrievePaymentHistory.json | 140 + .../RetrievePaymentServices.json | 107 + .../RetrievePoAttachmentByFilename.json | 204 + .../wrapper_tools/RetrievePrepayments.json | 300 + .../wrapper_tools/RetrievePurchaseOrder.json | 140 + .../RetrievePurchaseOrderAttachments.json | 140 + .../RetrievePurchaseOrderByNumber.json | 140 + .../RetrievePurchaseOrderHistory.json | 140 + .../wrapper_tools/RetrievePurchaseOrders.json | 344 + .../wrapper_tools/RetrieveQuote.json | 140 + .../RetrieveQuoteAttachmentByFilename.json | 204 + .../RetrieveQuoteAttachments.json | 140 + .../wrapper_tools/RetrieveQuoteHistory.json | 140 + .../wrapper_tools/RetrieveQuotePdf.json | 140 + .../RetrieveReceiptAttachment.json | 204 + .../wrapper_tools/RetrieveReceiptHistory.json | 140 + .../RetrieveRepeatingInvoiceAttachment.json | 204 + ...etrieveRepeatingInvoiceAttachmentById.json | 204 + .../RetrieveRepeatingInvoiceAttachments.json | 140 + .../wrapper_tools/RetrieveSalesQuotes.json | 428 ++ .../RetrieveSpecificJournal.json | 139 + .../RetrieveSpecificOverpayment.json | 140 + .../wrapper_tools/RetrieveSpecificReport.json | 139 + .../wrapper_tools/RetrieveSpecificUser.json | 140 + .../wrapper_tools/RetrieveTaxRates.json | 172 + .../RetrieveUniqueReportsList.json | 107 + .../wrapper_tools/RetrieveXeroContact.json | 140 + .../wrapper_tools/RetrieveXeroItem.json | 172 + .../RetrieveXeroOrganisationActions.json | 108 + .../wrapper_tools/RetrieveXeroUsers.json | 204 + .../wrapper_tools/SetFinancialSetup.json | 1147 +++ toolkits/xero_api/pyproject.toml | 60 + 164 files changed, 35555 insertions(+) create mode 100644 toolkits/xero_api/.pre-commit-config.yaml create mode 100644 toolkits/xero_api/.ruff.toml create mode 100644 toolkits/xero_api/LICENSE create mode 100644 toolkits/xero_api/Makefile create mode 100644 toolkits/xero_api/arcade_xero_api/__init__.py create mode 100644 toolkits/xero_api/arcade_xero_api/tools/__init__.py create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/AddContactHistoryRecord.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/AddExpenseClaimHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/AddQuoteHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateBankTransactionHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateBankTransferHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateBatchPaymentHistoryRecord.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateInvoiceHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateItemHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateJournalHistoryRecord.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/CreatePaymentHistoryRecord.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/CreatePrepaymentHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/CreatePurchaseOrderHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateRepeatingInvoiceHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteAccount.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteCreditNoteAllocation.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteInventoryItem.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteLinkedTransaction.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteOverpaymentAllocation.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/DeletePrepaymentAllocation.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteTenantConnection.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteTrackingOption.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchAllXeroContacts.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchBankTransferAttachment.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchCreditNoteHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchInvoicePayments.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchPurchaseOrderAttachment.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetAgedPayablesReportByContact.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetAgedReceivablesReportByContact.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBalanceSheetReport.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBankSummaryReport.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBankTransactionAttachment.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBankTransactionHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBankTransferHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBatchPaymentDetails.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBrandingThemes.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBudgetSummaryReport.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCisSettings.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetConnectedTenants.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetContactAttachment.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetContactAttachments.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetContactCisSettings.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetContactHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNoteAttachment.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNoteAttachments.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNoteHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNotePdf.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNotes.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetDraftExpenseReceipts.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetExpenseReceiptAttachment.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetFinancialJournals.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetInvoiceAttachment.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetInvoiceDetails.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetInvoiceReminderSettings.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetItemHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetItems.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetJournalAttachmentByFilename.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetLinkedTransaction.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetManualJournalHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetOverpaymentHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetPaymentServicesForBrandingTheme.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetPrepaymentDetails.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetPrepaymentHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetProfitAndLossReport.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetPurchaseOrderPdf.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetQuoteAttachment.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetReceiptAttachments.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetRepeatingInvoice.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetRepeatingInvoiceHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetRepeatingInvoices.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetTaxRateByTaxType.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetTrackingCategories.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetTrackingCategory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetTrialBalanceReport.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetXeroContactByNumber.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetXeroCurrencies.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/GetXeroOrganisationDetails.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RecordOverpaymentHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RecordReceiptHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RemoveContactFromGroup.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RemoveContactsFromGroup.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RemoveTrackingCategory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/Retrieve1099Reports.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveAccountAttachment.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveAccountAttachmentByFilename.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveAccountAttachments.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveAccountDetails.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransaction.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransactionAttachment.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransactionAttachments.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransactions.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransfer.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransferAttachment.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransferAttachments.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransfers.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBatchPaymentHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBatchPayments.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBrandingTheme.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBudgetDetails.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBudgets.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveContactAttachment.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveContactGroup.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveContactGroups.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveCreditNote.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveCreditNoteAttachment.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveDraftExpenseClaimReceipt.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveExecutiveSummaryReport.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveExpenseClaim.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveExpenseClaimHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveExpenseClaims.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveFullChartOfAccounts.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoiceAttachment.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoiceAttachmentById.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoiceAttachments.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoiceHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoicePayment.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoicePdf.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoices.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveJournalAttachment.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveJournalAttachments.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveJournalByNumber.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveLinkedTransactions.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveManualJournal.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveManualJournals.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveOnlineInvoiceUrl.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveOverpayments.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePaymentHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePaymentServices.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePoAttachmentByFilename.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePrepayments.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrder.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrderAttachments.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrderByNumber.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrderHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrders.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuote.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuoteAttachmentByFilename.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuoteAttachments.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuoteHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuotePdf.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveReceiptAttachment.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveReceiptHistory.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveRepeatingInvoiceAttachment.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveRepeatingInvoiceAttachmentById.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveRepeatingInvoiceAttachments.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSalesQuotes.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSpecificJournal.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSpecificOverpayment.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSpecificReport.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSpecificUser.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveTaxRates.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveUniqueReportsList.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveXeroContact.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveXeroItem.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveXeroOrganisationActions.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveXeroUsers.json create mode 100644 toolkits/xero_api/arcade_xero_api/wrapper_tools/SetFinancialSetup.json create mode 100644 toolkits/xero_api/pyproject.toml diff --git a/docker/toolkits.txt b/docker/toolkits.txt index 87889143..19d596ba 100644 --- a/docker/toolkits.txt +++ b/docker/toolkits.txt @@ -1,3 +1,4 @@ arcade-box-api arcade-slack-api arcade-stripe-api +arcade-xero-api diff --git a/toolkits/xero_api/.pre-commit-config.yaml b/toolkits/xero_api/.pre-commit-config.yaml new file mode 100644 index 00000000..d6655082 --- /dev/null +++ b/toolkits/xero_api/.pre-commit-config.yaml @@ -0,0 +1,18 @@ +files: ^.*/xero_api/.* +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: "v4.4.0" + hooks: + - id: check-case-conflict + - id: check-merge-conflict + - id: check-toml + - id: check-yaml + - id: end-of-file-fixer + - id: trailing-whitespace + + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.6.7 + hooks: + - id: ruff + args: [--fix] + - id: ruff-format diff --git a/toolkits/xero_api/.ruff.toml b/toolkits/xero_api/.ruff.toml new file mode 100644 index 00000000..9519fe6c --- /dev/null +++ b/toolkits/xero_api/.ruff.toml @@ -0,0 +1,44 @@ +target-version = "py310" +line-length = 100 +fix = true + +[lint] +select = [ + # flake8-2020 + "YTT", + # flake8-bandit + "S", + # flake8-bugbear + "B", + # flake8-builtins + "A", + # flake8-comprehensions + "C4", + # flake8-debugger + "T10", + # flake8-simplify + "SIM", + # isort + "I", + # mccabe + "C90", + # pycodestyle + "E", "W", + # pyflakes + "F", + # pygrep-hooks + "PGH", + # pyupgrade + "UP", + # ruff + "RUF", + # tryceratops + "TRY", +] + +[lint.per-file-ignores] +"**/tests/*" = ["S101"] + +[format] +preview = true +skip-magic-trailing-comma = false diff --git a/toolkits/xero_api/LICENSE b/toolkits/xero_api/LICENSE new file mode 100644 index 00000000..dfbb8b76 --- /dev/null +++ b/toolkits/xero_api/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025, Arcade AI + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/toolkits/xero_api/Makefile b/toolkits/xero_api/Makefile new file mode 100644 index 00000000..86da492a --- /dev/null +++ b/toolkits/xero_api/Makefile @@ -0,0 +1,54 @@ +.PHONY: help + +help: + @echo "🛠️ github Commands:\n" + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + +.PHONY: install +install: ## Install the uv environment and install all packages with dependencies + @echo "🚀 Creating virtual environment and installing all packages using uv" + @uv sync --active --all-extras --no-sources + @if [ -f .pre-commit-config.yaml ]; then uv run --no-sources pre-commit install; fi + @echo "✅ All packages and dependencies installed via uv" + +.PHONY: install-local +install-local: ## Install the uv environment and install all packages with dependencies with local Arcade sources + @echo "🚀 Creating virtual environment and installing all packages using uv" + @uv sync --active --all-extras + @if [ -f .pre-commit-config.yaml ]; then uv run pre-commit install; fi + @echo "✅ All packages and dependencies installed via uv" +.PHONY: build +build: clean-build ## Build wheel file using poetry + @echo "🚀 Creating wheel file" + uv build + +.PHONY: clean-build +clean-build: ## clean build artifacts + @echo "🗑️ Cleaning dist directory" + rm -rf dist + +.PHONY: test +test: ## Test the code with pytest + @echo "🚀 Testing code: Running pytest" + @uv run --no-sources pytest -W ignore -v --cov --cov-config=pyproject.toml --cov-report=xml + +.PHONY: coverage +coverage: ## Generate coverage report + @echo "coverage report" + @uv run --no-sources coverage report + @echo "Generating coverage report" + @uv run --no-sources coverage html + +.PHONY: bump-version +bump-version: ## Bump the version in the pyproject.toml file by a patch version + @echo "🚀 Bumping version in pyproject.toml" + uv version --no-sources --bump patch + +.PHONY: check +check: ## Run code quality tools. + @if [ -f .pre-commit-config.yaml ]; then\ + echo "🚀 Linting code: Running pre-commit";\ + uv run --no-sources pre-commit run -a;\ + fi + @echo "🚀 Static type checking: Running mypy" + @uv run --no-sources mypy --config-file=pyproject.toml diff --git a/toolkits/xero_api/arcade_xero_api/__init__.py b/toolkits/xero_api/arcade_xero_api/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/toolkits/xero_api/arcade_xero_api/tools/__init__.py b/toolkits/xero_api/arcade_xero_api/tools/__init__.py new file mode 100644 index 00000000..2f0f4394 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/tools/__init__.py @@ -0,0 +1,6585 @@ +"""API Wrapper Tools for Xero + +DO NOT EDIT THIS MODULE DIRECTLY. + +THIS MODULE WAS AUTO-GENERATED BY TRANSPILING THE API WRAPPER TOOL JSON DEFINITIONS +IN THE ../wrapper_tools DIRECTORY INTO PYTHON CODE. ANY CHANGES TO THIS MODULE WILL +BE OVERWRITTEN BY THE TRANSPILER. +""" + +import asyncio +from typing import Annotated, Any + +import httpx +from arcade_tdk import ToolContext, tool +from arcade_tdk.auth import OAuth2 + +# Retry configuration +INITIAL_RETRY_DELAY = 0.5 # seconds + +HTTP_CLIENT = httpx.AsyncClient( + timeout=httpx.Timeout(60.0, connect=10.0), + limits=httpx.Limits(max_keepalive_connections=20, max_connections=100), + transport=httpx.AsyncHTTPTransport(retries=3), + http2=True, + follow_redirects=True, +) + + +def remove_none_values(data: dict[str, Any]) -> dict[str, Any]: + return {k: v for k, v in data.items() if v is not None} + + +async def make_request( + url: str, + method: str, + params: dict[str, Any] | None = None, + headers: dict[str, Any] | None = None, + data: dict[str, Any] | None = None, + max_retries: int = 3, +) -> httpx.Response: + """Make an HTTP request with retry logic for 5xx server errors.""" + for attempt in range(max_retries): + try: + response = await HTTP_CLIENT.request( + url=url, + method=method, + params=params, + headers=headers, + data=data, + ) + response.raise_for_status() + except httpx.HTTPStatusError as e: + # Only retry on 5xx server errors + if e.response.status_code >= 500 and attempt < max_retries - 1: + # Exponential backoff: 0.5s, 1s, 2s + await asyncio.sleep(INITIAL_RETRY_DELAY * (2**attempt)) + continue + # Re-raise for 4xx errors or if max retries reached + raise + except httpx.RequestError: + # Don't retry request errors (network issues are handled by transport) + raise + else: + return response + + # This should never be reached, but satisfies type checker + raise httpx.RequestError("Max retries exceeded") # noqa: TRY003 + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.settings", "accounting.settings.read"] + ) +) +async def retrieve_full_chart_of_accounts( + context: ToolContext, + xero_tenant_identifier: Annotated[ + str, "Unique identifier for the Xero tenant to retrieve its accounts." + ], + filter_by_attribute: Annotated[ + str | None, "Filter accounts by specific attributes or conditions using string syntax." + ] = None, + order_by_element: Annotated[ + str | None, + "Specify a field to order the returned accounts (e.g., 'Name' or 'AccountType').", + ] = None, + only_modified_since_timestamp: Annotated[ + str | None, + "Specify a timestamp to return only records created or modified since that time. The timestamp should be in ISO 8601 format.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getAccounts'."]: + """Retrieves the full chart of accounts from Xero. + + Use this tool to obtain the complete chart of accounts from Xero, which includes all accounting categories and their details. It is useful for analyzing financial structures within the Xero platform.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Accounts", + method="GET", + params=remove_none_values({"where": filter_by_attribute, "order": order_by_element}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "If-Modified-Since": only_modified_since_timestamp, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.settings", "accounting.settings.read"] + ) +) +async def retrieve_account_details( + context: ToolContext, + account_id: Annotated[ + str, "Unique identifier for the Account object to retrieve specific account details." + ], + xero_tenant_identifier: Annotated[ + str, "Xero identifier for the tenant to retrieve the account details from." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getAccount'."]: + """Retrieve chart of accounts using a unique account ID. + + Use this tool to fetch details of a specific account from the chart of accounts by providing a unique account ID.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Accounts/{AccountID}".format(AccountID=account_id), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.settings"])) +async def delete_account( + context: ToolContext, + account_id: Annotated[str, "The unique identifier for the Account object to be deleted."], + xero_tenant_identifier: Annotated[ + str, "Xero identifier for the Tenant. Required to specify which tenant's account to delete." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'deleteAccount'."]: + """Delete a chart of accounts in Xero. + + Use this tool to delete a specified chart of accounts by providing the AccountID in Xero. This tool should be called when an account needs to be permanently removed.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Accounts/{AccountID}".format(AccountID=account_id), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_account_attachments( + context: ToolContext, + account_id: Annotated[ + str, "Unique identifier for the account object to retrieve attachments from." + ], + tenant_identifier: Annotated[ + str, "Xero identifier for the Tenant, used to specify which tenant's data to access." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getAccountAttachments'."]: + """Retrieve attachments for a specified account. + + This tool is used to get attachments associated with a specific account by providing the account's unique ID. Useful for accessing documents or files linked to financial accounts in the Xero platform.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Accounts/{AccountID}/Attachments".format( # noqa: UP032 + AccountID=account_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_account_attachment( + context: ToolContext, + account_unique_identifier: Annotated[ + str, "Unique identifier for the Account object to retrieve the attachment from." + ], + attachment_id: Annotated[ + str, + "Unique identifier for the attachment you want to retrieve from an account. This ID is necessary to specify the exact attachment you need.", # noqa: E501 + ], + xero_tenant_identifier: Annotated[ + str, + "Xero identifier for the Tenant. Required to specify which tenant's account attachment you want to retrieve.", # noqa: E501 + ], + mime_type_of_attachment: Annotated[ + str, "The MIME type of the attachment file, such as image/jpg or application/pdf." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getAccountAttachmentById'."]: + """Retrieve a specific account attachment by ID. + + Use this tool to retrieve an attachment from a specific account by providing the unique attachment ID. It is useful when you need to access detailed information or content of an attachment associated with a particular account in Xero.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Accounts/{AccountID}/Attachments/{AttachmentID}".format( # noqa: UP032 + AccountID=account_unique_identifier, AttachmentID=attachment_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "contentType": mime_type_of_attachment, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_account_attachment_by_filename( + context: ToolContext, + account_id: Annotated[str, "Unique identifier for the Account object in Xero."], + attachment_file_name: Annotated[ + str, "The name of the attachment to retrieve for a specific account." + ], + tenant_identifier: Annotated[ + str, + "The unique Xero identifier for the Tenant. Required to access the specific tenant's attachments.", # noqa: E501 + ], + mime_type_of_attachment: Annotated[ + str, + "The MIME type of the attachment file to retrieve, such as image/jpg or application/pdf.", + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getAccountAttachmentByFileName'."]: + """Retrieve an attachment for a specific account by filename. + + This tool retrieves an attachment file from a specific account in Xero using the filename. It should be called when a user needs to access a specific account's attachment by providing the account ID and filename.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Accounts/{AccountID}/Attachments/{FileName}".format( # noqa: UP032 + AccountID=account_id, FileName=attachment_file_name + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "contentType": mime_type_of_attachment, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_batch_payments( + context: ToolContext, + tenant_identifier: Annotated[ + str, "Xero identifier for the Tenant required to access its specific batch payment data." + ], + filter_by_element: Annotated[ + str | None, "Apply a filter to the batch payments using any specified element." + ] = None, + order_by_element: Annotated[ + str | None, + "Specify the element to sort the batch payments by. The value should be a string representing the element.", # noqa: E501 + ] = None, + modified_since_timestamp: Annotated[ + str | None, + "Timestamp to filter records modified or created since then. Format: ISO 8601 date and time.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getBatchPayments'."]: + """Retrieve batch payments for invoices. + + Use this tool to retrieve information about one or many batch payments associated with invoices. Useful for accessing payment details and histories.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BatchPayments", + method="GET", + params=remove_none_values({"where": filter_by_element, "order": order_by_element}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "If-Modified-Since": modified_since_timestamp, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def get_batch_payment_details( + context: ToolContext, + batch_payment_id: Annotated[ + str, "Unique identifier for the batch payment to retrieve details." + ], + xero_tenant_id: Annotated[ + str, + "The unique Xero identifier for the tenant, necessary for accessing tenant-specific data.", + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getBatchPayment'."]: + """Retrieve details of a specific batch payment by ID. + + Use this tool to get information about a specific batch payment by providing its unique ID.""" + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BatchPayments/{BatchPaymentID}".format( # noqa: UP032 + BatchPaymentID=batch_payment_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_batch_payment_history( + context: ToolContext, + batch_payment_id: Annotated[ + str, "Unique identifier for the batch payment to retrieve its history." + ], + xero_tenant_id: Annotated[ + str, "The unique identifier for the Xero tenant. Required to access specific tenant data." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getBatchPaymentHistory'."]: + """Retrieve the history of a specific batch payment. + + Use this tool to access detailed history for a specific batch payment in Xero. Call this tool when needing to understand past actions, updates, or changes made to a batch payment.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BatchPayments/{BatchPaymentID}/History".format( # noqa: UP032 + BatchPaymentID=batch_payment_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.transactions"])) +async def create_batch_payment_history_record( + context: ToolContext, + batch_payment_id: Annotated[str, "Unique identifier for the specific batch payment in Xero."], + xero_tenant_identifier: Annotated[ + str, + "Xero identifier for Tenant. This is required to specify which tenant's batch payment history is being recorded.", # noqa: E501 + ], + idempotency_key: Annotated[ + str | None, "A unique string to prevent duplicate processing. Maximum 128 characters." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'createBatchPaymentHistoryRecord'."]: + """Creates a history record for a batch payment. + + This tool is used to create a historical record for a specified batch payment in Xero. Call this tool when you want to log information or updates about a batch payment's history.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BatchPayments/{BatchPaymentID}/History".format( # noqa: UP032 + BatchPaymentID=batch_payment_id + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Idempotency-Key": idempotency_key, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_bank_transactions( + context: ToolContext, + xero_tenant_id: Annotated[ + str, "Xero identifier for the Tenant, required to specify which account to access." + ], + filter_by_element: Annotated[ + str | None, + "Specify criteria to filter transactions by any element. Use valid filter expressions based on transaction fields.", # noqa: E501 + ] = None, + order_transactions_by: Annotated[ + str | None, + "Specify the element by which to order the transactions, such as date or amount.", + ] = None, + transaction_page_number: Annotated[ + int | None, "Specifies which page of up to 100 bank transactions to retrieve." + ] = None, + use_four_decimal_places: Annotated[ + int | None, "Indicate if unit amounts should use four decimal places (e.g., 4)." + ] = None, + records_per_page: Annotated[ + int | None, + "Specify the number of records to retrieve per page. This controls the pagination size.", + ] = None, + modified_since_timestamp: Annotated[ + str | None, "Return records created or modified since this UTC timestamp (ISO 8601 format)." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getBankTransactions'."]: + """Retrieve spent or received money transactions from Xero. + + Use this tool to get a list of transactions where money was spent or received. This is useful for financial tracking and reporting.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BankTransactions", + method="GET", + params=remove_none_values({ + "where": filter_by_element, + "order": order_transactions_by, + "page": transaction_page_number, + "unitdp": use_four_decimal_places, + "pageSize": records_per_page, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "If-Modified-Since": modified_since_timestamp, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_bank_transaction( + context: ToolContext, + bank_transaction_id: Annotated[ + str, "Unique identifier for a specific bank transaction in Xero." + ], + xero_tenant_id: Annotated[ + str, + "The Xero identifier for the tenant (organization). Required to access the specific tenant's data.", # noqa: E501 + ], + use_four_decimal_places: Annotated[ + int | None, "Option to use four decimal places for unit amounts. Specify '4' to enable." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getBankTransaction'."]: + """Retrieve bank transaction details by ID. + + Use this tool to get details of a specific spent or received bank transaction by providing its unique ID.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BankTransactions/{BankTransactionID}".format( # noqa: UP032 + BankTransactionID=bank_transaction_id + ), + method="GET", + params=remove_none_values({"unitdp": use_four_decimal_places}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_bank_transaction_attachments( + context: ToolContext, + bank_transaction_id: Annotated[ + str, + "Xero generated unique identifier for a bank transaction, used to retrieve corresponding attachments.", # noqa: E501 + ], + xero_tenant_id: Annotated[ + str, "The unique identifier for a Xero tenant, required to access specific tenant data." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getBankTransactionAttachments'."]: + """Retrieve attachments from a specific bank transaction. + + Use this tool to obtain any attachments linked to a specific bank transaction. It accesses the attachments related to a given transaction ID within the Xero platform.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BankTransactions/{BankTransactionID}/Attachments".format( # noqa: UP032 + BankTransactionID=bank_transaction_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_bank_transaction_attachment( + context: ToolContext, + bank_transaction_id: Annotated[str, "Xero generated unique identifier for a bank transaction."], + attachment_id: Annotated[str, "Unique identifier for the Attachment object."], + xero_tenant_identifier: Annotated[ + str, + "Xero unique identifier for the Tenant. This is required to specify which organization data is to be accessed.", # noqa: E501 + ], + attachment_mime_type: Annotated[ + str, + "The mime type of the attachment file to retrieve, such as image/jpeg or application/pdf.", + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'getBankTransactionAttachmentById'." +]: + """Retrieve a specific attachment from a bank transaction. + + Use this tool to obtain specific attachments from a bank transaction by providing the unique BankTransaction ID and Attachment ID.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BankTransactions/{BankTransactionID}/Attachments/{AttachmentID}".format( # noqa: UP032 + BankTransactionID=bank_transaction_id, AttachmentID=attachment_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "contentType": attachment_mime_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def get_bank_transaction_attachment( + context: ToolContext, + bank_transaction_id: Annotated[ + str, + "Xero generated unique identifier for a bank transaction. Required to retrieve the correct attachment.", # noqa: E501 + ], + attachment_filename: Annotated[ + str, "Name of the attachment to retrieve from the bank transaction." + ], + xero_tenant_identifier: Annotated[ + str, "The unique identifier for the Xero tenant associated with the bank transaction." + ], + attachment_mime_type: Annotated[ + str, + "The MIME type of the attachment file to retrieve, such as image/jpg or application/pdf.", + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'getBankTransactionAttachmentByFileName'." +]: + """Retrieve an attachment from a bank transaction by filename. + + Use this tool to get a specific attachment from a bank transaction using the filename. Ideal for cases where attachments need to be reviewed or downloaded based on their association with bank transactions.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BankTransactions/{BankTransactionID}/Attachments/{FileName}".format( # noqa: UP032 + BankTransactionID=bank_transaction_id, FileName=attachment_filename + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "contentType": attachment_mime_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def get_bank_transaction_history( + context: ToolContext, + bank_transaction_id: Annotated[ + str, + "The unique identifier for a bank transaction generated by Xero. Use this ID to retrieve specific transaction history.", # noqa: E501 + ], + tenant_identifier: Annotated[ + str, "Xero unique identifier for the tenant. Required to access tenant-specific data." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getBankTransactionsHistory'."]: + """Retrieve history of a specific bank transaction by ID. + + This tool fetches the historical details of a particular bank transaction using its unique ID. It should be called when users need to view past records or changes related to a specific transaction.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BankTransactions/{BankTransactionID}/History".format( # noqa: UP032 + BankTransactionID=bank_transaction_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.transactions"])) +async def create_bank_transaction_history( + context: ToolContext, + bank_transaction_id: Annotated[ + str, "Xero-generated unique identifier for the bank transaction to create a history record." + ], + tenant_id: Annotated[ + str, + "Xero identifier for the tenant. This is required to specify which Xero account the transaction history will be associated with.", # noqa: E501 + ], + idempotency_key: Annotated[ + str | None, "A unique key to prevent duplicate processing. Maximum 128 characters." + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'createBankTransactionHistoryRecord'." +]: + """Creates a record in the bank transaction history. + + Use this tool to create a history record for a specific bank transaction in Xero. It's useful for logging changes or updates to bank transactions.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BankTransactions/{BankTransactionID}/History".format( # noqa: UP032 + BankTransactionID=bank_transaction_id + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_id, + "Idempotency-Key": idempotency_key, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_bank_transfers( + context: ToolContext, + xero_tenant_identifier: Annotated[ + str, "A unique string identifier for the Xero tenant to retrieve bank transfers from." + ], + filter_bank_transfers: Annotated[ + str | None, + "String to filter bank transfer records by a specific element, such as status or date range.", # noqa: E501 + ] = None, + order_by_element: Annotated[ + str | None, + "Specify the field to order the bank transfer records by. Use the field names available in the Xero bank transfer dataset.", # noqa: E501 + ] = None, + modified_since_timestamp: Annotated[ + str | None, + "Filter records to only include those created or modified since this timestamp. Use ISO 8601 format (e.g., '2023-10-01T00:00:00Z').", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getBankTransfers'."]: + """Retrieve all bank transfers from Xero. + + Use this tool to access all bank transfer records from Xero. It helps in obtaining comprehensive transfer data for financial review or auditing purposes.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BankTransfers", + method="GET", + params=remove_none_values({"where": filter_bank_transfers, "order": order_by_element}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "If-Modified-Since": modified_since_timestamp, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_bank_transfer( + context: ToolContext, + bank_transfer_id: Annotated[ + str, "The unique identifier for a bank transfer generated by Xero." + ], + tenant_id: Annotated[ + str, + "Xero identifier for the tenant. This is required to specify which tenant's data to access.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getBankTransfer'."]: + """Retrieve details of a specific bank transfer using its ID. + + This tool retrieves information about a specific bank transfer by using its unique bank transfer ID. It should be called when you need detailed information about a particular bank transfer within the Xero service.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BankTransfers/{BankTransferID}".format( # noqa: UP032 + BankTransferID=bank_transfer_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_bank_transfer_attachments( + context: ToolContext, + bank_transfer_id: Annotated[ + str, + "Xero-generated unique identifier for a bank transfer. Required to retrieve associated attachments.", # noqa: E501 + ], + tenant_identifier: Annotated[ + str, + "The unique Xero identifier for your tenant. This ID specifies which tenant the bank transfer belongs to.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getBankTransferAttachments'."]: + """Retrieve attachments from a specific bank transfer in Xero. + + Use this tool to get a list of attachments related to a particular bank transfer in Xero by providing the BankTransferID. Ideal for when you need access to documents associated with bank transactions.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BankTransfers/{BankTransferID}/Attachments".format( # noqa: UP032 + BankTransferID=bank_transfer_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def fetch_bank_transfer_attachment( + context: ToolContext, + bank_transfer_unique_id: Annotated[ + str, + "Xero-generated unique identifier for a bank transfer. It is required to locate the specific transfer for the attachment.", # noqa: E501 + ], + attachment_id: Annotated[ + str, + "Unique identifier for the attachment object that you want to retrieve from a specific bank transfer.", # noqa: E501 + ], + tenant_identifier: Annotated[str, "The Xero identifier for the tenant you want to access."], + attachment_mime_type: Annotated[ + str, "The MIME type of the attachment to retrieve, e.g., image/jpg, application/pdf." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getBankTransferAttachmentById'."]: + """Fetch a specific bank transfer attachment by ID. + + Use this tool to retrieve a specific attachment related to a bank transfer using the unique attachment ID.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BankTransfers/{BankTransferID}/Attachments/{AttachmentID}".format( # noqa: UP032 + BankTransferID=bank_transfer_unique_id, AttachmentID=attachment_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "contentType": attachment_mime_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_bank_transfer_attachment( + context: ToolContext, + bank_transfer_id: Annotated[ + str, + "Xero-generated unique identifier for a bank transfer. Required to specify which bank transfer's attachment is being retrieved.", # noqa: E501 + ], + attachment_file_name: Annotated[ + str, "The name of the attachment file to retrieve from the bank transfer." + ], + xero_tenant_identifier: Annotated[ + str, "The unique identifier for the Xero tenant associated with the bank transfer." + ], + attachment_mime_type: Annotated[ + str, "The MIME type of the attachment file, such as 'image/jpg' or 'application/pdf'." + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'getBankTransferAttachmentByFileName'." +]: + """Retrieve a bank transfer attachment by file name. + + Use this tool to obtain a specific attachment related to a bank transfer by providing the file name.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BankTransfers/{BankTransferID}/Attachments/{FileName}".format( # noqa: UP032 + BankTransferID=bank_transfer_id, FileName=attachment_file_name + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "contentType": attachment_mime_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def get_bank_transfer_history( + context: ToolContext, + bank_transfer_id: Annotated[ + str, "Unique identifier for the Xero bank transfer needed to retrieve its history." + ], + tenant_identifier: Annotated[ + str, + "Xero identifier for the tenant. Required to specify which tenant's bank transfer history to retrieve.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getBankTransferHistory'."]: + """Retrieve specific bank transfer history by ID. + + This tool is used to get the history of a specific bank transfer using its unique ID. It should be called when detailed transaction records or changes related to a particular bank transfer are needed.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BankTransfers/{BankTransferID}/History".format( # noqa: UP032 + BankTransferID=bank_transfer_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.transactions"])) +async def create_bank_transfer_history( + context: ToolContext, + bank_transfer_id: Annotated[ + str, + "Xero generated unique identifier for the specific bank transfer to create a history record for.", # noqa: E501 + ], + xero_tenant_id: Annotated[ + str, + "The unique identifier for a Xero tenant. Required to specify which tenant's data to access.", # noqa: E501 + ], + idempotency_key: Annotated[ + str | None, + "A unique string to safely retry requests without risk of duplication, limited to 128 characters.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'createBankTransferHistoryRecord'."]: + """Create a history record for a bank transfer. + + This tool creates a history record for a specified bank transfer within the Xero service. It is useful for tracking changes and updates to bank transfers.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BankTransfers/{BankTransferID}/History".format( # noqa: UP032 + BankTransferID=bank_transfer_id + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Idempotency-Key": idempotency_key, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.settings", "accounting.settings.read"] + ) +) +async def get_branding_themes( + context: ToolContext, + xero_tenant_id: Annotated[ + str, "The unique identifier for the Xero tenant to retrieve branding themes." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getBrandingThemes'."]: + """Retrieve all branding themes from Xero. + + This tool calls the Xero API to fetch all available branding themes. It should be used when needing a comprehensive list of branding themes for the account.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BrandingThemes", + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.settings", "accounting.settings.read"] + ) +) +async def retrieve_branding_theme( + context: ToolContext, + branding_theme_id: Annotated[ + str, "Unique identifier for a branding theme to retrieve its details." + ], + tenant_identifier: Annotated[ + str, + "The Xero identifier for the Tenant. This is required to specify which tenant's branding theme to retrieve.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getBrandingTheme'."]: + """Retrieve details of a specific branding theme. + + This tool retrieves information about a specific branding theme by using its unique ID. It is useful for accessing and displaying branding theme details in accounting or financial software.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BrandingThemes/{BrandingThemeID}".format( # noqa: UP032 + BrandingThemeID=branding_theme_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["paymentservices"])) +async def get_payment_services_for_branding_theme( + context: ToolContext, + branding_theme_id: Annotated[ + str, "Unique identifier for a Branding Theme to retrieve associated payment services." + ], + xero_tenant_id: Annotated[ + str, + "Xero identifier for the Tenant. This unique ID is required to specify which tenant's data is being accessed.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getBrandingThemePaymentServices'."]: + """Retrieve payment services for a specific branding theme. + + This tool retrieves the payment services linked to a given branding theme by its ID. Call this tool when you need to access payment service information tied to particular branding configurations.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/BrandingThemes/{BrandingThemeID}/PaymentServices".format( # noqa: UP032 + BrandingThemeID=branding_theme_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.budgets.read"])) +async def retrieve_budgets( + context: ToolContext, + tenant_identifier: Annotated[ + str, + "The unique Xero identifier for the tenant. Required for accessing specific tenant data.", + ], + filter_by_budget_id: Annotated[ + str | None, "Filter to retrieve a specific budget by its BudgetID." + ] = None, + filter_start_date: Annotated[ + str | None, "The start date to filter budgets until. Expected format is YYYY-MM-DD." + ] = None, + filter_by_end_date: Annotated[ + str | None, "Specify the end date to filter the budgets. Use the format YYYY-MM-DD." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getBudgets'."]: + """Retrieve a list of budgets from Xero. + + Use this tool to obtain detailed budgeting information from the Xero platform, helping manage and analyze budget data.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Budgets", + method="GET", + params=remove_none_values({ + "IDs": filter_by_budget_id, + "DateTo": filter_start_date, + "DateFrom": filter_by_end_date, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.budgets.read"])) +async def retrieve_budget_details( + context: ToolContext, + budget_identifier: Annotated[ + str, + "Unique identifier for budgets. Required to retrieve specific budget details including budget lines.", # noqa: E501 + ], + tenant_identifier: Annotated[ + str, "Xero identifier for the Tenant to specify which tenant's budget to retrieve." + ], + filter_end_date: Annotated[ + str | None, "Specifies the end date to filter the budget data. Use the format YYYY-MM-DD." + ] = None, + filter_start_date: Annotated[ + str | None, + "The start date from which to filter the budget details. Format must be YYYY-MM-DD.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getBudget'."]: + """Retrieve detailed information about a budget including lines. + + Use this tool to get information about a specified budget by its ID, including all associated budget lines.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Budgets/{BudgetID}".format( # noqa: UP032 + BudgetID=budget_identifier + ), + method="GET", + params=remove_none_values({"DateTo": filter_end_date, "DateFrom": filter_start_date}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.contacts.read", "accounting.contacts"] + ) +) +async def fetch_all_xero_contacts( + context: ToolContext, + tenant_identifier: Annotated[str, "A unique string to identify the tenant in Xero."], + filter_by_element: Annotated[ + str | None, "Specify conditions to filter contacts by any element within their data fields." + ] = None, + sort_order: Annotated[ + str | None, + "Specifies the sorting order for contacts based on a specified element, such as name or date.", # noqa: E501 + ] = None, + contact_ids: Annotated[ + list[str] | None, + "Comma-separated list of ContactIDs to retrieve specific contacts. Use this to filter the contacts returned by their unique IDs in a single call.", # noqa: E501 + ] = None, + pagination_page_number: Annotated[ + int | None, + "The specific page number to retrieve when fetching contacts. Each page returns up to 100 contacts.", # noqa: E501 + ] = None, + search_term: Annotated[ + str | None, + "A case-insensitive search term for filtering contacts by Name, FirstName, LastName, ContactNumber, or EmailAddress.", # noqa: E501 + ] = None, + records_per_page: Annotated[ + int | None, "Number of contact records to retrieve per page." + ] = None, + modified_since_timestamp: Annotated[ + str | None, + "Retrieve only records created or modified after the specified timestamp. Use ISO 8601 format for the timestamp.", # noqa: E501 + ] = None, + include_archived_contacts: Annotated[ + bool | None, + "Set to true to include contacts with a status of ARCHIVED in the response. False will exclude them.", # noqa: E501 + ] = None, + retrieve_summary_only_contacts: Annotated[ + bool | None, + "Set to true to retrieve only lightweight contact fields, excluding computation-heavy data for faster API responses.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getContacts'."]: + """Retrieve all contacts from a Xero organization. + + Use this tool to obtain a list of all contacts within a specified Xero organization. It should be called when there's a need to access or manage contact information in Xero.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Contacts", + method="GET", + params=remove_none_values({ + "where": filter_by_element, + "order": sort_order, + "IDs": contact_ids, + "page": pagination_page_number, + "includeArchived": include_archived_contacts, + "summaryOnly": retrieve_summary_only_contacts, + "searchTerm": search_term, + "pageSize": records_per_page, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "If-Modified-Since": modified_since_timestamp, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.contacts.read", "accounting.contacts"] + ) +) +async def get_xero_contact_by_number( + context: ToolContext, + contact_number: Annotated[ + str, "The unique contact number to identify a Xero contact; max length 50 characters." + ], + xero_tenant_identifier: Annotated[ + str, + "Xero identifier for the tenant. It is required to specify which organization's data to retrieve.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getContactByContactNumber'."]: + """Retrieve a contact from Xero by contact number. + + This tool retrieves details of a specific contact in a Xero organization using their contact number. It should be called when you need to access contact information by specifying the unique contact number.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Contacts/{ContactNumber}".format( # noqa: UP032 + ContactNumber=contact_number + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.contacts.read", "accounting.contacts"] + ) +) +async def retrieve_xero_contact( + context: ToolContext, + contact_id: Annotated[ + str, + "Provide the unique identifier for the contact to retrieve their information from Xero.", + ], + xero_tenant_identifier: Annotated[ + str, "The unique identifier for the tenant in Xero, required to retrieve contact details." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getContact'."]: + """Retrieve specific contact information from Xero. + + Use this tool to retrieve details of a specific contact in a Xero organization by providing a unique contact ID.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Contacts/{ContactID}".format(ContactID=contact_id), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def get_contact_attachments( + context: ToolContext, + contact_id: Annotated[str, "Unique identifier for a contact in Xero."], + xero_tenant_identifier: Annotated[ + str, "The unique Xero tenant identifier for the organisation." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getContactAttachments'."]: + """Retrieve attachments for a Xero contact. + + This tool retrieves all attachments associated with a specific contact within a Xero organisation. Call this tool when you need to access files linked to a contact in Xero.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Contacts/{ContactID}/Attachments".format( # noqa: UP032 + ContactID=contact_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_contact_attachment( + context: ToolContext, + contact_id: Annotated[ + str, "Unique identifier for a Contact in Xero to retrieve a specific attachment." + ], + attachment_id: Annotated[ + str, "Unique identifier for the Attachment object from a contact in Xero." + ], + tenant_identifier: Annotated[ + str, + "The unique identifier for the tenant in Xero to access specific data connected to a tenant account.", # noqa: E501 + ], + attachment_mime_type: Annotated[ + str, "The MIME type of the attachment file (e.g., image/jpeg, application/pdf)." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getContactAttachmentById'."]: + """Retrieve a specific contact attachment by ID. + + Use this tool to get a specific attachment from a contact by providing the unique attachment ID. Useful for accessing detailed attachment data linked to a contact in Xero.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Contacts/{ContactID}/Attachments/{AttachmentID}".format( # noqa: UP032 + ContactID=contact_id, AttachmentID=attachment_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "contentType": attachment_mime_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def get_contact_attachment( + context: ToolContext, + contact_identifier: Annotated[ + str, "Unique identifier for a contact in Xero to retrieve its specific attachment." + ], + attachment_file_name: Annotated[ + str, "Specify the name of the attachment to retrieve from the contact." + ], + xero_tenant_identifier: Annotated[ + str, + "Xero identifier for the Tenant. This is required to specify which tenant's data should be accessed.", # noqa: E501 + ], + attachment_mime_type: Annotated[ + str, "The MIME type of the attachment file, such as image/jpg or application/pdf." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getContactAttachmentByFileName'."]: + """Retrieve a contact's attachment by file name. + + Fetches a specific attachment associated with a contact using the file name in Xero. Use when you need to access a particular contact's attachment.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Contacts/{ContactID}/Attachments/{FileName}".format( # noqa: UP032 + ContactID=contact_identifier, FileName=attachment_file_name + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "contentType": attachment_mime_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.settings", "accounting.settings.read"] + ) +) +async def get_contact_cis_settings( + context: ToolContext, + contact_identifier: Annotated[str, "Unique identifier for a specific contact in Xero."], + tenant_identifier: Annotated[ + str, + "Xero identifier for the tenant. Required for accessing the correct organization within Xero.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getContactCISSettings'."]: + """Retrieve CIS settings for a Xero contact. + + Use this tool to obtain the CIS (Construction Industry Scheme) settings for a specific contact within a Xero organization. This is useful for businesses managing construction-related compliance and financial data.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Contacts/{ContactID}/CISSettings".format( # noqa: UP032 + ContactID=contact_identifier + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.contacts.read", "accounting.contacts"] + ) +) +async def get_contact_history( + context: ToolContext, + contact_id: Annotated[ + str, "Unique identifier for a contact to retrieve their history records." + ], + tenant_identifier: Annotated[ + str, "The unique Xero identifier for the tenant. Required to access specific tenant data." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getContactHistory'."]: + """Retrieve history records for a specific contact. + + Use this tool to obtain historical interaction records for a specific contact, which can provide insights into past communications and actions.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Contacts/{ContactID}/History".format( # noqa: UP032 + ContactID=contact_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.contacts"])) +async def add_contact_history_record( + context: ToolContext, + contact_unique_identifier: Annotated[ + str, + "Unique identifier for a Contact in Xero. Required to specify which contact the history record is for.", # noqa: E501 + ], + tenant_identifier: Annotated[ + str, + "Xero identifier for the Tenant. Required to specify which tenant's contact history to update.", # noqa: E501 + ], + idempotency_key: Annotated[ + str | None, + "A unique string up to 128 characters to safely retry requests without duplicate processing.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'createContactHistory'."]: + """Create a new history record for a contact in Xero. + + This tool allows you to add a new history entry for a specific contact in Xero. Use it to log interactions, notes, or any relevant information about the contact.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Contacts/{ContactID}/History".format( # noqa: UP032 + ContactID=contact_unique_identifier + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Idempotency-Key": idempotency_key, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.contacts.read", "accounting.contacts"] + ) +) +async def retrieve_contact_groups( + context: ToolContext, + tenant_identifier: Annotated[ + str, + "Xero identifier for the Tenant. Required to access the correct tenant's contact groups.", + ], + filter_criteria: Annotated[ + str | None, + "A string to filter contact groups based on specified criteria, using any element.", + ] = None, + order_by: Annotated[ + str | None, + "Specify the criteria to order the contact groups by. It can be any element to sort the results accordingly.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getContactGroups'."]: + """Retrieve contact group IDs and names from Xero. + + Use this tool to get a list of contact groups from Xero, including each group's ID and name. Ideal for identifying specific contact groups and managing contacts effectively.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/ContactGroups", + method="GET", + params=remove_none_values({"where": filter_criteria, "order": order_by}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.contacts.read", "accounting.contacts"] + ) +) +async def retrieve_contact_group( + context: ToolContext, + contact_group_id: Annotated[ + str, + "Unique identifier for a Contact Group in Xero. Use this to retrieve specific group details.", # noqa: E501 + ], + xero_tenant_id: Annotated[ + str, "Identifier for the Xero tenant needed to access specific tenant data." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getContactGroup'."]: + """Retrieve a specific contact group by ID. + + Call this tool to get details of a particular contact group using its unique ID on Xero.""" + response = await make_request( + url="https://api.xero.com/api.xro/2.0/ContactGroups/{ContactGroupID}".format( # noqa: UP032 + ContactGroupID=contact_group_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.contacts"])) +async def remove_contacts_from_group( + context: ToolContext, + contact_group_id: Annotated[ + str, "Unique identifier for the contact group to remove contacts from." + ], + xero_tenant_identifier: Annotated[ + str, "Xero identifier for the specific tenant required to access its data." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'deleteContactGroupContacts'."]: + """Removes all contacts from a specified contact group in Xero. + + Use this tool to delete all contacts from a specific contact group in Xero. Ideal for cleaning or reorganizing contact groups.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/ContactGroups/{ContactGroupID}/Contacts".format( # noqa: UP032 + ContactGroupID=contact_group_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.contacts"])) +async def remove_contact_from_group( + context: ToolContext, + contact_group_id: Annotated[ + str, + "Unique identifier for a contact group to specify which group the contact should be removed from.", # noqa: E501 + ], + contact_identifier: Annotated[ + str, "Unique identifier for a contact to be removed from the group." + ], + tenant_identifier: Annotated[ + str, + "Xero identifier for the tenant. Required for specifying the target tenant in requests.", + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'deleteContactGroupContact'."]: + """Delete a specific contact from a contact group. + + This tool removes a specified contact from a contact group using unique identifiers for both the contact and the group. It should be called when there is a need to manage and update contact groups by removing contacts.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/ContactGroups/{ContactGroupID}/Contacts/{ContactID}".format( # noqa: UP032 + ContactGroupID=contact_group_id, ContactID=contact_identifier + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def get_credit_notes( + context: ToolContext, + tenant_identifier: Annotated[ + str, + "The unique identifier for the Xero tenant. Required to specify which tenant's credit notes to retrieve.", # noqa: E501 + ], + filter_by_element: Annotated[ + str | None, "A string to filter credit notes by specific criteria using any element." + ] = None, + sort_credit_notes: Annotated[ + str | None, "Specifies the order to retrieve credit notes, e.g., by date or amount." + ] = None, + page_number: Annotated[ + int | None, + "The page number to retrieve. Each page returns up to 100 credit notes with line items.", + ] = None, + unit_decimal_places: Annotated[ + int | None, + "Specify the number of decimal places for unit amounts. For example, use 4 for four decimal places.", # noqa: E501 + ] = None, + number_of_records_per_page: Annotated[ + int | None, + "Defines the number of credit notes to retrieve per page from the Xero service. This helps control the size of each result set.", # noqa: E501 + ] = None, + modified_since_timestamp: Annotated[ + str | None, + "Only retrieve records created or modified after this timestamp (in ISO 8601 format).", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getCreditNotes'."]: + """Retrieve credit notes from the Xero service. + + Use this tool to obtain credit notes from Xero. Ideal for financial checks or reconciliations requiring credit note information.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/CreditNotes", + method="GET", + params=remove_none_values({ + "where": filter_by_element, + "order": sort_credit_notes, + "page": page_number, + "unitdp": unit_decimal_places, + "pageSize": number_of_records_per_page, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "If-Modified-Since": modified_since_timestamp, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_credit_note( + context: ToolContext, + credit_note_id: Annotated[ + str, "Unique identifier for the credit note to retrieve details from Xero." + ], + tenant_identifier: Annotated[ + str, + "The unique Xero identifier for the tenant associated with the credit note. It is required to specify which tenant's data to access.", # noqa: E501 + ], + use_four_decimal_places: Annotated[ + int | None, + "Specify if four decimal places should be used for unit amounts. Default is false.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getCreditNote'."]: + """Retrieve a credit note using its unique ID. + + Use this tool to get detailed information about a specific credit note by providing its unique ID. Ideal for obtaining precise credit note data from your Xero account.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/CreditNotes/{CreditNoteID}".format( # noqa: UP032 + CreditNoteID=credit_note_id + ), + method="GET", + params=remove_none_values({"unitdp": use_four_decimal_places}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def get_credit_note_attachments( + context: ToolContext, + credit_note_id: Annotated[ + str, "Unique identifier for a specific Credit Note in Xero to fetch attachments." + ], + tenant_identifier: Annotated[ + str, "Xero identifier for the tenant. Required to specify which tenant's data to access." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getCreditNoteAttachments'."]: + """Fetch attachments for a specific credit note from Xero. + + Use this tool to retrieve attachments associated with a specific credit note in Xero. Call this tool when you need details or files attached to a credit note.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/CreditNotes/{CreditNoteID}/Attachments".format( # noqa: UP032 + CreditNoteID=credit_note_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def get_credit_note_attachment( + context: ToolContext, + credit_note_id: Annotated[ + str, "Unique identifier for the credit note you want to retrieve an attachment from." + ], + attachment_id: Annotated[str, "Unique identifier for the attachment object to be retrieved."], + xero_tenant_identifier: Annotated[ + str, + "Xero identifier for the Tenant. It's required to specify which organization to access.", + ], + attachment_mime_type: Annotated[ + str, + "The MIME type of the attachment file to retrieve, such as image/jpg or application/pdf.", + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getCreditNoteAttachmentById'."]: + """Retrieve specific attachment from a credit note by ID. + + Use this tool to get an attachment from a credit note using the unique attachment ID.""" + response = await make_request( + url="https://api.xero.com/api.xro/2.0/CreditNotes/{CreditNoteID}/Attachments/{AttachmentID}".format( # noqa: UP032 + CreditNoteID=credit_note_id, AttachmentID=attachment_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "contentType": attachment_mime_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_credit_note_attachment( + context: ToolContext, + credit_note_id: Annotated[ + str, + "Unique identifier for a Credit Note. Use this ID to specify which credit note's attachment you want to retrieve.", # noqa: E501 + ], + attachment_file_name: Annotated[ + str, "The name of the attachment to be retrieved from the credit note (e.g., invoice.pdf)." + ], + xero_tenant_identifier: Annotated[ + str, + "Unique identifier for the Xero Tenant. Required to specify which tenant's data to access.", + ], + attachment_mime_type: Annotated[ + str, + "The MIME type of the attachment file to retrieve, such as 'image/jpg' or 'application/pdf'.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'getCreditNoteAttachmentByFileName'." +]: + """Retrieve a specific credit note attachment by file name. + + Use this tool to get a particular attachment from a specific credit note using the file name as a reference. It is helpful when you need to access or verify document details associated with a credit note.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/CreditNotes/{CreditNoteID}/Attachments/{FileName}".format( # noqa: UP032 + CreditNoteID=credit_note_id, FileName=attachment_file_name + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "contentType": attachment_mime_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def get_credit_note_pdf( + context: ToolContext, + credit_note_id: Annotated[str, "Unique identifier for the credit note to retrieve as a PDF."], + tenant_identifier: Annotated[ + str, "Xero identifier for the tenant to retrieve the specific credit note PDF." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getCreditNoteAsPdf'."]: + """Retrieve a credit note as a PDF file. + + Use this tool to fetch a specific credit note in PDF format using its ID.""" + response = await make_request( + url="https://api.xero.com/api.xro/2.0/CreditNotes/{CreditNoteID}/pdf".format( # noqa: UP032 + CreditNoteID=credit_note_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.transactions"])) +async def delete_credit_note_allocation( + context: ToolContext, + credit_note_unique_id: Annotated[ + str, "Unique identifier for a specific credit note to delete the allocation from." + ], + allocation_id: Annotated[ + str, "Unique identifier for the Allocation object needing deletion from a credit note." + ], + xero_tenant_id: Annotated[ + str, + "Unique Xero identifier for the Tenant. Required to specify which tenant's data is being accessed.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'deleteCreditNoteAllocations'."]: + """Remove an allocation from a specific credit note. + + This tool is used to delete an allocation from a specified credit note in the Xero system. It should be called when you need to remove a particular allocation detail from an existing credit note.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/CreditNotes/{CreditNoteID}/Allocations/{AllocationID}".format( # noqa: UP032 + CreditNoteID=credit_note_unique_id, AllocationID=allocation_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def get_credit_note_history( + context: ToolContext, + credit_note_id: Annotated[ + str, + "Unique identifier for a specific credit note. Required to retrieve its history records.", + ], + xero_tenant_id: Annotated[ + str, "The unique identifier for a Xero tenant. Required to access tenant-specific data." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getCreditNoteHistory'."]: + """Retrieve history records of a specific credit note. + + Use this tool to obtain detailed history records for a specific credit note by providing its ID. It helps in tracking changes and updates made to the credit note over time.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/CreditNotes/{CreditNoteID}/History".format( # noqa: UP032 + CreditNoteID=credit_note_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.transactions"])) +async def fetch_credit_note_history( + context: ToolContext, + credit_note_id: Annotated[ + str, "Unique identifier for the credit note whose history you want to retrieve." + ], + xero_tenant_id: Annotated[ + str, + "Xero identifier for the tenant. Required to specify which tenant's credit note history to retrieve.", # noqa: E501 + ], + idempotency_key: Annotated[ + str | None, + "String to safely retry requests without creating duplicates. Max 128 characters.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'createCreditNoteHistory'."]: + """Retrieve the history of a specific credit note. + + Use this tool to access and retrieve history records of a specific credit note by providing the CreditNoteID. This can be helpful for auditing or tracking changes made to a credit note over time.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/CreditNotes/{CreditNoteID}/History".format( # noqa: UP032 + CreditNoteID=credit_note_id + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Idempotency-Key": idempotency_key, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.settings", "accounting.settings.read"] + ) +) +async def get_xero_currencies( + context: ToolContext, + xero_tenant_identifier: Annotated[ + str, "Xero identifier for the tenant. Required to access organization-specific data." + ], + filter_criteria: Annotated[ + str | None, + "A string to filter the currencies based on specific criteria, such as currency code or name.", # noqa: E501 + ] = None, + order_by: Annotated[ + str | None, + "Specify the element to order the currencies by. Accepts a string corresponding to an element in the currency data.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getCurrencies'."]: + """Retrieve currencies from your Xero organization. + + Use this tool to get a list of all currencies associated with your Xero organization. It is useful for financial tasks, reporting, or currency conversion needs.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Currencies", + method="GET", + params=remove_none_values({"where": filter_criteria, "order": order_by}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_expense_claims( + context: ToolContext, + xero_tenant_identifier: Annotated[ + str, + "The unique identifier for the Xero tenant required to specify which organization's data to retrieve.", # noqa: E501 + ], + filter_by_element: Annotated[ + str | None, "Apply a filter based on specific elements in the expense claims." + ] = None, + order_by: Annotated[ + str | None, + "Specify the element by which to order the expense claims, such as date or amount.", + ] = None, + modified_since_timestamp: Annotated[ + str | None, + "Retrieve records created or modified since this timestamp in ISO 8601 format (e.g., '2023-10-04T00:00:00Z').", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getExpenseClaims'."]: + """Fetches expense claims from Xero. + + This tool should be called to retrieve detailed expense claims data from Xero. It can be used to review or analyze expenses.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/ExpenseClaims", + method="GET", + params=remove_none_values({"where": filter_by_element, "order": order_by}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "If-Modified-Since": modified_since_timestamp, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_expense_claim( + context: ToolContext, + expense_claim_id: Annotated[ + str, "Unique identifier for an expense claim to retrieve its details." + ], + xero_tenant_id: Annotated[ + str, + "Xero tenant identifier for the specific business or organization you are retrieving the expense claim from.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getExpenseClaim'."]: + """Retrieve details of a specific expense claim by ID. + + Use this tool to obtain details about a specific expense claim using its unique ID. This is useful for reviewing or verifying expense claims in your records.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/ExpenseClaims/{ExpenseClaimID}".format( # noqa: UP032 + ExpenseClaimID=expense_claim_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_expense_claim_history( + context: ToolContext, + expense_claim_id: Annotated[ + str, "Unique identifier for retrieving the specific expense claim history." + ], + xero_tenant_id: Annotated[ + str, + "Xero identifier for the tenant. This is required to specify which tenant's data to access.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getExpenseClaimHistory'."]: + """Retrieve the history of a specific expense claim. + + Use this tool to obtain history records for a specific expense claim using its ID.""" + response = await make_request( + url="https://api.xero.com/api.xro/2.0/ExpenseClaims/{ExpenseClaimID}/History".format( # noqa: UP032 + ExpenseClaimID=expense_claim_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.transactions"])) +async def add_expense_claim_history( + context: ToolContext, + expense_claim_id: Annotated[ + str, "Unique identifier for the specific expense claim to add a history record." + ], + xero_tenant_id: Annotated[ + str, + "The unique identifier for the Xero tenant. This is required to specify which tenant the expense claim history record is associated with.", # noqa: E501 + ], + idempotency_key: Annotated[ + str | None, + "A unique string (max 128 characters) to safely retry requests without duplicating processing.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'createExpenseClaimHistory'."]: + """Creates a history record for an expense claim. + + Use this tool to add a record to the history of a specific expense claim. It should be called when there is a need to document a change or update related to an expense claim in the system.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/ExpenseClaims/{ExpenseClaimID}/History".format( # noqa: UP032 + ExpenseClaimID=expense_claim_id + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Idempotency-Key": idempotency_key, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_invoices( + context: ToolContext, + xero_tenant_id: Annotated[ + str, "Unique identifier for a Xero tenant to retrieve invoices specific to that tenant." + ], + filter_by_condition: Annotated[ + str | None, + "Filter using a condition expression defined on any element, similar to a SQL WHERE clause.", # noqa: E501 + ] = None, + order_by: Annotated[ + str | None, "Specify the criteria for ordering invoices, such as date or amount." + ] = None, + invoice_ids: Annotated[ + list[str] | None, "Comma-separated list of Invoice IDs to filter results." + ] = None, + filter_by_invoice_numbers: Annotated[ + list[str] | None, + "Filter results by providing a list of invoice numbers. Each item should be a string representing one invoice number.", # noqa: E501 + ] = None, + filter_contact_ids: Annotated[ + list[str] | None, "Comma-separated list of ContactIDs to filter invoices." + ] = None, + filter_by_statuses: Annotated[ + list[str] | None, + "Filter invoices by a list of statuses for improved response times. Use explicit parameters instead of OR conditions.", # noqa: E501 + ] = None, + page_number: Annotated[ + int | None, + "Specify the page number to retrieve. Up to 100 invoices per page can be returned.", + ] = None, + unit_decimal_places: Annotated[ + int | None, + "Specify the number of decimal places for unit amounts, e.g., 4 for four decimal places.", + ] = None, + records_per_page: Annotated[ + int | None, "Specify the number of invoice records to retrieve per page." + ] = None, + search_term: Annotated[ + str | None, + "A case-insensitive search parameter for fields like InvoiceNumber and Reference.", + ] = None, + modified_since_timestamp: Annotated[ + str | None, + "Return only records created or modified since this timestamp. Use the format 'YYYY-MM-DDTHH:MM:SS'.", # noqa: E501 + ] = None, + include_archived_invoices: Annotated[ + bool | None, "Set to true to include invoices with a status of ARCHIVED in the response." + ] = None, + filter_by_created_by_my_app: Annotated[ + bool | None, "Set to true to retrieve only invoices created by your app." + ] = None, + retrieve_summary_only: Annotated[ + bool | None, + "Set to true to retrieve a smaller, lightweight version of the response for quicker API calls, excluding computation-heavy fields.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getInvoices'."]: + """Retrieve sales invoices or purchase bills from Xero. + + Use this tool to retrieve detailed information about sales invoices or purchase bills from Xero.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Invoices", + method="GET", + params=remove_none_values({ + "where": filter_by_condition, + "order": order_by, + "IDs": invoice_ids, + "InvoiceNumbers": filter_by_invoice_numbers, + "ContactIDs": filter_contact_ids, + "Statuses": filter_by_statuses, + "page": page_number, + "includeArchived": include_archived_invoices, + "createdByMyApp": filter_by_created_by_my_app, + "unitdp": unit_decimal_places, + "summaryOnly": retrieve_summary_only, + "pageSize": records_per_page, + "searchTerm": search_term, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "If-Modified-Since": modified_since_timestamp, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def get_invoice_details( + context: ToolContext, + invoice_identifier: Annotated[str, "Unique identifier for the invoice to be retrieved."], + xero_tenant_id: Annotated[ + str, "Xero identifier for the Tenant. Used to specify which tenant's invoice is retrieved." + ], + unit_decimal_places: Annotated[ + int | None, + "Specify the number of decimal places to use for unit amounts, e.g., 4 for four decimal places.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getInvoice'."]: + """Retrieve a specific invoice using its unique ID. + + Use this tool to get detailed information about a specific sales invoice or purchase bill by providing its unique invoice ID. This can be helpful when checking invoice details in the Xero accounting system.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Invoices/{InvoiceID}".format( # noqa: UP032 + InvoiceID=invoice_identifier + ), + method="GET", + params=remove_none_values({"unitdp": unit_decimal_places}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_invoice_pdf( + context: ToolContext, + invoice_id: Annotated[str, "Unique identifier for the invoice to retrieve as a PDF from Xero."], + tenant_identifier: Annotated[ + str, + "The unique Xero identifier for the tenant. This is required to specify the account from which to retrieve the invoice PDF.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getInvoiceAsPdf'."]: + """Retrieve an invoice or purchase bill as a PDF. + + This tool retrieves an invoice or purchase bill in PDF format using the invoice ID. It is useful when you need a downloadable version of an invoice from Xero.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Invoices/{InvoiceID}/pdf".format( # noqa: UP032 + InvoiceID=invoice_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_invoice_attachments( + context: ToolContext, + invoice_id: Annotated[str, "Unique identifier for the invoice to retrieve attachments from."], + tenant_identifier: Annotated[str, "Xero identifier for the Tenant that owns the invoice."], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getInvoiceAttachments'."]: + """Retrieve attachments for a specific invoice or bill. + + This tool is used to obtain attachments related to a particular invoice or purchase bill from Xero. Call this tool when you need to access documents or files attached to a specific invoice.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Invoices/{InvoiceID}/Attachments".format( # noqa: UP032 + InvoiceID=invoice_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_invoice_attachment_by_id( + context: ToolContext, + invoice_id: Annotated[ + str, "The unique identifier for the invoice to retrieve the attachment from." + ], + attachment_id: Annotated[str, "Unique identifier for the attachment object in Xero."], + tenant_identifier: Annotated[ + str, + "Xero identifier for the tenant. Required to specify the tenant from which the attachment is being retrieved.", # noqa: E501 + ], + attachment_mime_type: Annotated[ + str, "The MIME type of the attachment file, e.g., image/jpg or application/pdf." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getInvoiceAttachmentById'."]: + """Retrieve a specific invoice attachment by ID. + + Use this tool to obtain a specific attachment from an invoice or purchase bill using its unique attachment ID in Xero. Call this tool when you need to access or review an attachment related to an invoice.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Invoices/{InvoiceID}/Attachments/{AttachmentID}".format( # noqa: UP032 + InvoiceID=invoice_id, AttachmentID=attachment_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "contentType": attachment_mime_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def get_invoice_attachment( + context: ToolContext, + invoice_id: Annotated[ + str, "Unique identifier for the invoice from which to retrieve the attachment." + ], + attachment_file_name: Annotated[ + str, + "Specify the exact name of the attachment to retrieve from the invoice or purchase bill.", + ], + tenant_identifier: Annotated[ + str, "Xero identifier for the Tenant to specify which organization's data to access." + ], + attachment_mime_type: Annotated[ + str, + "The MIME type of the attachment file being retrieved, such as image/jpg or application/pdf.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getInvoiceAttachmentByFileName'."]: + """Retrieve an attachment from an invoice by filename. + + Use this tool to obtain a specific attachment from an invoice or purchase bill by specifying the filename.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Invoices/{InvoiceID}/Attachments/{FileName}".format( # noqa: UP032 + InvoiceID=invoice_id, FileName=attachment_file_name + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "contentType": attachment_mime_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_online_invoice_url( + context: ToolContext, + invoice_identifier: Annotated[ + str, "Unique identifier for the invoice to retrieve its online URL." + ], + xero_tenant_id: Annotated[ + str, "Xero tenant identifier needed to retrieve the correct online invoice." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getOnlineInvoice'."]: + """Retrieve a URL for viewing an online invoice. + + Use this tool to obtain a direct URL for accessing a specific online invoice based on its InvoiceID. The tool helps retrieve online invoice links for quick viewing and sharing.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Invoices/{InvoiceID}/OnlineInvoice".format( # noqa: UP032 + InvoiceID=invoice_identifier + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_invoice_history( + context: ToolContext, + invoice_id: Annotated[str, "Unique identifier for the invoice to retrieve its history."], + tenant_identifier: Annotated[ + str, + "Xero identifier for the tenant. This is required to specify which tenant's data to access.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getInvoiceHistory'."]: + """Retrieve history of a specific invoice. + + Retrieves history records for a specific invoice using its Invoice ID. This tool is useful for tracking changes and updates made to an invoice over time.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Invoices/{InvoiceID}/History".format( # noqa: UP032 + InvoiceID=invoice_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.transactions"])) +async def create_invoice_history( + context: ToolContext, + invoice_id: Annotated[ + str, + "Unique identifier for the invoice. This is required to create a history record for the specified invoice in Xero.", # noqa: E501 + ], + tenant_identifier: Annotated[ + str, + "Xero identifier for the Tenant. Required for specifying which tenant the invoice history belongs to.", # noqa: E501 + ], + idempotency_key: Annotated[ + str | None, + "A string up to 128 characters to safely retry requests without duplicate processing.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'createInvoiceHistory'."]: + """Create a history record for a specific invoice. + + Use this tool to log a history record for a particular invoice in Xero. Ideal for tracking changes or adding comments to an invoice's history.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Invoices/{InvoiceID}/History".format( # noqa: UP032 + InvoiceID=invoice_id + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Idempotency-Key": idempotency_key, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.settings", "accounting.settings.read"] + ) +) +async def get_invoice_reminder_settings( + context: ToolContext, + xero_tenant_id: Annotated[ + str, + "The unique identifier for the Xero tenant. This is required to access specific tenant data.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getInvoiceReminders'."]: + """Retrieve invoice reminder settings from Xero. + + This tool retrieves the current settings for invoice reminders from Xero. It should be called when you need to check or manage how invoice reminders are configured.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/InvoiceReminders/Settings", + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.settings", "accounting.settings.read"] + ) +) +async def get_items( + context: ToolContext, + xero_tenant_id: Annotated[ + str, + "The unique identifier for a Xero tenant. Required to specify which tenant's data to retrieve.", # noqa: E501 + ], + filter_criteria: Annotated[ + str | None, + "Filter items by specific criteria using any element such as field names or conditions.", + ] = None, + order_by_element: Annotated[ + str | None, "Specify the sorting order of items by any element, such as name or price." + ] = None, + unit_decimal_places: Annotated[ + int | None, + "Defines the number of decimal places for unit amounts, e.g., 4 for four decimal places.", + ] = None, + modified_since_timestamp: Annotated[ + str | None, + "Fetch records created or modified since the provided timestamp (e.g., '2023-01-01T00:00:00Z').", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getItems'."]: + """Retrieve items from Xero. + + This tool fetches a list of items from the Xero service, typically used for inventory or sales purposes.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Items", + method="GET", + params=remove_none_values({ + "where": filter_criteria, + "order": order_by_element, + "unitdp": unit_decimal_places, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "If-Modified-Since": modified_since_timestamp, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.settings", "accounting.settings.read"] + ) +) +async def retrieve_xero_item( + context: ToolContext, + item_identifier: Annotated[ + str, + "The unique identifier for the item in Xero. This is required to retrieve specific item details.", # noqa: E501 + ], + xero_tenant_identifier: Annotated[ + str, + "Xero identifier for the Tenant. This is required to specify which tenant's data should be accessed.", # noqa: E501 + ], + use_unit_decimal_places: Annotated[ + int | None, + "Specify the number of unit decimal places to use, e.g., 4 for four decimal places in unit amounts.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getItem'."]: + """Retrieve a specific item from Xero using its ID. + + Call this tool when you need to fetch details about a particular item from Xero by providing its unique item ID.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Items/{ItemID}".format(ItemID=item_identifier), # noqa: UP032 + method="GET", + params=remove_none_values({"unitdp": use_unit_decimal_places}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.settings"])) +async def delete_inventory_item( + context: ToolContext, + item_id: Annotated[str, "Unique identifier for the item to be deleted."], + tenant_identifier: Annotated[ + str, "The unique identifier for the Xero tenant to specify which tenant's data to access." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'deleteItem'."]: + """Delete a specific item from inventory. + + Use this tool to remove an item from the inventory based on its ItemID. Call this tool to manage inventory by deleting items that are no longer needed or available.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Items/{ItemID}".format(ItemID=item_id), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.settings", "accounting.settings.read"] + ) +) +async def get_item_history( + context: ToolContext, + item_id: Annotated[ + str, "Unique identifier for the item whose history you want to retrieve in Xero." + ], + xero_tenant_id: Annotated[ + str, "Provide the unique Xero identifier associated with the Tenant to access its data." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getItemHistory'."]: + """Retrieve history for a specific item from Xero. + + This tool retrieves the historical details of a specific item using its ItemID. Use it to access the change history or modifications made to an item within the Xero platform.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Items/{ItemID}/History".format(ItemID=item_id), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.settings"])) +async def create_item_history( + context: ToolContext, + item_id: Annotated[ + str, "Unique identifier for the item to create a history record for in Xero." + ], + tenant_identifier: Annotated[ + str, + "Xero identifier for the tenant, required to specify which tenant's item history is being updated.", # noqa: E501 + ], + idempotency_key: Annotated[ + str | None, + "A unique key to ensure request retrying without duplication, max 128 characters.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'createItemHistory'."]: + """Creates a history record for a specific item in Xero. + + This tool is used to create a history record for a specific item in Xero, allowing users to keep track of changes or updates made to an item.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Items/{ItemID}/History".format(ItemID=item_id), # noqa: UP032 + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Idempotency-Key": idempotency_key, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.journals.read"])) +async def get_financial_journals( + context: ToolContext, + tenant_identifier: Annotated[ + str, + "The unique Xero identifier for the tenant. Required to specify which tenant's journals are retrieved.", # noqa: E501 + ], + journal_number_offset: Annotated[ + int | None, + "Specify the journal number offset. Journals with a number greater than this will be returned.", # noqa: E501 + ] = None, + modified_since_timestamp: Annotated[ + str | None, + "Return records created or modified since this timestamp. Use a string format like 'YYYY-MM-DDTHH:MM:SSZ'.", # noqa: E501 + ] = None, + retrieve_cash_basis_journals: Annotated[ + bool | None, + "Set to true to retrieve journals on a cash basis. Defaults to false for accrual basis.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getJournals'."]: + """Retrieve financial journal entries from Xero. + + Use this tool to access financial journal entries recorded in Xero. It should be called when detailed accounting journal information is needed for financial analysis or record-keeping.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Journals", + method="GET", + params=remove_none_values({ + "offset": journal_number_offset, + "paymentsOnly": retrieve_cash_basis_journals, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "If-Modified-Since": modified_since_timestamp, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.journals.read"])) +async def retrieve_specific_journal( + context: ToolContext, + journal_id: Annotated[str, "Unique identifier for the journal to be retrieved."], + xero_tenant_identifier: Annotated[ + str, + "A unique identifier for the Xero tenant. Required to specify which tenant's journal should be accessed.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getJournal'."]: + """Retrieve a specific journal using its unique ID. + + Call this tool to get detailed information about a particular journal by specifying its unique identifier. Useful for accessing specific journal entries in the Xero system.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Journals/{JournalID}".format(JournalID=journal_id), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.journals.read"])) +async def retrieve_journal_by_number( + context: ToolContext, + journal_number: Annotated[int, "The unique number identifying the journal entry to retrieve."], + tenant_identifier: Annotated[ + str, + "The unique identifier for a Xero tenant to specify the context for the journal retrieval.", + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getJournalByNumber'."]: + """Retrieve a specific journal by its unique number. + + Use this tool to obtain detailed information about a particular journal entry using its unique journal number.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Journals/{JournalNumber}".format( # noqa: UP032 + JournalNumber=journal_number + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_linked_transactions( + context: ToolContext, + tenant_identifier: Annotated[ + str, + "The Xero identifier for a specific tenant. Required for identifying the tenant whose linked transactions are being retrieved.", # noqa: E501 + ], + page_number: Annotated[ + int | None, "Specify the page number to retrieve in paginated results, starting from 1." + ] = None, + linked_transaction_id: Annotated[ + str | None, + "The Xero identifier for a Linked Transaction to retrieve specific billable expenses.", + ] = None, + source_transaction_id: Annotated[ + str | None, + "Filter by SourceTransactionID to get linked transactions from a specific ACCPAY invoice.", + ] = None, + filter_by_contact_id: Annotated[ + str | None, + "Filter results by the customer's ContactID to get linked transactions for a specific customer.", # noqa: E501 + ] = None, + filter_by_status: Annotated[ + str | None, + "Filter linked transactions by status when combined with ContactID. Retrieves transactions associated with a customer based on this status.", # noqa: E501 + ] = None, + filter_by_target_transaction_id: Annotated[ + str | None, + "Filter linked transactions by TargetTransactionID to get those allocated to a specific ACCREC invoice.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getLinkedTransactions'."]: + """Retrieve linked transactions from Xero. + + Use this tool to get linked transactions, such as billable expenses, from the Xero platform. Call it when you need details about expenses that are linked or billable in Xero.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/LinkedTransactions", + method="GET", + params=remove_none_values({ + "page": page_number, + "LinkedTransactionID": linked_transaction_id, + "SourceTransactionID": source_transaction_id, + "ContactID": filter_by_contact_id, + "Status": filter_by_status, + "TargetTransactionID": filter_by_target_transaction_id, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def get_linked_transaction( + context: ToolContext, + linked_transaction_id: Annotated[ + str, "Unique identifier for the linked transaction to be retrieved." + ], + tenant_id: Annotated[str, "Xero tenant identifier for accessing the correct organization."], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getLinkedTransaction'."]: + """Retrieve specific linked transaction details by ID. + + Use this tool to get detailed information about a specific linked transaction, such as billable expenses, using a unique transaction ID.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/LinkedTransactions/{LinkedTransactionID}".format( # noqa: UP032 + LinkedTransactionID=linked_transaction_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.transactions"])) +async def delete_linked_transaction( + context: ToolContext, + linked_transaction_id: Annotated[ + str, "Unique identifier for the linked transaction to be deleted." + ], + xero_tenant_identifier: Annotated[ + str, + "Provide the unique Xero identifier for the tenant to specify the context of the deletion.", + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'deleteLinkedTransaction'."]: + """Delete a specific linked transaction. + + Use this tool to delete a specified linked transaction (billable expense) by providing the LinkedTransactionID. It should be called when there's a need to remove an existing linked expense from Xero.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/LinkedTransactions/{LinkedTransactionID}".format( # noqa: UP032 + LinkedTransactionID=linked_transaction_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_manual_journals( + context: ToolContext, + tenant_identifier: Annotated[ + str, "The unique Xero identifier for the Tenant to retrieve manual journals from." + ], + filter_criteria: Annotated[ + str | None, "Filter manual journals based on specified criteria, such as date or amount." + ] = None, + order_by_element: Annotated[ + str | None, + "Specify the element to order the results by. Use field names like date, amount, etc.", + ] = None, + page_number: Annotated[ + int | None, + "The page number to retrieve, e.g., page=1. Returns up to 100 manual journals per call.", + ] = None, + records_per_page: Annotated[ + int | None, "Specify the number of manual journal records to retrieve per page." + ] = None, + modified_since_timestamp: Annotated[ + str | None, "Retrieve records created or modified since this timestamp (ISO 8601 format)." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getManualJournals'."]: + """Retrieve manual journals from Xero. + + Use this tool to get a list of manual journals from Xero, typically when needing insights into financial entries or audits.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/ManualJournals", + method="GET", + params=remove_none_values({ + "where": filter_criteria, + "order": order_by_element, + "page": page_number, + "pageSize": records_per_page, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "If-Modified-Since": modified_since_timestamp, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_manual_journal( + context: ToolContext, + manual_journal_id: Annotated[ + str, "Unique identifier for the manual journal you want to retrieve." + ], + xero_tenant_id: Annotated[ + str, "The unique identifier for a Xero tenant. Required to access tenant-specific data." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getManualJournal'."]: + """Retrieve details of a specific manual journal. + + Use this tool to obtain information about a particular manual journal by its ID. Ideal for users needing specific journal entry details from Xero.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/ManualJournals/{ManualJournalID}".format( # noqa: UP032 + ManualJournalID=manual_journal_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_journal_attachments( + context: ToolContext, + manual_journal_id: Annotated[ + str, "The unique identifier for a specific manual journal to retrieve its attachments." + ], + tenant_id: Annotated[ + str, "The unique Xero identifier for the tenant to access the manual journal attachments." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getManualJournalAttachments'."]: + """Retrieve attachments for a specific manual journal. + + Use this tool to retrieve attachments associated with a given manual journal in Xero. Ideal for accessing or reviewing documents linked to journal entries.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/ManualJournals/{ManualJournalID}/Attachments".format( # noqa: UP032 + ManualJournalID=manual_journal_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_journal_attachment( + context: ToolContext, + manual_journal_id: Annotated[ + str, "Unique identifier for the manual journal from which to retrieve the attachment." + ], + attachment_id: Annotated[ + str, + "Provide the unique identifier for the attachment object to retrieve it from a manual journal.", # noqa: E501 + ], + xero_tenant_id: Annotated[ + str, + "The unique Xero identifier for the tenant. Required to specify which tenant's data to access.", # noqa: E501 + ], + attachment_mime_type: Annotated[ + str, + "Specify the mime type of the attachment (e.g., image/jpg, application/pdf) to retrieve.", + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getManualJournalAttachmentById'."]: + """Retrieve a specific attachment from a manual journal using its ID. + + Use this tool to obtain a particular attachment linked to a specific manual journal by providing the unique attachment ID. Ideal for accessing relevant documents or files associated with journal entries.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/ManualJournals/{ManualJournalID}/Attachments/{AttachmentID}".format( # noqa: UP032 + ManualJournalID=manual_journal_id, AttachmentID=attachment_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "contentType": attachment_mime_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def get_journal_attachment_by_filename( + context: ToolContext, + manual_journal_id: Annotated[ + str, + "Unique identifier for the manual journal. Required to retrieve the specific attachment.", + ], + attachment_file_name: Annotated[ + str, "The name of the attachment file to retrieve from the manual journal." + ], + xero_tenant_identifier: Annotated[ + str, + "The unique identifier for the Xero tenant, used to specify the particular organization's data to access.", # noqa: E501 + ], + attachment_file_mime_type: Annotated[ + str, "The MIME type of the attachment file, such as image/jpeg or application/pdf." + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'getManualJournalAttachmentByFileName'." +]: + """Retrieve a manual journal attachment by file name. + + Use this tool to get a specific attachment from a manual journal using its file name. It requires the manual journal ID and the file name to retrieve the attachment data.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/ManualJournals/{ManualJournalID}/Attachments/{FileName}".format( # noqa: UP032 + ManualJournalID=manual_journal_id, FileName=attachment_file_name + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "contentType": attachment_file_mime_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def get_manual_journal_history( + context: ToolContext, + manual_journal_id: Annotated[ + str, + "Unique identifier for the manual journal. Used to retrieve its historical details from Xero.", # noqa: E501 + ], + xero_tenant_id: Annotated[ + str, + "Xero identifier for a specific tenant. This is required to identify which tenant's data to retrieve.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getManualJournalsHistory'."]: + """Retrieve history for a specific manual journal. + + This tool fetches the historical details related to a specific manual journal by its ID from Xero, providing insights into past changes and actions.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/ManualJournals/{ManualJournalID}/History".format( # noqa: UP032 + ManualJournalID=manual_journal_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.transactions"])) +async def create_journal_history_record( + context: ToolContext, + manual_journal_id: Annotated[str, "Unique identifier for a specific manual journal in Xero."], + tenant_identifier: Annotated[ + str, + "Xero identifier for the tenant is required to specify which tenant's manual journal is being updated.", # noqa: E501 + ], + idempotency_key: Annotated[ + str | None, + "A unique string, up to 128 characters, to safely retry requests without duplicate processing.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'createManualJournalHistoryRecord'." +]: + """Creates a history record for a specific manual journal. + + Use this tool to log a new history entry for a specific manual journal in Xero.""" + response = await make_request( + url="https://api.xero.com/api.xro/2.0/ManualJournals/{ManualJournalID}/History".format( # noqa: UP032 + ManualJournalID=manual_journal_id + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Idempotency-Key": idempotency_key, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.settings", "accounting.settings.read"] + ) +) +async def get_xero_organisation_details( + context: ToolContext, + xero_tenant_id: Annotated[ + str, + "The unique identifier for the Xero tenant. This ID is required to specify which organisation's details to retrieve.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getOrganisations'."]: + """Retrieves Xero organisation details. + + Use this tool to obtain detailed information about organisations in Xero. Ideal for accessing organisation data when required.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Organisation", + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.settings", "accounting.settings.read"] + ) +) +async def retrieve_xero_organisation_actions( + context: ToolContext, + xero_tenant_id: Annotated[ + str, "Xero identifier for the tenant to specify which organisation's actions to retrieve." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getOrganisationActions'."]: + """Retrieve key actions allowed in Xero organisation. + + Use this tool to get a list of the key actions your application is allowed to perform within a connected Xero organisation. This helps in understanding the permissions available.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Organisation/Actions", + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.settings", "accounting.settings.read"] + ) +) +async def get_cis_settings( + context: ToolContext, + organisation_id: Annotated[ + str, "The unique Xero identifier for the organisation to retrieve CIS settings for." + ], + xero_tenant_identifier: Annotated[ + str, + "Xero identifier for the Tenant. Required to specify which tenant's CIS settings to retrieve.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getOrganisationCISSettings'."]: + """Retrieve CIS settings for a Xero organisation. + + Use this tool to get the Construction Industry Scheme (CIS) settings for a specific organisation in Xero. Useful for managing or reviewing CIS compliance within the organisation.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Organisation/{OrganisationID}/CISSettings".format( # noqa: UP032 + OrganisationID=organisation_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_overpayments( + context: ToolContext, + tenant_identifier: Annotated[ + str, "The unique identifier for the Xero tenant to retrieve overpayments for." + ], + filter_criteria: Annotated[ + str | None, + 'Filter overpayments by a specific element or condition. Use syntax like "Property=value" for filtering.', # noqa: E501 + ] = None, + order_by_element: Annotated[ + str | None, + "Specify the element by which to order the retrieved overpayments. Accepts any valid field.", # noqa: E501 + ] = None, + page_number: Annotated[ + int | None, + "The page number for retrieving overpayments. Up to 100 overpayments will be returned per page.", # noqa: E501 + ] = None, + unit_decimal_places: Annotated[ + int | None, + "The number of decimal places to use for unit amounts. Accepts up to four decimals.", + ] = None, + records_per_page: Annotated[ + int | None, + "Specify the number of records to retrieve per page. Determines the page size for the results.", # noqa: E501 + ] = None, + records_modified_since: Annotated[ + str | None, + "Return records created or modified after the specified timestamp in ISO 8601 format.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getOverpayments'."]: + """Retrieve overpayments from the accounting system. + + Use this tool to access and retrieve a list of overpayments recorded in the Xero accounting system. This is useful for financial analysis and reconciliation.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Overpayments", + method="GET", + params=remove_none_values({ + "where": filter_criteria, + "order": order_by_element, + "page": page_number, + "unitdp": unit_decimal_places, + "pageSize": records_per_page, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "If-Modified-Since": records_modified_since, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_specific_overpayment( + context: ToolContext, + overpayment_id: Annotated[ + str, + "Unique identifier for the overpayment to be retrieved. This ID is required to fetch the specific details of the overpayment from Xero.", # noqa: E501 + ], + xero_tenant_identifier: Annotated[ + str, + "The unique identifier for the Xero tenant. Required to specify which organization's data to access.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getOverpayment'."]: + """Retrieve details of a specific overpayment by ID. + + Use this tool to obtain information about a specific overpayment using its unique identifier. Ideal for accessing precise overpayment records within Xero.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Overpayments/{OverpaymentID}".format( # noqa: UP032 + OverpaymentID=overpayment_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.transactions"])) +async def delete_overpayment_allocation( + context: ToolContext, + overpayment_id: Annotated[str, "Unique identifier for a specific overpayment in Xero."], + allocation_id: Annotated[str, "Unique identifier for the Allocation object to be deleted."], + xero_tenant_identifier: Annotated[ + str, "Xero identifier for the tenant. Required to specify which tenant's data to access." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'deleteOverpaymentAllocations'."]: + """Delete an allocation from an overpayment in Xero. + + This tool deletes a specific allocation from an overpayment in the Xero system. Use this when you need to remove allocations linked to overpayments.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Overpayments/{OverpaymentID}/Allocations/{AllocationID}".format( # noqa: UP032 + OverpaymentID=overpayment_id, AllocationID=allocation_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def get_overpayment_history( + context: ToolContext, + overpayment_id: Annotated[str, "Unique identifier for a specific overpayment in Xero."], + xero_tenant_id: Annotated[ + str, + "Unique identifier for the tenant in Xero. Used to specify which tenant's data to access.", + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getOverpaymentHistory'."]: + """Retrieve history records for a specific overpayment in Xero. + + Use this tool to obtain detailed history records related to a specific overpayment, identified by the Overpayment ID, within the Xero platform.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Overpayments/{OverpaymentID}/History".format( # noqa: UP032 + OverpaymentID=overpayment_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.transactions"])) +async def record_overpayment_history( + context: ToolContext, + overpayment_id: Annotated[ + str, "Unique identifier for an overpayment that you want to create a history record for." + ], + xero_tenant_id: Annotated[ + str, + "The unique identifier for the Xero tenant. Required to specify which tenant to apply the overpayment history record to.", # noqa: E501 + ], + idempotency_key: Annotated[ + str | None, + "A unique string (max 128 characters) for safely retrying requests without duplicate processing.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'createOverpaymentHistory'."]: + """Creates a history record for a specific overpayment. + + Use this tool to add a history record to an existing overpayment in Xero. It helps in tracking changes or notes related to overpayments.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Overpayments/{OverpaymentID}/History".format( # noqa: UP032 + OverpaymentID=overpayment_id + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Idempotency-Key": idempotency_key, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def fetch_invoice_payments( + context: ToolContext, + xero_tenant_identifier: Annotated[ + str, + "Xero identifier for the Tenant. This is required to access the specific tenant's data.", + ], + filter_condition: Annotated[ + str | None, "Specify the filter condition for retrieving payments, based on any element." + ] = None, + order_by: Annotated[ + str | None, "Specify the order of payments by any element, such as date or amount." + ] = None, + page_number: Annotated[ + int | None, + "The page number to retrieve, starting from 1. Up to 100 payments are returned per page.", + ] = None, + records_per_page: Annotated[ + int | None, "Specify the number of records to retrieve per page, up to a maximum of 100." + ] = None, + modified_since_timestamp: Annotated[ + str | None, + "Only records created or modified since this timestamp will be retrieved. Use ISO 8601 format (e.g., 'YYYY-MM-DDTHH:MM:SSZ').", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getPayments'."]: + """Retrieve payments for invoices and credit notes in Xero. + + Use this tool to fetch a list of payments associated with invoices and credit notes from Xero. It is useful for obtaining payment records for financial analysis or reconciliation purposes.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Payments", + method="GET", + params=remove_none_values({ + "where": filter_condition, + "order": order_by, + "page": page_number, + "pageSize": records_per_page, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "If-Modified-Since": modified_since_timestamp, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_invoice_payment( + context: ToolContext, + payment_id: Annotated[ + str, "Unique identifier for the payment, used to retrieve specific payment details in Xero." + ], + xero_tenant_id: Annotated[ + str, + "Xero identifier for the tenant. This is required to specify which organization's data to access.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getPayment'."]: + """Retrieve specific payment details using a payment ID. + + This tool retrieves details of a specific payment associated with invoices and credit notes using a unique payment ID. It should be called when there is a need to access information about a particular payment in Xero.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Payments/{PaymentID}".format(PaymentID=payment_id), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_payment_history( + context: ToolContext, + payment_identifier: Annotated[ + str, "Unique identifier for a specific payment to retrieve its history." + ], + tenant_identifier: Annotated[ + str, "Xero identifier for the tenant. Used to specify which tenant's data to access." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getPaymentHistory'."]: + """Retrieve the history records of a specific payment. + + Use this tool to obtain historical records related to a specific payment, including updates and changes made over time.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Payments/{PaymentID}/History".format( # noqa: UP032 + PaymentID=payment_identifier + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.transactions"])) +async def create_payment_history_record( + context: ToolContext, + payment_identifier: Annotated[str, "Unique identifier for a specific payment in Xero."], + xero_tenant_id: Annotated[ + str, + "The unique identifier for the Xero tenant. This is required to specify which tenant's data the action applies to.", # noqa: E501 + ], + idempotency_key: Annotated[ + str | None, + "A unique key to safely retry requests and prevent duplicate processing. Maximum 128 characters.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'createPaymentHistory'."]: + """Create a history record for a specific payment. + + This tool is used to create a history record for a particular payment in Xero. It should be called when you want to document the history or add notes for a payment by its PaymentID.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Payments/{PaymentID}/History".format( # noqa: UP032 + PaymentID=payment_identifier + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Idempotency-Key": idempotency_key, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["paymentservices"])) +async def retrieve_payment_services( + context: ToolContext, + xero_tenant_id: Annotated[ + str, + "Unique identifier for the Xero tenant. Required to retrieve specific payment services for the tenant.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getPaymentServices'."]: + """Retrieve available payment services from Xero. + + Use this tool to obtain a list of payment services available in Xero. It should be called when you need to access or display payment service options.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/PaymentServices", + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_prepayments( + context: ToolContext, + xero_tenant_identifier: Annotated[ + str, + "The unique Xero identifier for the Tenant. Required for specifying which account's prepayments to retrieve.", # noqa: E501 + ], + filter_condition: Annotated[ + str | None, "Provide a filter condition to specify which prepayments to retrieve." + ] = None, + order_criteria: Annotated[ + str | None, + "Specifies the order of elements. Use field names for custom sorting, such as 'Date ASC' or 'Amount DESC'.", # noqa: E501 + ] = None, + page_number: Annotated[ + int | None, "Specify the page number to retrieve, up to 100 prepayments per page." + ] = None, + unit_decimal_places: Annotated[ + int | None, + "Specify the number of decimal places (e.g., 4) for unit amounts. Use for precise calculations.", # noqa: E501 + ] = None, + records_per_page: Annotated[ + int | None, + "The number of prepayment records to retrieve per page. This controls how many results are returned in a single call.", # noqa: E501 + ] = None, + modified_since_timestamp: Annotated[ + str | None, + "Only return records created or modified since the specified timestamp (e.g., '2023-10-01T00:00:00Z').", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getPrepayments'."]: + """Retrieve prepayment details from Xero. + + Use this tool to fetch prepayment information from the Xero API, providing insights into prepayment transactions.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Prepayments", + method="GET", + params=remove_none_values({ + "where": filter_condition, + "order": order_criteria, + "page": page_number, + "unitdp": unit_decimal_places, + "pageSize": records_per_page, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "If-Modified-Since": modified_since_timestamp, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def get_prepayment_details( + context: ToolContext, + prepayment_id: Annotated[str, "The unique identifier for the prepayment you want to retrieve."], + xero_tenant_id: Annotated[ + str, + "The unique Xero identifier for the tenant. Required to retrieve specific prepayment data.", + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getPrepayment'."]: + """Retrieve details of a specified prepayment from Xero. + + Use this tool to obtain information on a specific prepayment by providing the PrepaymentID. Ideal for checking prepayment details within the Xero accounting system.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Prepayments/{PrepaymentID}".format( # noqa: UP032 + PrepaymentID=prepayment_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.transactions"])) +async def delete_prepayment_allocation( + context: ToolContext, + prepayment_id: Annotated[ + str, + "Unique identifier for a PrePayment. Required to specify which prepayment the allocation will be deleted from.", # noqa: E501 + ], + allocation_id: Annotated[ + str, "Unique identifier for the Allocation object to be deleted from a prepayment." + ], + xero_tenant_identifier: Annotated[ + str, + "Xero identifier for the tenant in which the prepayment allocation deletion will occur.", + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'deletePrepaymentAllocations'."]: + """Delete an allocation from a prepayment in Xero. + + Use this tool to delete a specific allocation from a prepayment in Xero. This action is irreversible and should be used when a specific allocation needs to be removed.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Prepayments/{PrepaymentID}/Allocations/{AllocationID}".format( # noqa: UP032 + PrepaymentID=prepayment_id, AllocationID=allocation_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def get_prepayment_history( + context: ToolContext, + prepayment_id: Annotated[str, "Unique identifier for the prepayment to retrieve its history."], + xero_tenant_id: Annotated[ + str, "Unique identifier for the Xero tenant, required to access its data." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getPrepaymentHistory'."]: + """Retrieve history for a specific prepayment. + + Use this tool to obtain the historical records associated with a specific prepayment in Xero.""" + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Prepayments/{PrepaymentID}/History".format( # noqa: UP032 + PrepaymentID=prepayment_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.transactions"])) +async def create_prepayment_history( + context: ToolContext, + prepayment_id: Annotated[ + str, "Unique identifier for the specific PrePayment to create a history record for." + ], + xero_tenant_id: Annotated[ + str, + "Xero identifier for the Tenant. This is required to specify which tenant's data the prepayment history applies to.", # noqa: E501 + ], + idempotency_key: Annotated[ + str | None, + "A unique string to safely retry requests without duplicate processing, up to 128 characters.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'createPrepaymentHistory'."]: + """Creates a history record for a specific prepayment. + + Call this tool to create a history entry for a given prepayment in Xero, specifying the prepayment ID.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Prepayments/{PrepaymentID}/History".format( # noqa: UP032 + PrepaymentID=prepayment_id + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Idempotency-Key": idempotency_key, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_purchase_orders( + context: ToolContext, + xero_tenant_id: Annotated[ + str, "Unique identifier for the Xero tenant to access specific organization's data." + ], + filter_by_status: Annotated[ + str | None, + "Filter purchase orders by status. Accepted values are: 'DRAFT', 'SUBMITTED', 'AUTHORISED', 'BILLED', 'DELETED'.", # noqa: E501 + ] = None, + filter_by_start_date: Annotated[ + str | None, "Specify the start date for filtering purchase orders. Use format 'YYYY-MM-DD'." + ] = None, + filter_by_end_date: Annotated[ + str | None, "Filter purchase orders by end date (format: YYYY-MM-DD)." + ] = None, + order_by_element: Annotated[ + str | None, + "Specifies the element by which to sort the purchase orders, such as date or status. Accepts any valid field name.", # noqa: E501 + ] = None, + page_number: Annotated[ + int | None, + "Specifies the page of results to retrieve. Increment to access subsequent pages of purchase orders.", # noqa: E501 + ] = None, + records_per_page: Annotated[ + int | None, "Specify the number of purchase order records to retrieve per page." + ] = None, + modified_since_timestamp: Annotated[ + str | None, + "Timestamp to filter records created or modified since this time. Use ISO 8601 format (e.g., '2023-01-01T00:00:00Z').", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getPurchaseOrders'."]: + """Retrieve purchase orders from Xero. + + Use this tool to obtain purchase orders from Xero. Call when you need a list of purchase orders with details such as order status, dates, and amounts.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/PurchaseOrders", + method="GET", + params=remove_none_values({ + "Status": filter_by_status, + "DateFrom": filter_by_start_date, + "DateTo": filter_by_end_date, + "order": order_by_element, + "page": page_number, + "pageSize": records_per_page, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "If-Modified-Since": modified_since_timestamp, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def get_purchase_order_pdf( + context: ToolContext, + purchase_order_id: Annotated[ + str, "Unique identifier for a purchase order to retrieve it as a PDF." + ], + tenant_identifier: Annotated[ + str, + "The Xero identifier for the Tenant. Required to specify which tenant's data to access.", + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getPurchaseOrderAsPdf'."]: + """Retrieve a purchase order as a PDF using its ID. + + Use this tool to obtain a specific purchase order in PDF format by providing its unique ID. Useful for accessing purchase order details in a document format.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/PurchaseOrders/{PurchaseOrderID}/pdf".format( # noqa: UP032 + PurchaseOrderID=purchase_order_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_purchase_order( + context: ToolContext, + purchase_order_id: Annotated[ + str, + "Unique identifier for a purchase order. Required to retrieve specific purchase order details.", # noqa: E501 + ], + xero_tenant_id: Annotated[ + str, + "Xero identifier for the tenant. This is required to specify which tenant's purchase order to retrieve.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getPurchaseOrder'."]: + """Retrieve details of a specific purchase order by ID. + + Use this tool to obtain information about a particular purchase order by specifying its unique ID. Ideal for retrieving order details when managing inventory or processing transactions.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/PurchaseOrders/{PurchaseOrderID}".format( # noqa: UP032 + PurchaseOrderID=purchase_order_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_purchase_order_by_number( + context: ToolContext, + purchase_order_number: Annotated[ + str, "Unique identifier for the purchase order to be fetched." + ], + xero_tenant_id: Annotated[ + str, + "Unique identifier for the Xero tenant. Required to specify the account from which to retrieve the purchase order.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getPurchaseOrderByNumber'."]: + """Fetches a purchase order using its unique number. + + Use this tool to retrieve detailed information about a specific purchase order by providing its unique order number.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/PurchaseOrders/{PurchaseOrderNumber}".format( # noqa: UP032 + PurchaseOrderNumber=purchase_order_number + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_purchase_order_history( + context: ToolContext, + purchase_order_id: Annotated[ + str, "Unique identifier for the purchase order to retrieve its history." + ], + tenant_identifier: Annotated[ + str, + "Xero identifier for the tenant, required to specify which organization data belongs to.", + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getPurchaseOrderHistory'."]: + """Retrieve the history of a specific purchase order. + + Use this tool to obtain historical details for a specified purchase order by its ID. It provides insights into changes and updates made to the order over time.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/PurchaseOrders/{PurchaseOrderID}/History".format( # noqa: UP032 + PurchaseOrderID=purchase_order_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.transactions"])) +async def create_purchase_order_history( + context: ToolContext, + purchase_order_id: Annotated[ + str, + "Unique identifier for a Purchase Order. Pass the specific ID for which a history record will be created.", # noqa: E501 + ], + tenant_identifier: Annotated[ + str, "The unique Xero identifier for the tenant. Required for API requests." + ], + idempotency_key: Annotated[ + str | None, + "A unique key to safely retry requests without duplicate processing; 128 character max.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'createPurchaseOrderHistory'."]: + """Create a history record for a purchase order. + + Use this tool to add a historical record to a specific purchase order when tracking changes or updates is necessary.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/PurchaseOrders/{PurchaseOrderID}/History".format( # noqa: UP032 + PurchaseOrderID=purchase_order_id + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Idempotency-Key": idempotency_key, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_purchase_order_attachments( + context: ToolContext, + purchase_order_id: Annotated[ + str, "Unique identifier for a purchase order to retrieve its attachments." + ], + xero_tenant_id: Annotated[ + str, + "The unique Xero identifier for the tenant linked to the purchase order. Required to authenticate and access tenant-specific data.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getPurchaseOrderAttachments'."]: + """Retrieve attachments for a specific purchase order. + + This tool retrieves all attachments associated with a given purchase order in Xero. It should be called when you need to access or review files linked to a specific purchase order.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/PurchaseOrders/{PurchaseOrderID}/Attachments".format( # noqa: UP032 + PurchaseOrderID=purchase_order_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def fetch_purchase_order_attachment( + context: ToolContext, + purchase_order_id: Annotated[ + str, "Unique identifier for a Purchase Order to retrieve a specific attachment." + ], + attachment_id: Annotated[str, "Unique identifier for the attachment object to be retrieved."], + xero_tenant_id: Annotated[ + str, + "Xero identifier for the Tenant. This is required to specify which organization the request is for.", # noqa: E501 + ], + attachment_mime_type: Annotated[ + str, "The MIME type of the attachment file to retrieve, e.g., image/jpg, application/pdf." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getPurchaseOrderAttachmentById'."]: + """Retrieve a specific attachment from a purchase order. + + Use this tool to obtain a specific attachment from a purchase order using the attachment's unique ID within the Xero platform.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/PurchaseOrders/{PurchaseOrderID}/Attachments/{AttachmentID}".format( # noqa: UP032 + PurchaseOrderID=purchase_order_id, AttachmentID=attachment_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "contentType": attachment_mime_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_po_attachment_by_filename( + context: ToolContext, + purchase_order_id: Annotated[ + str, "Unique identifier for the purchase order you want to retrieve the attachment from." + ], + attachment_file_name: Annotated[ + str, "Name of the attachment file to be retrieved from the purchase order." + ], + xero_tenant_identifier: Annotated[ + str, + "Xero unique identifier for the tenant organization. Required to specify which organization's data to retrieve.", # noqa: E501 + ], + attachment_mime_type: Annotated[ + str, "The MIME type of the attachment file to retrieve, e.g., image/jpg or application/pdf." + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'getPurchaseOrderAttachmentByFileName'." +]: + """Retrieve a purchase order attachment by filename. + + Use this tool to get a specific attachment from a purchase order in Xero by providing the filename. It's useful for accessing documents linked to purchase orders.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/PurchaseOrders/{PurchaseOrderID}/Attachments/{FileName}".format( # noqa: UP032 + PurchaseOrderID=purchase_order_id, FileName=attachment_file_name + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "contentType": attachment_mime_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_sales_quotes( + context: ToolContext, + xero_tenant_id: Annotated[ + str, "Xero tenant identifier for accessing the specific account's data." + ], + filter_start_date: Annotated[ + str | None, "Filter quotes issued after a specified date in YYYY-MM-DD format." + ] = None, + filter_date_to: Annotated[ + str | None, "Filter for sales quotes before a specified date in YYYY-MM-DD format." + ] = None, + expiry_date_after: Annotated[ + str | None, + "Filter to retrieve quotes expiring after the specified date. Format: YYYY-MM-DD.", + ] = None, + filter_expiry_date_before: Annotated[ + str | None, "Filter for quotes expiring before a specified date (YYYY-MM-DD)." + ] = None, + contact_id: Annotated[ + str | None, "Filter the sales quotes by specifying the contact ID to which they belong." + ] = None, + quote_status: Annotated[ + str | None, "Filter quotes by their status (e.g., DRAFT, SENT)." + ] = None, + page_number: Annotated[ + int | None, + "The page number to retrieve, allowing pagination through quotes. Each page returns up to 100 quotes.", # noqa: E501 + ] = None, + order_by_element: Annotated[ + str | None, "Specify the element to order the sales quotes by." + ] = None, + quote_number_filter: Annotated[ + str | None, "Filter sales quotes by specifying the quote number (e.g., QU-0001)." + ] = None, + modified_since_timestamp: Annotated[ + str | None, "Retrieve records created or modified after this timestamp." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getQuotes'."]: + """Retrieve sales quotes from Xero. + + This tool fetches sales quotes from Xero, providing details of quotes issued. Use it to obtain current sales quotations.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Quotes", + method="GET", + params=remove_none_values({ + "DateFrom": filter_start_date, + "DateTo": filter_date_to, + "ExpiryDateFrom": expiry_date_after, + "ExpiryDateTo": filter_expiry_date_before, + "ContactID": contact_id, + "Status": quote_status, + "page": page_number, + "order": order_by_element, + "QuoteNumber": quote_number_filter, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "If-Modified-Since": modified_since_timestamp, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_quote( + context: ToolContext, + quote_id: Annotated[str, "Unique identifier for a quote to retrieve its details."], + xero_tenant_id: Annotated[ + str, "Provide the Xero identifier for the tenant to specify the account context." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getQuote'."]: + """Retrieve details of a specific quote by ID. + + Call this tool to obtain detailed information about a specific quote using its unique QuoteID.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Quotes/{QuoteID}".format(QuoteID=quote_id), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_quote_history( + context: ToolContext, + quote_id: Annotated[str, "Unique identifier for the quote to retrieve its history records."], + xero_tenant_identifier: Annotated[ + str, + "The unique identifier for the Xero tenant. Required to specify which tenant's quote history to retrieve.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getQuoteHistory'."]: + """Retrieves history records of a specific quote. + + Use this tool to get the history records for a specific quote using its ID. Ideal for tracking changes and updates to the quote over time.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Quotes/{QuoteID}/History".format(QuoteID=quote_id), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.transactions"])) +async def add_quote_history( + context: ToolContext, + quote_identifier: Annotated[ + str, "Unique identifier for a quote to which the history will be added." + ], + xero_tenant_id: Annotated[ + str, + "Xero identifier for the tenant. Required for specifying the tenant within the Xero system.", # noqa: E501 + ], + idempotency_key: Annotated[ + str | None, + "Unique key to safely retry requests and avoid duplicate processing (max 128 characters).", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'createQuoteHistory'."]: + """Creates a history record for a specific quote. + + Use this tool to add a history record to a specific quote in the Xero application. This is useful for tracking changes or updates made to a quote over time.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Quotes/{QuoteID}/History".format( # noqa: UP032 + QuoteID=quote_identifier + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Idempotency-Key": idempotency_key, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_quote_pdf( + context: ToolContext, + quote_id: Annotated[str, "A unique identifier for the quote to retrieve as a PDF."], + tenant_identifier: Annotated[ + str, "The unique Xero tenant identifier required to access the specific quote." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getQuoteAsPdf'."]: + """Retrieve a specific quote as a PDF file using the quote ID. + + This tool fetches a specific quote as a PDF using its unique ID. Call this when you need to obtain the PDF version of a quote for viewing, sharing, or archiving.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Quotes/{QuoteID}/pdf".format(QuoteID=quote_id), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_quote_attachments( + context: ToolContext, + quote_id: Annotated[str, "Unique identifier for a quote in Xero to retrieve its attachments."], + tenant_identifier: Annotated[ + str, "The unique Xero tenant identifier required to retrieve the quote attachments." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getQuoteAttachments'."]: + """Retrieve attachments for a specific quote in Xero. + + This tool retrieves all attachments related to a specified quote in Xero. It should be called when you need to access or view the files linked to a given quote ID.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Quotes/{QuoteID}/Attachments".format( # noqa: UP032 + QuoteID=quote_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def get_quote_attachment( + context: ToolContext, + quote_id: Annotated[ + str, "Unique identifier for a quote. Used to specify which quote the attachment belongs to." + ], + attachment_id: Annotated[ + str, "Unique identifier for the attachment object you wish to retrieve." + ], + xero_tenant_identifier: Annotated[ + str, "The unique Xero identifier for the tenant required to access the attachment." + ], + attachment_content_type: Annotated[ + str, + "The MIME type of the attachment file to retrieve, such as image/jpeg or application/pdf.", + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getQuoteAttachmentById'."]: + """Retrieve a specific attachment from a quote by ID. + + Use this tool to retrieve a specific attachment from a quote by providing the unique Quote ID and Attachment ID.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Quotes/{QuoteID}/Attachments/{AttachmentID}".format( # noqa: UP032 + QuoteID=quote_id, AttachmentID=attachment_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "contentType": attachment_content_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_quote_attachment_by_filename( + context: ToolContext, + quote_identifier: Annotated[ + str, + "Unique identifier for a Quote. Use this to specify which quote's attachment you want to retrieve.", # noqa: E501 + ], + attachment_filename: Annotated[str, "Name of the attachment file to retrieve from the quote."], + xero_tenant_identifier: Annotated[ + str, "Xero tenant's unique identifier. Required to specify which tenant's data to access." + ], + attachment_mime_type: Annotated[ + str, "The MIME type of the attachment file (e.g., image/jpg, application/pdf)." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getQuoteAttachmentByFileName'."]: + """Retrieve an attachment from a quote using filename. + + Call this tool to obtain a specific attachment from a quote by specifying the filename. Ideal for accessing quote-related documents stored in the Xero system.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Quotes/{QuoteID}/Attachments/{FileName}".format( # noqa: UP032 + QuoteID=quote_identifier, FileName=attachment_filename + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "contentType": attachment_mime_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def get_draft_expense_receipts( + context: ToolContext, + xero_tenant_id: Annotated[ + str, + "The unique identifier for a Xero tenant. Used to specify which tenant's data to retrieve.", + ], + filter_condition: Annotated[ + str | None, "A string to filter draft expense receipts based on specified criteria." + ] = None, + order_receipts_by: Annotated[ + str | None, + "Specify the attribute by which to order the receipts. For example, by date or amount.", + ] = None, + unit_decimal_places: Annotated[ + int | None, + "Specifies the number of decimal places for unit amounts. For example, set to 4 for four decimal places.", # noqa: E501 + ] = None, + modified_since_timestamp: Annotated[ + str | None, + "A timestamp to filter records updated or created since this date. Format should be in ISO 8601, e.g., '2023-10-10T00:00:00Z'.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getReceipts'."]: + """Retrieve draft expense claim receipts from Xero. + + This tool retrieves draft expense receipts for any user from Xero. It should be called when you need to access draft expense claims.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Receipts", + method="GET", + params=remove_none_values({ + "where": filter_condition, + "order": order_receipts_by, + "unitdp": unit_decimal_places, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "If-Modified-Since": modified_since_timestamp, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_draft_expense_claim_receipt( + context: ToolContext, + receipt_id: Annotated[ + str, "The unique identifier for the draft expense claim receipt to retrieve." + ], + tenant_identifier: Annotated[ + str, + "The unique Xero identifier for the tenant. Required to specify which organization's data is being accessed.", # noqa: E501 + ], + use_four_decimal_places: Annotated[ + int | None, "Set to true to use four decimal places for unit amounts, false for standard." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getReceipt'."]: + """Retrieve a draft expense claim receipt using its ID. + + Use this tool to retrieve detailed information about a specific draft expense claim receipt by providing its unique receipt ID. Useful for reviewing or processing draft receipts.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Receipts/{ReceiptID}".format(ReceiptID=receipt_id), # noqa: UP032 + method="GET", + params=remove_none_values({"unitdp": use_four_decimal_places}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def get_receipt_attachments( + context: ToolContext, + receipt_id: Annotated[ + str, "Unique identifier for the expense claim receipt to retrieve attachments." + ], + tenant_identifier: Annotated[ + str, "The unique Xero identifier for the tenant. Required to access tenant-specific data." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getReceiptAttachments'."]: + """Retrieve attachments for a specific expense claim receipt. + + Use this tool to obtain all attachments related to a specific expense claim receipt by providing the receipt ID.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Receipts/{ReceiptID}/Attachments".format( # noqa: UP032 + ReceiptID=receipt_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_receipt_attachment( + context: ToolContext, + receipt_id: Annotated[str, "Unique identifier for a receipt used to retrieve its attachment."], + attachment_id: Annotated[ + str, "Unique identifier for the attachment object you want to retrieve." + ], + xero_tenant_id: Annotated[ + str, "Xero identifier for the Tenant. Required to specify which tenant's data to access." + ], + attachment_mime_type: Annotated[ + str, "Specify the MIME type of the attachment, e.g., 'image/jpg' or 'application/pdf'." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getReceiptAttachmentById'."]: + """Retrieve a specific attachment from an expense receipt. + + Use this tool to obtain a specific attachment from an expense claim receipt by providing the unique attachment ID.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Receipts/{ReceiptID}/Attachments/{AttachmentID}".format( # noqa: UP032 + ReceiptID=receipt_id, AttachmentID=attachment_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "contentType": attachment_mime_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def get_expense_receipt_attachment( + context: ToolContext, + receipt_id: Annotated[ + str, + "The unique identifier for a specific expense receipt. This is used to locate the correct receipt attachment.", # noqa: E501 + ], + attachment_file_name: Annotated[ + str, "The name of the attachment to retrieve from the expense claim receipt." + ], + xero_tenant_identifier: Annotated[ + str, + "Xero identifier for the Tenant. Required to specify the organization context in Xero from which to retrieve the attachment.", # noqa: E501 + ], + attachment_mime_type: Annotated[ + str, + "The MIME type of the attachment file, such as image/jpg or application/pdf, that you are retrieving from the receipt.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getReceiptAttachmentByFileName'."]: + """Retrieve an attachment from a receipt by file name. + + This tool retrieves a specific attachment from an expense claim receipt using the file name. It should be called when you need to access a specific attachment associated with a receipt in the Xero platform.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Receipts/{ReceiptID}/Attachments/{FileName}".format( # noqa: UP032 + ReceiptID=receipt_id, FileName=attachment_file_name + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "contentType": attachment_mime_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def retrieve_receipt_history( + context: ToolContext, + receipt_id: Annotated[str, "Unique identifier for the receipt to retrieve its history."], + tenant_identifier: Annotated[ + str, "The unique Xero identifier for the tenant associated with the receipt." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getReceiptHistory'."]: + """Retrieve detailed history for a specific receipt. + + This tool retrieves the history record of a specific receipt from the Xero service. It should be called when users want to review or analyze the history or changes associated with a receipt.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Receipts/{ReceiptID}/History".format( # noqa: UP032 + ReceiptID=receipt_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.transactions"])) +async def record_receipt_history( + context: ToolContext, + receipt_id: Annotated[str, "Unique identifier for a receipt used to create a history record."], + tenant_identifier: Annotated[ + str, "Xero tenant identifier required for creating the receipt history." + ], + idempotency_key: Annotated[ + str | None, + "String up to 128 characters to safely retry requests without risk of duplication.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'createReceiptHistory'."]: + """Creates a history record for a specific receipt.""" + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Receipts/{ReceiptID}/History".format( # noqa: UP032 + ReceiptID=receipt_id + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Idempotency-Key": idempotency_key, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def get_repeating_invoices( + context: ToolContext, + tenant_identifier: Annotated[ + str, + "The unique identifier for the tenant in Xero. Required to retrieve specific tenant data.", + ], + filter_by_element: Annotated[ + str | None, + "Filter invoices using a specific element condition. Use Xero's query language for filtering expressions.", # noqa: E501 + ] = None, + order_by_element: Annotated[ + str | None, + "Specify the element to order the repeating invoices by. It accepts a string indicating the element to sort by.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getRepeatingInvoices'."]: + """Retrieve repeating invoices from Xero. + + Use this tool to get a list of repeating invoices from the Xero platform. It is helpful for managing and reviewing recurring billing information.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/RepeatingInvoices", + method="GET", + params=remove_none_values({"where": filter_by_element, "order": order_by_element}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def get_repeating_invoice( + context: ToolContext, + repeating_invoice_id: Annotated[ + str, "Unique identifier for the specific repeating invoice to retrieve." + ], + tenant_id: Annotated[ + str, "Xero tenant identifier required to access a specific tenant's data." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getRepeatingInvoice'."]: + """Retrieve a specific repeating invoice using its unique ID. + + Use this tool to retrieve detailed information about a specific repeating invoice by providing its unique ID.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/RepeatingInvoices/{RepeatingInvoiceID}".format( # noqa: UP032 + RepeatingInvoiceID=repeating_invoice_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_repeating_invoice_attachments( + context: ToolContext, + repeating_invoice_id: Annotated[ + str, + "Unique identifier for a repeating invoice in Xero. Needed to retrieve the corresponding attachments.", # noqa: E501 + ], + xero_tenant_identifier: Annotated[ + str, "A unique identifier for the Xero tenant. Required to access specific tenant data." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getRepeatingInvoiceAttachments'."]: + """Retrieve attachments from a specified repeating invoice. + + This tool retrieves attachments from a specific repeating invoice in Xero. Use it to access files associated with recurring invoices.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/RepeatingInvoices/{RepeatingInvoiceID}/Attachments".format( # noqa: UP032 + RepeatingInvoiceID=repeating_invoice_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_repeating_invoice_attachment_by_id( + context: ToolContext, + repeating_invoice_id: Annotated[ + str, "Unique identifier for a Repeating Invoice in Xero system." + ], + attachment_id: Annotated[ + str, + "Unique identifier for the attachment object you want to retrieve from the repeating invoice.", # noqa: E501 + ], + xero_tenant_identifier: Annotated[ + str, "Xero identifier for the tenant needed to retrieve the repeating invoice attachment." + ], + attachment_mime_type: Annotated[ + str, "The MIME type of the attachment file, such as image/jpg or application/pdf." + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'getRepeatingInvoiceAttachmentById'." +]: + """Retrieve a specific attachment from a repeating invoice. + + Use this tool to get a particular attachment from a specific repeating invoice in Xero.""" + response = await make_request( + url="https://api.xero.com/api.xro/2.0/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{AttachmentID}".format( # noqa: UP032 + RepeatingInvoiceID=repeating_invoice_id, AttachmentID=attachment_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "contentType": attachment_mime_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.attachments", "accounting.attachments.read"] + ) +) +async def retrieve_repeating_invoice_attachment( + context: ToolContext, + repeating_invoice_id: Annotated[ + str, + "Unique identifier for a specific repeating invoice. This is necessary to locate the invoice attachment.", # noqa: E501 + ], + attachment_file_name: Annotated[ + str, "The name of the attachment file you wish to retrieve from the repeating invoice." + ], + xero_tenant_identifier: Annotated[ + str, "Xero tenant ID needed to identify the specific organization in Xero." + ], + attachment_mime_type: Annotated[ + str, + "Specify the MIME type of the attachment file to retrieve, such as image/jpg or application/pdf.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'getRepeatingInvoiceAttachmentByFileName'." +]: + """Retrieve a repeating invoice attachment by file name. + + Use this tool to obtain a specific attachment from a repeating invoice using the file name. Ideal for accessing invoice-related files directly from the system.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName}".format( # noqa: UP032 + RepeatingInvoiceID=repeating_invoice_id, FileName=attachment_file_name + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "contentType": attachment_mime_type, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.transactions.read", "accounting.transactions"] + ) +) +async def get_repeating_invoice_history( + context: ToolContext, + repeating_invoice_id: Annotated[ + str, "Unique identifier for the specific repeating invoice to retrieve history for." + ], + xero_tenant_id: Annotated[ + str, "The unique identifier for the Xero tenant associated with the repeating invoice." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getRepeatingInvoiceHistory'."]: + """Retrieve history record for a specific repeating invoice. + + Use this tool to access the historical details of a specified repeating invoice. Ideal for understanding past changes, updates, or notes associated with the invoice in Xero.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/RepeatingInvoices/{RepeatingInvoiceID}/History".format( # noqa: UP032 + RepeatingInvoiceID=repeating_invoice_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.transactions"])) +async def create_repeating_invoice_history( + context: ToolContext, + repeating_invoice_id: Annotated[ + str, "Unique identifier for a Repeating Invoice to create a history record." + ], + tenant_identifier: Annotated[ + str, "Xero identifier for the tenant, required for accessing specific tenant data." + ], + idempotency_key: Annotated[ + str | None, + "A unique string, max 128 characters, to safely retry requests without duplication.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'createRepeatingInvoiceHistory'."]: + """Creates a history record for a repeating invoice. + + Use this tool to create a history record for a specific repeating invoice in the Xero system. This is useful for maintaining a log of actions or updates associated with the invoice.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/RepeatingInvoices/{RepeatingInvoiceID}/History".format( # noqa: UP032 + RepeatingInvoiceID=repeating_invoice_id + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Idempotency-Key": idempotency_key, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", + scopes=["accounting.reports.tenninetynine.read", "accounting.reports.read"], + ) +) +async def retrieve1099_reports( + context: ToolContext, + xero_tenant_identifier: Annotated[ + str, + "The unique identifier for the tenant in Xero. Required to access the specific tenant's 1099 report data.", # noqa: E501 + ], + report_year: Annotated[ + str | None, "The year for which the 1099 report should be retrieved, in YYYY format." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getReportTenNinetyNine'."]: + """Retrieves 1099 tax reports. + + Use this tool to obtain 1099 tax reports from the Xero accounting service. It provides necessary financial data related to 1099 forms.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Reports/TenNinetyNine", + method="GET", + params=remove_none_values({"reportYear": report_year}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.reports.read"])) +async def get_aged_payables_report_by_contact( + context: ToolContext, + contact_identifier: Annotated[ + str, "Unique identifier for the contact to retrieve the aged payables report." + ], + xero_tenant_identifier: Annotated[ + str, + "Xero identifier for the Tenant. Required to specify which tenant's data is being accessed.", # noqa: E501 + ], + report_date: Annotated[ + str | None, + "The specific date for the Aged Payables By Contact report in YYYY-MM-DD format.", + ] = None, + report_from_date: Annotated[ + str | None, + "Specify the start date for filtering the report, in YYYY-MM-DD format (e.g. 2021-02-01).", + ] = None, + report_end_date: Annotated[ + str | None, + "Filter the report by specifying the end date, formatted as YYYY-MM-DD (e.g., 2021-02-28).", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getReportAgedPayablesByContact'."]: + """Retrieve aged payables report by contact. + + Use this tool to get a report on aged payables categorized by contact. It provides insights into outstanding payables over time.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Reports/AgedPayablesByContact", + method="GET", + params=remove_none_values({ + "contactId": contact_identifier, + "date": report_date, + "fromDate": report_from_date, + "toDate": report_end_date, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.reports.read"])) +async def get_aged_receivables_report_by_contact( + context: ToolContext, + contact_identifier: Annotated[ + str, "Unique identifier for a Contact to retrieve their aged receivables report." + ], + tenant_identifier: Annotated[ + str, + "Unique Xero identifier for the Tenant. Required to specify which tenant's data to retrieve.", # noqa: E501 + ], + report_date: Annotated[ + str | None, + "The specific date for which the aged receivables report by contact is generated.", + ] = None, + start_date_filter: Annotated[ + str | None, "Filter the report starting from this date (YYYY-MM-DD)." + ] = None, + filter_by_to_date: Annotated[ + str | None, + "Specify the end date for filtering the aged receivables report, e.g., '2021-02-28'.", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'getReportAgedReceivablesByContact'." +]: + """Retrieve aged receivables report by contact. + + Use this tool to get a detailed report of aged receivables, organized by contact, which helps in assessing outstanding debts for each contact.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Reports/AgedReceivablesByContact", + method="GET", + params=remove_none_values({ + "contactId": contact_identifier, + "date": report_date, + "fromDate": start_date_filter, + "toDate": filter_by_to_date, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.reports.read"])) +async def get_balance_sheet_report( + context: ToolContext, + xero_tenant_identifier: Annotated[ + str, + "Xero identifier for the Tenant. Used to specify which organization's data to retrieve in Xero.", # noqa: E501 + ], + report_date: Annotated[ + str | None, + "The specific date for which to retrieve the Balance Sheet report. Format as YYYY-MM-DD.", + ] = None, + number_of_periods: Annotated[ + int | None, "The number of periods to include in the Balance Sheet report." + ] = None, + comparison_timeframe: Annotated[ + str | None, "The period size for comparison, e.g., MONTH, QUARTER, or YEAR." + ] = None, + balance_sheet_tracking_option_id_1: Annotated[ + str | None, "The first tracking option ID for generating the Balance Sheet report in Xero." + ] = None, + tracking_option_id_2: Annotated[ + str | None, + "The tracking option ID for secondary categorization in the Balance Sheet report. This allows for filtering or segmentation based on a second tracking category within Xero.", # noqa: E501 + ] = None, + use_standard_layout: Annotated[ + bool | None, "Set to true to use the standard layout for the Balance Sheet report in Xero." + ] = None, + return_cash_basis: Annotated[ + bool | None, "Set to True to return the Balance Sheet report using a cash basis." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getReportBalanceSheet'."]: + """Retrieve the balance sheet report from Xero. + + Fetches the balance sheet report, detailing financial positions. Useful for obtaining up-to-date financial summaries.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Reports/BalanceSheet", + method="GET", + params=remove_none_values({ + "date": report_date, + "periods": number_of_periods, + "timeframe": comparison_timeframe, + "trackingOptionID1": balance_sheet_tracking_option_id_1, + "trackingOptionID2": tracking_option_id_2, + "standardLayout": use_standard_layout, + "paymentsOnly": return_cash_basis, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.reports.read"])) +async def get_bank_summary_report( + context: ToolContext, + xero_tenant_id: Annotated[ + str, + "Unique identifier for the Xero tenant. Required for accessing the relevant account data.", + ], + start_date_filter: Annotated[ + str | None, + "Filter the report by the starting date, formatted as YYYY-MM-DD. For example, 2021-02-01.", + ] = None, + end_date_filter: Annotated[ + str | None, "Filter the report by the end date, formatted as YYYY-MM-DD, e.g., 2021-02-28." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getReportBankSummary'."]: + """Retrieve bank summary reports from Xero. + + This tool fetches a bank summary report, providing a detailed overview of bank transactions and balances. Use it when you need to review financial summaries from Xero.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Reports/BankSummary", + method="GET", + params=remove_none_values({"fromDate": start_date_filter, "toDate": end_date_filter}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.reports.read"])) +async def retrieve_specific_report( + context: ToolContext, + report_id: Annotated[str, "Unique identifier for a specific report to be retrieved."], + xero_tenant_id: Annotated[ + str, + "Xero identifier for the Tenant. This is required to specify which tenant's data is being accessed.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getReportFromId'."]: + """Retrieve a specific report using a ReportID. + + This tool fetches a specific report from Xero using a unique ReportID. It should be called when detailed information about a particular report is needed.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Reports/{ReportID}".format(ReportID=report_id), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.reports.read"])) +async def get_budget_summary_report( + context: ToolContext, + xero_tenant_identifier: Annotated[ + str, + "The unique Xero identifier for the tenant, required for authentication and data retrieval.", # noqa: E501 + ], + report_date: Annotated[ + str | None, + "The specific date for the budget summary report in YYYY-MM-DD format, e.g., 2018-03-31.", + ] = None, + number_of_periods_to_compare: Annotated[ + int | None, "The number of periods for comparison, must be an integer between 1 and 12." + ] = None, + comparison_timeframe: Annotated[ + int | None, + "Specify the period size for comparison: 1 for month, 3 for quarter, or 12 for year.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getReportBudgetSummary'."]: + """Retrieves the budget summary report from Xero. + + This tool calls the Xero endpoint to obtain a detailed budget summary report. Use this when a financial summary of budget allocations is required.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Reports/BudgetSummary", + method="GET", + params=remove_none_values({ + "date": report_date, + "periods": number_of_periods_to_compare, + "timeframe": comparison_timeframe, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.reports.read"])) +async def retrieve_executive_summary_report( + context: ToolContext, + xero_tenant_identifier: Annotated[ + str, + "The Xero identifier for the tenant. Required to specify which tenant's data should be retrieved.", # noqa: E501 + ], + report_date: Annotated[ + str | None, + "The date for the Bank Summary report in the format YYYY-MM-DD (e.g., 2018-03-31).", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getReportExecutiveSummary'."]: + """Retrieve an executive summary report for financial insights. + + Use this tool to get an executive summary report, which provides financial insights and key metrics for business decision-making.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Reports/ExecutiveSummary", + method="GET", + params=remove_none_values({"date": report_date}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.reports.read"])) +async def retrieve_unique_reports_list( + context: ToolContext, + xero_tenant_id: Annotated[ + str, "The unique identifier for the Xero tenant to retrieve reports for." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getReportsList'."]: + """Retrieve a list of unique reports from Xero. + + Use this tool to obtain a list of an organization's unique reports from Xero, each requiring a UUID for fetching.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Reports", + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.reports.read"])) +async def get_profit_and_loss_report( + context: ToolContext, + tenant_identifier: Annotated[ + str, + "The Xero identifier for the tenant. Required to specify which tenant's data to access.", + ], + from_date: Annotated[ + str | None, "Filter the report by the starting date in YYYY-MM-DD format, e.g., 2021-02-01." + ] = None, + end_date: Annotated[ + str | None, "Filter by the end date of the report in YYYY-MM-DD format, e.g., 2021-02-28." + ] = None, + number_of_comparison_periods: Annotated[ + int | None, "The number of periods to compare, must be an integer between 1 and 12." + ] = None, + comparison_timeframe: Annotated[ + str | None, + "The period size to compare to for the report. Options are MONTH, QUARTER, or YEAR.", + ] = None, + tracking_category_id: Annotated[ + str | None, + "The first tracking category ID for the Profit and Loss report filter. Expect a string representing the tracking category identifier.", # noqa: E501 + ] = None, + secondary_tracking_category_id: Annotated[ + str | None, "The ID of the second tracking category for the Profit and Loss report." + ] = None, + tracking_option_1_id: Annotated[ + str | None, "The identifier for the first tracking option in the Profit and Loss report." + ] = None, + tracking_option_id_2: Annotated[ + str | None, + "The second tracking option identifier for filtering the Profit and Loss report.", + ] = None, + return_standard_layout: Annotated[ + bool | None, "Set to true to return the Profit and Loss report in the standard layout." + ] = None, + return_cash_basis_only: Annotated[ + bool | None, "Specify true to return the Profit and Loss report on a cash only basis." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getReportProfitAndLoss'."]: + """Retrieve profit and loss report from Xero. + + Call this tool to obtain detailed profit and loss reports for financial analysis.""" + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Reports/ProfitAndLoss", + method="GET", + params=remove_none_values({ + "fromDate": from_date, + "toDate": end_date, + "periods": number_of_comparison_periods, + "timeframe": comparison_timeframe, + "trackingCategoryID": tracking_category_id, + "trackingCategoryID2": secondary_tracking_category_id, + "trackingOptionID": tracking_option_1_id, + "trackingOptionID2": tracking_option_id_2, + "standardLayout": return_standard_layout, + "paymentsOnly": return_cash_basis_only, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.reports.read"])) +async def get_trial_balance_report( + context: ToolContext, + tenant_identifier: Annotated[ + str, "The unique identifier for the Xero tenant to retrieve the trial balance report for." + ], + report_date: Annotated[ + str | None, "The specific date for the Trial Balance report in YYYY-MM-DD format." + ] = None, + return_cash_basis_only: Annotated[ + bool | None, + "Set to true to return the trial balance report on a cash-only basis, false for accrual.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getReportTrialBalance'."]: + """Fetches the trial balance report from Xero. + + Use this tool to retrieve the trial balance report, which provides detailed financial information.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Reports/TrialBalance", + method="GET", + params=remove_none_values({"date": report_date, "paymentsOnly": return_cash_basis_only}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.settings"])) +async def set_financial_setup( + context: ToolContext, + xero_tenant_identifier: Annotated[ + str, "Xero tenant ID required to identify the specific tenant for the request." + ], + financial_setup_details: Annotated[ + dict[ + str, + dict[str, int] + | list[dict[str, bool | str | list[dict[str, str]]]] + | list[dict[str, float | str | list[dict[str, float | str]]]], + ], + "JSON object containing accounts, conversion balances, and a conversion date for setting up the financial chart in Xero.", # noqa: E501 + ], + idempotency_key: Annotated[ + str | None, + "A unique string up to 128 characters to safely retry requests without duplicating processing.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'postSetup'."]: + """Sets up the financial chart of accounts and conversion details. + + Use this tool to set up the chart of accounts, conversion date, and conversion balances in Xero.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Setup", + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Idempotency-Key": idempotency_key, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({"requestBody": financial_setup_details}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.settings", "accounting.settings.read"] + ) +) +async def retrieve_tax_rates( + context: ToolContext, + xero_tenant_id: Annotated[ + str, + "A unique identifier for the Xero tenant. This is required to access tenant-specific data.", + ], + filter_by_element: Annotated[ + str | None, + "Apply a filter to the tax rates by specifying an element condition (e.g. 'Status==\"ACTIVE\"').", # noqa: E501 + ] = None, + order_by_element: Annotated[ + str | None, + "Specify the element to order the tax rates by. Provide any valid field or attribute name.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getTaxRates'."]: + """Retrieve tax rates from Xero. + + Use this tool to obtain the current tax rates available in Xero. It should be called when you need up-to-date tax rate information for financial calculations or reporting.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/TaxRates", + method="GET", + params=remove_none_values({"where": filter_by_element, "order": order_by_element}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.settings", "accounting.settings.read"] + ) +) +async def get_tax_rate_by_tax_type( + context: ToolContext, + tax_type_code: Annotated[str, "A valid TaxType code used to retrieve the specific tax rate."], + xero_tenant_identifier: Annotated[ + str, + "Xero identifier for the tenant. Required to specify which tenant's data is being accessed.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getTaxRateByTaxType'."]: + """Retrieve a specific tax rate using a TaxType code. + + Use this tool to obtain a particular tax rate by providing a specific TaxType code. It is useful for retrieving tax rates in financial calculations or reports.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/TaxRates/{TaxType}".format(TaxType=tax_type_code), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.settings", "accounting.settings.read"] + ) +) +async def get_tracking_categories( + context: ToolContext, + xero_tenant_identifier: Annotated[ + str, + "Unique identifier for the Xero tenant. Required to specify the tenant from which tracking categories should be retrieved.", # noqa: E501 + ], + filter_conditions: Annotated[ + str | None, "String to filter tracking categories by specific conditions." + ] = None, + order_by_element: Annotated[ + str | None, "Specify the element to order the tracking categories and options by." + ] = None, + include_archived_categories: Annotated[ + bool | None, + "Set to true to include categories and options with a status of ARCHIVED in the response.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getTrackingCategories'."]: + """Retrieve tracking categories and options from Xero. + + Use this tool to get tracking categories and their options from Xero. Useful for financial tracking and categorization tasks.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/TrackingCategories", + method="GET", + params=remove_none_values({ + "where": filter_conditions, + "order": order_by_element, + "includeArchived": include_archived_categories, + }), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.settings", "accounting.settings.read"] + ) +) +async def get_tracking_category( + context: ToolContext, + tracking_category_id: Annotated[ + str, "Unique identifier for the tracking category to retrieve details for." + ], + xero_tenant_id: Annotated[ + str, + "A string representing the Xero identifier for the tenant. Required to access tenant-specific data.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getTrackingCategory'."]: + """Retrieve tracking category details using its unique ID. + + Use this tool to obtain specific details about a tracking category and its options by providing a unique tracking category ID.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/TrackingCategories/{TrackingCategoryID}".format( # noqa: UP032 + TrackingCategoryID=tracking_category_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.settings"])) +async def remove_tracking_category( + context: ToolContext, + tracking_category_id: Annotated[ + str, "Unique identifier for the tracking category to be deleted in Xero." + ], + xero_tenant_identifier: Annotated[ + str, + "Xero identifier for the tenant. Required to specify which tenant's tracking category to delete.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'deleteTrackingCategory'."]: + """Deletes a specific tracking category from Xero. + + Use this tool to delete a particular tracking category identified by its ID in the Xero accounting system.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/TrackingCategories/{TrackingCategoryID}".format( # noqa: UP032 + TrackingCategoryID=tracking_category_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.settings"])) +async def delete_tracking_option( + context: ToolContext, + tracking_category_id: Annotated[ + str, + "Unique identifier for the tracking category to specify which category the option will be deleted from.", # noqa: E501 + ], + tracking_option_id: Annotated[ + str, "Unique identifier for a tracking option to be deleted in Xero." + ], + xero_tenant_id: Annotated[ + str, + "The unique identifier for a Xero tenant. This specifies which tenant's data will be affected.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'deleteTrackingOptions'."]: + """Deletes a specific tracking category option in Xero. + + Use this tool to delete a specific tracking option from a selected tracking category in Xero. Useful for managing and updating your tracking categories when certain options are no longer needed.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/TrackingCategories/{TrackingCategoryID}/Options/{TrackingOptionID}".format( # noqa: UP032 + TrackingCategoryID=tracking_category_id, TrackingOptionID=tracking_option_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_id, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.settings", "accounting.settings.read"] + ) +) +async def retrieve_xero_users( + context: ToolContext, + xero_tenant_identifier: Annotated[ + str, + "Xero identifier for the specific tenant. This is required to specify the tenant for which users are to be retrieved.", # noqa: E501 + ], + filter_by_criteria: Annotated[ + str | None, "A string to filter users based on specific criteria in Xero." + ] = None, + order_by_element: Annotated[ + str | None, "Specify the element to order the retrieved users by, such as name or date." + ] = None, + modified_since_timestamp: Annotated[ + str | None, + "Return only records created or modified since this timestamp, formatted as an ISO 8601 string.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getUsers'."]: + """Retrieve users from the Xero platform. + + Call this tool to fetch a list of users from the Xero platform when user information or management is required.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Users", + method="GET", + params=remove_none_values({"where": filter_by_criteria, "order": order_by_element}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "If-Modified-Since": modified_since_timestamp, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-xero", scopes=["accounting.settings", "accounting.settings.read"] + ) +) +async def retrieve_specific_user( + context: ToolContext, + user_identifier: Annotated[str, "Unique identifier for a User in Xero system."], + xero_tenant_identifier: Annotated[ + str, "Xero identifier for the Tenant. Use this to specify which tenant the user belongs to." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getUser'."]: + """Retrieve details of a specific user from Xero. + + Use this tool to obtain information about a specific user by providing their UserID. It is called when user details from Xero are needed.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/api.xro/2.0/Users/{UserID}".format(UserID=user_identifier), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Accept": "application/json", + "xero-tenant-id": xero_tenant_identifier, + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero", scopes=["accounting.settings.read"])) +async def get_connected_tenants( + context: ToolContext, + filter_auth_event_id: Annotated[ + str | None, + "A string used to filter the results by a specific authEventId, narrowing down the connections returned.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getConnections'."]: + """Fetch active Tenants connections from Xero organization. + + Use this tool to retrieve a list of active connections associated with your Xero organization. It should be called when verifying or reviewing the connections currently established with Xero.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/Connections", + method="GET", + params=remove_none_values({"authEventId": filter_auth_event_id}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-xero")) +async def delete_tenant_connection( + context: ToolContext, + tenant_connection_id: Annotated[ + str, "Unique identifier for the Xero connection to be deleted." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'deleteConnection'."]: + """Delete a specified Xero connection using its ID. + + This tool is used to delete a connection from the Xero platform by specifying the connection ID. It should be called when a user wants to remove a particular connection from their Xero account.""" # noqa: E501 + response = await make_request( + url="https://api.xero.com/Connections/{id}".format(id=tenant_connection_id), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/AddContactHistoryRecord.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/AddContactHistoryRecord.json new file mode 100644 index 00000000..1a7ee1c0 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/AddContactHistoryRecord.json @@ -0,0 +1,171 @@ +{ + "name": "AddContactHistoryRecord", + "fully_qualified_name": "XeroApi.AddContactHistoryRecord@0.1.0", + "description": "Create a new history record for a contact in Xero.\n\nThis tool allows you to add a new history entry for a specific contact in Xero. Use it to log interactions, notes, or any relevant information about the contact.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_unique_identifier", + "required": true, + "description": "Unique identifier for a Contact in Xero. Required to specify which contact the history record is for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ContactID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the Tenant. Required to specify which tenant's contact history to update.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "idempotency_key", + "required": false, + "description": "A unique string up to 128 characters to safely retry requests without duplicate processing.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "inferrable": true, + "http_endpoint_parameter_name": "Idempotency-Key" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'createContactHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.contacts" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Contacts/{ContactID}/History", + "http_method": "PUT", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ContactID", + "tool_parameter_name": "contact_unique_identifier", + "description": "Unique identifier for a Contact", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Idempotency-Key", + "tool_parameter_name": "idempotency_key", + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/AddExpenseClaimHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/AddExpenseClaimHistory.json new file mode 100644 index 00000000..1876eedb --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/AddExpenseClaimHistory.json @@ -0,0 +1,171 @@ +{ + "name": "AddExpenseClaimHistory", + "fully_qualified_name": "XeroApi.AddExpenseClaimHistory@0.1.0", + "description": "Creates a history record for an expense claim.\n\nUse this tool to add a record to the history of a specific expense claim. It should be called when there is a need to document a change or update related to an expense claim in the system.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "expense_claim_id", + "required": true, + "description": "Unique identifier for the specific expense claim to add a history record.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a ExpenseClaim" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ExpenseClaimID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique identifier for the Xero tenant. This is required to specify which tenant the expense claim history record is associated with.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "idempotency_key", + "required": false, + "description": "A unique string (max 128 characters) to safely retry requests without duplicating processing.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "inferrable": true, + "http_endpoint_parameter_name": "Idempotency-Key" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'createExpenseClaimHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/ExpenseClaims/{ExpenseClaimID}/History", + "http_method": "PUT", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ExpenseClaimID", + "tool_parameter_name": "expense_claim_id", + "description": "Unique identifier for a ExpenseClaim", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a ExpenseClaim" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Idempotency-Key", + "tool_parameter_name": "idempotency_key", + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/AddQuoteHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/AddQuoteHistory.json new file mode 100644 index 00000000..3014a91e --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/AddQuoteHistory.json @@ -0,0 +1,171 @@ +{ + "name": "AddQuoteHistory", + "fully_qualified_name": "XeroApi.AddQuoteHistory@0.1.0", + "description": "Creates a history record for a specific quote.\n\nUse this tool to add a history record to a specific quote in the Xero application. This is useful for tracking changes or updates made to a quote over time.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "quote_identifier", + "required": true, + "description": "Unique identifier for a quote to which the history will be added.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Quote" + }, + "inferrable": true, + "http_endpoint_parameter_name": "QuoteID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Xero identifier for the tenant. Required for specifying the tenant within the Xero system.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "idempotency_key", + "required": false, + "description": "Unique key to safely retry requests and avoid duplicate processing (max 128 characters).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "inferrable": true, + "http_endpoint_parameter_name": "Idempotency-Key" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'createQuoteHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Quotes/{QuoteID}/History", + "http_method": "PUT", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "QuoteID", + "tool_parameter_name": "quote_identifier", + "description": "Unique identifier for an Quote", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Quote" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Idempotency-Key", + "tool_parameter_name": "idempotency_key", + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateBankTransactionHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateBankTransactionHistory.json new file mode 100644 index 00000000..9a252539 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateBankTransactionHistory.json @@ -0,0 +1,171 @@ +{ + "name": "CreateBankTransactionHistory", + "fully_qualified_name": "XeroApi.CreateBankTransactionHistory@0.1.0", + "description": "Creates a record in the bank transaction history.\n\nUse this tool to create a history record for a specific bank transaction in Xero. It's useful for logging changes or updates to bank transactions.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "bank_transaction_id", + "required": true, + "description": "Xero-generated unique identifier for the bank transaction to create a history record.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transaction" + }, + "inferrable": true, + "http_endpoint_parameter_name": "BankTransactionID" + }, + { + "name": "tenant_id", + "required": true, + "description": "Xero identifier for the tenant. This is required to specify which Xero account the transaction history will be associated with.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "idempotency_key", + "required": false, + "description": "A unique key to prevent duplicate processing. Maximum 128 characters.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "inferrable": true, + "http_endpoint_parameter_name": "Idempotency-Key" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'createBankTransactionHistoryRecord'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BankTransactions/{BankTransactionID}/History", + "http_method": "PUT", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "BankTransactionID", + "tool_parameter_name": "bank_transaction_id", + "description": "Xero generated unique identifier for a bank transaction", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transaction" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Idempotency-Key", + "tool_parameter_name": "idempotency_key", + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateBankTransferHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateBankTransferHistory.json new file mode 100644 index 00000000..8ceda5b5 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateBankTransferHistory.json @@ -0,0 +1,171 @@ +{ + "name": "CreateBankTransferHistory", + "fully_qualified_name": "XeroApi.CreateBankTransferHistory@0.1.0", + "description": "Create a history record for a bank transfer.\n\nThis tool creates a history record for a specified bank transfer within the Xero service. It is useful for tracking changes and updates to bank transfers.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "bank_transfer_id", + "required": true, + "description": "Xero generated unique identifier for the specific bank transfer to create a history record for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transfer" + }, + "inferrable": true, + "http_endpoint_parameter_name": "BankTransferID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique identifier for a Xero tenant. Required to specify which tenant's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "idempotency_key", + "required": false, + "description": "A unique string to safely retry requests without risk of duplication, limited to 128 characters.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "inferrable": true, + "http_endpoint_parameter_name": "Idempotency-Key" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'createBankTransferHistoryRecord'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BankTransfers/{BankTransferID}/History", + "http_method": "PUT", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "BankTransferID", + "tool_parameter_name": "bank_transfer_id", + "description": "Xero generated unique identifier for a bank transfer", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transfer" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Idempotency-Key", + "tool_parameter_name": "idempotency_key", + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateBatchPaymentHistoryRecord.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateBatchPaymentHistoryRecord.json new file mode 100644 index 00000000..b60b1a84 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateBatchPaymentHistoryRecord.json @@ -0,0 +1,171 @@ +{ + "name": "CreateBatchPaymentHistoryRecord", + "fully_qualified_name": "XeroApi.CreateBatchPaymentHistoryRecord@0.1.0", + "description": "Creates a history record for a batch payment.\n\nThis tool is used to create a historical record for a specified batch payment in Xero. Call this tool when you want to log information or updates about a batch payment's history.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "batch_payment_id", + "required": true, + "description": "Unique identifier for the specific batch payment in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for BatchPayment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "BatchPaymentID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for Tenant. This is required to specify which tenant's batch payment history is being recorded.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "idempotency_key", + "required": false, + "description": "A unique string to prevent duplicate processing. Maximum 128 characters.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "inferrable": true, + "http_endpoint_parameter_name": "Idempotency-Key" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'createBatchPaymentHistoryRecord'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BatchPayments/{BatchPaymentID}/History", + "http_method": "PUT", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "BatchPaymentID", + "tool_parameter_name": "batch_payment_id", + "description": "Unique identifier for BatchPayment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for BatchPayment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Idempotency-Key", + "tool_parameter_name": "idempotency_key", + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateInvoiceHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateInvoiceHistory.json new file mode 100644 index 00000000..7e7a079e --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateInvoiceHistory.json @@ -0,0 +1,171 @@ +{ + "name": "CreateInvoiceHistory", + "fully_qualified_name": "XeroApi.CreateInvoiceHistory@0.1.0", + "description": "Create a history record for a specific invoice.\n\nUse this tool to log a history record for a particular invoice in Xero. Ideal for tracking changes or adding comments to an invoice's history.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invoice_id", + "required": true, + "description": "Unique identifier for the invoice. This is required to create a history record for the specified invoice in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Invoice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "InvoiceID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the Tenant. Required for specifying which tenant the invoice history belongs to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "idempotency_key", + "required": false, + "description": "A string up to 128 characters to safely retry requests without duplicate processing.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "inferrable": true, + "http_endpoint_parameter_name": "Idempotency-Key" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'createInvoiceHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Invoices/{InvoiceID}/History", + "http_method": "PUT", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "InvoiceID", + "tool_parameter_name": "invoice_id", + "description": "Unique identifier for an Invoice", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Invoice" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Idempotency-Key", + "tool_parameter_name": "idempotency_key", + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateItemHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateItemHistory.json new file mode 100644 index 00000000..2108f4a8 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateItemHistory.json @@ -0,0 +1,171 @@ +{ + "name": "CreateItemHistory", + "fully_qualified_name": "XeroApi.CreateItemHistory@0.1.0", + "description": "Creates a history record for a specific item in Xero.\n\nThis tool is used to create a history record for a specific item in Xero, allowing users to keep track of changes or updates made to an item.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "item_id", + "required": true, + "description": "Unique identifier for the item to create a history record for in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Item" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ItemID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant, required to specify which tenant's item history is being updated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "idempotency_key", + "required": false, + "description": "A unique key to ensure request retrying without duplication, max 128 characters.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "inferrable": true, + "http_endpoint_parameter_name": "Idempotency-Key" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'createItemHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Items/{ItemID}/History", + "http_method": "PUT", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ItemID", + "tool_parameter_name": "item_id", + "description": "Unique identifier for an Item", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Item" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Idempotency-Key", + "tool_parameter_name": "idempotency_key", + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateJournalHistoryRecord.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateJournalHistoryRecord.json new file mode 100644 index 00000000..f76ede9e --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateJournalHistoryRecord.json @@ -0,0 +1,171 @@ +{ + "name": "CreateJournalHistoryRecord", + "fully_qualified_name": "XeroApi.CreateJournalHistoryRecord@0.1.0", + "description": "Creates a history record for a specific manual journal.\n\nUse this tool to log a new history entry for a specific manual journal in Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "manual_journal_id", + "required": true, + "description": "Unique identifier for a specific manual journal in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a ManualJournal" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ManualJournalID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant is required to specify which tenant's manual journal is being updated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "idempotency_key", + "required": false, + "description": "A unique string, up to 128 characters, to safely retry requests without duplicate processing.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "inferrable": true, + "http_endpoint_parameter_name": "Idempotency-Key" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'createManualJournalHistoryRecord'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/ManualJournals/{ManualJournalID}/History", + "http_method": "PUT", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ManualJournalID", + "tool_parameter_name": "manual_journal_id", + "description": "Unique identifier for a ManualJournal", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a ManualJournal" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Idempotency-Key", + "tool_parameter_name": "idempotency_key", + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreatePaymentHistoryRecord.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreatePaymentHistoryRecord.json new file mode 100644 index 00000000..9fff841b --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreatePaymentHistoryRecord.json @@ -0,0 +1,171 @@ +{ + "name": "CreatePaymentHistoryRecord", + "fully_qualified_name": "XeroApi.CreatePaymentHistoryRecord@0.1.0", + "description": "Create a history record for a specific payment.\n\nThis tool is used to create a history record for a particular payment in Xero. It should be called when you want to document the history or add notes for a payment by its PaymentID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "payment_identifier", + "required": true, + "description": "Unique identifier for a specific payment in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Payment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "PaymentID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique identifier for the Xero tenant. This is required to specify which tenant's data the action applies to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "idempotency_key", + "required": false, + "description": "A unique key to safely retry requests and prevent duplicate processing. Maximum 128 characters.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "inferrable": true, + "http_endpoint_parameter_name": "Idempotency-Key" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'createPaymentHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Payments/{PaymentID}/History", + "http_method": "PUT", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "PaymentID", + "tool_parameter_name": "payment_identifier", + "description": "Unique identifier for a Payment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Payment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Idempotency-Key", + "tool_parameter_name": "idempotency_key", + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreatePrepaymentHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreatePrepaymentHistory.json new file mode 100644 index 00000000..299a0deb --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreatePrepaymentHistory.json @@ -0,0 +1,171 @@ +{ + "name": "CreatePrepaymentHistory", + "fully_qualified_name": "XeroApi.CreatePrepaymentHistory@0.1.0", + "description": "Creates a history record for a specific prepayment.\n\nCall this tool to create a history entry for a given prepayment in Xero, specifying the prepayment ID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "prepayment_id", + "required": true, + "description": "Unique identifier for the specific PrePayment to create a history record for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a PrePayment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "PrepaymentID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Xero identifier for the Tenant. This is required to specify which tenant's data the prepayment history applies to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "idempotency_key", + "required": false, + "description": "A unique string to safely retry requests without duplicate processing, up to 128 characters.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "inferrable": true, + "http_endpoint_parameter_name": "Idempotency-Key" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'createPrepaymentHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Prepayments/{PrepaymentID}/History", + "http_method": "PUT", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "PrepaymentID", + "tool_parameter_name": "prepayment_id", + "description": "Unique identifier for a PrePayment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a PrePayment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Idempotency-Key", + "tool_parameter_name": "idempotency_key", + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreatePurchaseOrderHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreatePurchaseOrderHistory.json new file mode 100644 index 00000000..75163deb --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreatePurchaseOrderHistory.json @@ -0,0 +1,171 @@ +{ + "name": "CreatePurchaseOrderHistory", + "fully_qualified_name": "XeroApi.CreatePurchaseOrderHistory@0.1.0", + "description": "Create a history record for a purchase order.\n\nUse this tool to add a historical record to a specific purchase order when tracking changes or updates is necessary.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "purchase_order_id", + "required": true, + "description": "Unique identifier for a Purchase Order. Pass the specific ID for which a history record will be created.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Purchase Order" + }, + "inferrable": true, + "http_endpoint_parameter_name": "PurchaseOrderID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "The unique Xero identifier for the tenant. Required for API requests.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "idempotency_key", + "required": false, + "description": "A unique key to safely retry requests without duplicate processing; 128 character max.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "inferrable": true, + "http_endpoint_parameter_name": "Idempotency-Key" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'createPurchaseOrderHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/PurchaseOrders/{PurchaseOrderID}/History", + "http_method": "PUT", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "PurchaseOrderID", + "tool_parameter_name": "purchase_order_id", + "description": "Unique identifier for an Purchase Order", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Purchase Order" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Idempotency-Key", + "tool_parameter_name": "idempotency_key", + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateRepeatingInvoiceHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateRepeatingInvoiceHistory.json new file mode 100644 index 00000000..0075a530 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/CreateRepeatingInvoiceHistory.json @@ -0,0 +1,171 @@ +{ + "name": "CreateRepeatingInvoiceHistory", + "fully_qualified_name": "XeroApi.CreateRepeatingInvoiceHistory@0.1.0", + "description": "Creates a history record for a repeating invoice.\n\nUse this tool to create a history record for a specific repeating invoice in the Xero system. This is useful for maintaining a log of actions or updates associated with the invoice.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "repeating_invoice_id", + "required": true, + "description": "Unique identifier for a Repeating Invoice to create a history record.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Repeating Invoice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "RepeatingInvoiceID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant, required for accessing specific tenant data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "idempotency_key", + "required": false, + "description": "A unique string, max 128 characters, to safely retry requests without duplication.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "inferrable": true, + "http_endpoint_parameter_name": "Idempotency-Key" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'createRepeatingInvoiceHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/RepeatingInvoices/{RepeatingInvoiceID}/History", + "http_method": "PUT", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "RepeatingInvoiceID", + "tool_parameter_name": "repeating_invoice_id", + "description": "Unique identifier for a Repeating Invoice", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Repeating Invoice" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Idempotency-Key", + "tool_parameter_name": "idempotency_key", + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteAccount.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteAccount.json new file mode 100644 index 00000000..40e7e723 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteAccount.json @@ -0,0 +1,139 @@ +{ + "name": "DeleteAccount", + "fully_qualified_name": "XeroApi.DeleteAccount@0.1.0", + "description": "Delete a chart of accounts in Xero.\n\nUse this tool to delete a specified chart of accounts by providing the AccountID in Xero. This tool should be called when an account needs to be permanently removed.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "account_id", + "required": true, + "description": "The unique identifier for the Account object to be deleted.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Account object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AccountID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the Tenant. Required to specify which tenant's account to delete.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'deleteAccount'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Accounts/{AccountID}", + "http_method": "DELETE", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "AccountID", + "tool_parameter_name": "account_id", + "description": "Unique identifier for Account object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Account object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteCreditNoteAllocation.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteCreditNoteAllocation.json new file mode 100644 index 00000000..011279f0 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteCreditNoteAllocation.json @@ -0,0 +1,171 @@ +{ + "name": "DeleteCreditNoteAllocation", + "fully_qualified_name": "XeroApi.DeleteCreditNoteAllocation@0.1.0", + "description": "Remove an allocation from a specific credit note.\n\nThis tool is used to delete an allocation from a specified credit note in the Xero system. It should be called when you need to remove a particular allocation detail from an existing credit note.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "credit_note_unique_id", + "required": true, + "description": "Unique identifier for a specific credit note to delete the allocation from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Credit Note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "CreditNoteID" + }, + { + "name": "allocation_id", + "required": true, + "description": "Unique identifier for the Allocation object needing deletion from a credit note.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Allocation object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AllocationID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Unique Xero identifier for the Tenant. Required to specify which tenant's data is being accessed.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'deleteCreditNoteAllocations'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/CreditNotes/{CreditNoteID}/Allocations/{AllocationID}", + "http_method": "DELETE", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "CreditNoteID", + "tool_parameter_name": "credit_note_unique_id", + "description": "Unique identifier for a Credit Note", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Credit Note" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "AllocationID", + "tool_parameter_name": "allocation_id", + "description": "Unique identifier for Allocation object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Allocation object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteInventoryItem.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteInventoryItem.json new file mode 100644 index 00000000..4346f1ad --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteInventoryItem.json @@ -0,0 +1,139 @@ +{ + "name": "DeleteInventoryItem", + "fully_qualified_name": "XeroApi.DeleteInventoryItem@0.1.0", + "description": "Delete a specific item from inventory.\n\nUse this tool to remove an item from the inventory based on its ItemID. Call this tool to manage inventory by deleting items that are no longer needed or available.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "item_id", + "required": true, + "description": "Unique identifier for the item to be deleted.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Item" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ItemID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "The unique identifier for the Xero tenant to specify which tenant's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'deleteItem'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Items/{ItemID}", + "http_method": "DELETE", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ItemID", + "tool_parameter_name": "item_id", + "description": "Unique identifier for an Item", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Item" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteLinkedTransaction.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteLinkedTransaction.json new file mode 100644 index 00000000..efdb494d --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteLinkedTransaction.json @@ -0,0 +1,139 @@ +{ + "name": "DeleteLinkedTransaction", + "fully_qualified_name": "XeroApi.DeleteLinkedTransaction@0.1.0", + "description": "Delete a specific linked transaction.\n\nUse this tool to delete a specified linked transaction (billable expense) by providing the LinkedTransactionID. It should be called when there's a need to remove an existing linked expense from Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "linked_transaction_id", + "required": true, + "description": "Unique identifier for the linked transaction to be deleted.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a LinkedTransaction" + }, + "inferrable": true, + "http_endpoint_parameter_name": "LinkedTransactionID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Provide the unique Xero identifier for the tenant to specify the context of the deletion.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'deleteLinkedTransaction'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/LinkedTransactions/{LinkedTransactionID}", + "http_method": "DELETE", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "LinkedTransactionID", + "tool_parameter_name": "linked_transaction_id", + "description": "Unique identifier for a LinkedTransaction", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a LinkedTransaction" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteOverpaymentAllocation.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteOverpaymentAllocation.json new file mode 100644 index 00000000..f65c47df --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteOverpaymentAllocation.json @@ -0,0 +1,171 @@ +{ + "name": "DeleteOverpaymentAllocation", + "fully_qualified_name": "XeroApi.DeleteOverpaymentAllocation@0.1.0", + "description": "Delete an allocation from an overpayment in Xero.\n\nThis tool deletes a specific allocation from an overpayment in the Xero system. Use this when you need to remove allocations linked to overpayments.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "overpayment_id", + "required": true, + "description": "Unique identifier for a specific overpayment in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Overpayment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "OverpaymentID" + }, + { + "name": "allocation_id", + "required": true, + "description": "Unique identifier for the Allocation object to be deleted.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Allocation object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AllocationID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant. Required to specify which tenant's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'deleteOverpaymentAllocations'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Overpayments/{OverpaymentID}/Allocations/{AllocationID}", + "http_method": "DELETE", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "OverpaymentID", + "tool_parameter_name": "overpayment_id", + "description": "Unique identifier for a Overpayment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Overpayment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "AllocationID", + "tool_parameter_name": "allocation_id", + "description": "Unique identifier for Allocation object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Allocation object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeletePrepaymentAllocation.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeletePrepaymentAllocation.json new file mode 100644 index 00000000..1b5d8fd7 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeletePrepaymentAllocation.json @@ -0,0 +1,171 @@ +{ + "name": "DeletePrepaymentAllocation", + "fully_qualified_name": "XeroApi.DeletePrepaymentAllocation@0.1.0", + "description": "Delete an allocation from a prepayment in Xero.\n\nUse this tool to delete a specific allocation from a prepayment in Xero. This action is irreversible and should be used when a specific allocation needs to be removed.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "prepayment_id", + "required": true, + "description": "Unique identifier for a PrePayment. Required to specify which prepayment the allocation will be deleted from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a PrePayment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "PrepaymentID" + }, + { + "name": "allocation_id", + "required": true, + "description": "Unique identifier for the Allocation object to be deleted from a prepayment.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Allocation object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AllocationID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant in which the prepayment allocation deletion will occur.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'deletePrepaymentAllocations'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Prepayments/{PrepaymentID}/Allocations/{AllocationID}", + "http_method": "DELETE", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "PrepaymentID", + "tool_parameter_name": "prepayment_id", + "description": "Unique identifier for a PrePayment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a PrePayment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "AllocationID", + "tool_parameter_name": "allocation_id", + "description": "Unique identifier for Allocation object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Allocation object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteTenantConnection.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteTenantConnection.json new file mode 100644 index 00000000..53893993 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteTenantConnection.json @@ -0,0 +1,101 @@ +{ + "name": "DeleteTenantConnection", + "fully_qualified_name": "XeroIdentityApi.DeleteTenantConnection@0.1.0", + "description": "Delete a specified Xero connection using its ID.\n\nThis tool is used to delete a connection from the Xero platform by specifying the connection ID. It should be called when a user wants to remove a particular connection from their Xero account.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tenant_connection_id", + "required": true, + "description": "Unique identifier for the Xero connection to be deleted.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for retrieving single object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'deleteConnection'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/Connections/{id}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "tenant_connection_id", + "description": "Unique identifier for retrieving single object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for retrieving single object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteTrackingOption.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteTrackingOption.json new file mode 100644 index 00000000..77f8e1d8 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/DeleteTrackingOption.json @@ -0,0 +1,171 @@ +{ + "name": "DeleteTrackingOption", + "fully_qualified_name": "XeroApi.DeleteTrackingOption@0.1.0", + "description": "Deletes a specific tracking category option in Xero.\n\nUse this tool to delete a specific tracking option from a selected tracking category in Xero. Useful for managing and updating your tracking categories when certain options are no longer needed.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tracking_category_id", + "required": true, + "description": "Unique identifier for the tracking category to specify which category the option will be deleted from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a TrackingCategory" + }, + "inferrable": true, + "http_endpoint_parameter_name": "TrackingCategoryID" + }, + { + "name": "tracking_option_id", + "required": true, + "description": "Unique identifier for a tracking option to be deleted in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Tracking Option" + }, + "inferrable": true, + "http_endpoint_parameter_name": "TrackingOptionID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique identifier for a Xero tenant. This specifies which tenant's data will be affected.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'deleteTrackingOptions'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/TrackingCategories/{TrackingCategoryID}/Options/{TrackingOptionID}", + "http_method": "DELETE", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "TrackingCategoryID", + "tool_parameter_name": "tracking_category_id", + "description": "Unique identifier for a TrackingCategory", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a TrackingCategory" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "TrackingOptionID", + "tool_parameter_name": "tracking_option_id", + "description": "Unique identifier for a Tracking Option", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Tracking Option" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchAllXeroContacts.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchAllXeroContacts.json new file mode 100644 index 00000000..89e4a294 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchAllXeroContacts.json @@ -0,0 +1,396 @@ +{ + "name": "FetchAllXeroContacts", + "fully_qualified_name": "XeroApi.FetchAllXeroContacts@0.1.0", + "description": "Retrieve all contacts from a Xero organization.\n\nUse this tool to obtain a list of all contacts within a specified Xero organization. It should be called when there's a need to access or manage contact information in Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tenant_identifier", + "required": true, + "description": "A unique string to identify the tenant in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_by_element", + "required": false, + "description": "Specify conditions to filter contacts by any element within their data fields.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "sort_order", + "required": false, + "description": "Specifies the sorting order for contacts based on a specified element, such as name or date.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "contact_ids", + "required": false, + "description": "Comma-separated list of ContactIDs to retrieve specific contacts. Use this to filter the contacts returned by their unique IDs in a single call.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by a comma separated list of ContactIDs. Allows you to retrieve a specific set of contacts in a single call." + }, + "inferrable": true, + "http_endpoint_parameter_name": "IDs" + }, + { + "name": "pagination_page_number", + "required": false, + "description": "The specific page number to retrieve when fetching contacts. Each page returns up to 100 contacts.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. page=1 - Up to 100 contacts will be returned in a single API call." + }, + "inferrable": true, + "http_endpoint_parameter_name": "page" + }, + { + "name": "search_term", + "required": false, + "description": "A case-insensitive search term for filtering contacts by Name, FirstName, LastName, ContactNumber, or EmailAddress.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Search parameter that performs a case-insensitive text search across the Name, FirstName, LastName, ContactNumber and EmailAddress fields." + }, + "inferrable": true, + "http_endpoint_parameter_name": "searchTerm" + }, + { + "name": "records_per_page", + "required": false, + "description": "Number of contact records to retrieve per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of records to retrieve per page" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pageSize" + }, + { + "name": "modified_since_timestamp", + "required": false, + "description": "Retrieve only records created or modified after the specified timestamp. Use ISO 8601 format for the timestamp.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "inferrable": true, + "http_endpoint_parameter_name": "If-Modified-Since" + }, + { + "name": "include_archived_contacts", + "required": false, + "description": "Set to true to include contacts with a status of ARCHIVED in the response. False will exclude them.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. includeArchived=true - Contacts with a status of ARCHIVED will be included in the response" + }, + "inferrable": true, + "http_endpoint_parameter_name": "includeArchived" + }, + { + "name": "retrieve_summary_only_contacts", + "required": false, + "description": "Set to true to retrieve only lightweight contact fields, excluding computation-heavy data for faster API responses.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Use summaryOnly=true in GET Contacts and Invoices endpoint to retrieve a smaller version of the response object. This returns only lightweight fields, excluding computation-heavy fields from the response, making the API calls quick and efficient." + }, + "inferrable": true, + "http_endpoint_parameter_name": "summaryOnly" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getContacts'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.contacts.read", + "accounting.contacts" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Contacts", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_by_element", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "sort_order", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "IDs", + "tool_parameter_name": "contact_ids", + "description": "Filter by a comma separated list of ContactIDs. Allows you to retrieve a specific set of contacts in a single call.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by a comma separated list of ContactIDs. Allows you to retrieve a specific set of contacts in a single call." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page", + "tool_parameter_name": "pagination_page_number", + "description": "e.g. page=1 - Up to 100 contacts will be returned in a single API call.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. page=1 - Up to 100 contacts will be returned in a single API call." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "includeArchived", + "tool_parameter_name": "include_archived_contacts", + "description": "e.g. includeArchived=true - Contacts with a status of ARCHIVED will be included in the response", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. includeArchived=true - Contacts with a status of ARCHIVED will be included in the response" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "summaryOnly", + "tool_parameter_name": "retrieve_summary_only_contacts", + "description": "Use summaryOnly=true in GET Contacts and Invoices endpoint to retrieve a smaller version of the response object. This returns only lightweight fields, excluding computation-heavy fields from the response, making the API calls quick and efficient.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Use summaryOnly=true in GET Contacts and Invoices endpoint to retrieve a smaller version of the response object. This returns only lightweight fields, excluding computation-heavy fields from the response, making the API calls quick and efficient." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "searchTerm", + "tool_parameter_name": "search_term", + "description": "Search parameter that performs a case-insensitive text search across the Name, FirstName, LastName, ContactNumber and EmailAddress fields.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Search parameter that performs a case-insensitive text search across the Name, FirstName, LastName, ContactNumber and EmailAddress fields." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "pageSize", + "tool_parameter_name": "records_per_page", + "description": "Number of records to retrieve per page", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of records to retrieve per page" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "If-Modified-Since", + "tool_parameter_name": "modified_since_timestamp", + "description": "Only records created or modified since this timestamp will be returned", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchBankTransferAttachment.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchBankTransferAttachment.json new file mode 100644 index 00000000..3ea0b065 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchBankTransferAttachment.json @@ -0,0 +1,204 @@ +{ + "name": "FetchBankTransferAttachment", + "fully_qualified_name": "XeroApi.FetchBankTransferAttachment@0.1.0", + "description": "Fetch a specific bank transfer attachment by ID.\n\nUse this tool to retrieve a specific attachment related to a bank transfer using the unique attachment ID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "bank_transfer_unique_id", + "required": true, + "description": "Xero-generated unique identifier for a bank transfer. It is required to locate the specific transfer for the attachment.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transfer" + }, + "inferrable": true, + "http_endpoint_parameter_name": "BankTransferID" + }, + { + "name": "attachment_id", + "required": true, + "description": "Unique identifier for the attachment object that you want to retrieve from a specific bank transfer.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AttachmentID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "The Xero identifier for the tenant you want to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_mime_type", + "required": true, + "description": "The MIME type of the attachment to retrieve, e.g., image/jpg, application/pdf.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBankTransferAttachmentById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BankTransfers/{BankTransferID}/Attachments/{AttachmentID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "BankTransferID", + "tool_parameter_name": "bank_transfer_unique_id", + "description": "Xero generated unique identifier for a bank transfer", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transfer" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "AttachmentID", + "tool_parameter_name": "attachment_id", + "description": "Unique identifier for Attachment object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchCreditNoteHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchCreditNoteHistory.json new file mode 100644 index 00000000..c3288397 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchCreditNoteHistory.json @@ -0,0 +1,171 @@ +{ + "name": "FetchCreditNoteHistory", + "fully_qualified_name": "XeroApi.FetchCreditNoteHistory@0.1.0", + "description": "Retrieve the history of a specific credit note.\n\nUse this tool to access and retrieve history records of a specific credit note by providing the CreditNoteID. This can be helpful for auditing or tracking changes made to a credit note over time.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "credit_note_id", + "required": true, + "description": "Unique identifier for the credit note whose history you want to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Credit Note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "CreditNoteID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Xero identifier for the tenant. Required to specify which tenant's credit note history to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "idempotency_key", + "required": false, + "description": "String to safely retry requests without creating duplicates. Max 128 characters.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "inferrable": true, + "http_endpoint_parameter_name": "Idempotency-Key" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'createCreditNoteHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/CreditNotes/{CreditNoteID}/History", + "http_method": "PUT", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "CreditNoteID", + "tool_parameter_name": "credit_note_id", + "description": "Unique identifier for a Credit Note", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Credit Note" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Idempotency-Key", + "tool_parameter_name": "idempotency_key", + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchInvoicePayments.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchInvoicePayments.json new file mode 100644 index 00000000..618c5df6 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchInvoicePayments.json @@ -0,0 +1,268 @@ +{ + "name": "FetchInvoicePayments", + "fully_qualified_name": "XeroApi.FetchInvoicePayments@0.1.0", + "description": "Retrieve payments for invoices and credit notes in Xero.\n\nUse this tool to fetch a list of payments associated with invoices and credit notes from Xero. It is useful for obtaining payment records for financial analysis or reconciliation purposes.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the Tenant. This is required to access the specific tenant's data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_condition", + "required": false, + "description": "Specify the filter condition for retrieving payments, based on any element.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "order_by", + "required": false, + "description": "Specify the order of payments by any element, such as date or amount.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "page_number", + "required": false, + "description": "The page number to retrieve, starting from 1. Up to 100 payments are returned per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Up to 100 payments will be returned in a single API call" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page" + }, + { + "name": "records_per_page", + "required": false, + "description": "Specify the number of records to retrieve per page, up to a maximum of 100.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of records to retrieve per page" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pageSize" + }, + { + "name": "modified_since_timestamp", + "required": false, + "description": "Only records created or modified since this timestamp will be retrieved. Use ISO 8601 format (e.g., 'YYYY-MM-DDTHH:MM:SSZ').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "inferrable": true, + "http_endpoint_parameter_name": "If-Modified-Since" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getPayments'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Payments", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_condition", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_by", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page", + "tool_parameter_name": "page_number", + "description": "Up to 100 payments will be returned in a single API call", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Up to 100 payments will be returned in a single API call" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "pageSize", + "tool_parameter_name": "records_per_page", + "description": "Number of records to retrieve per page", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of records to retrieve per page" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "If-Modified-Since", + "tool_parameter_name": "modified_since_timestamp", + "description": "Only records created or modified since this timestamp will be returned", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchPurchaseOrderAttachment.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchPurchaseOrderAttachment.json new file mode 100644 index 00000000..200380b5 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/FetchPurchaseOrderAttachment.json @@ -0,0 +1,204 @@ +{ + "name": "FetchPurchaseOrderAttachment", + "fully_qualified_name": "XeroApi.FetchPurchaseOrderAttachment@0.1.0", + "description": "Retrieve a specific attachment from a purchase order.\n\nUse this tool to obtain a specific attachment from a purchase order using the attachment's unique ID within the Xero platform.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "purchase_order_id", + "required": true, + "description": "Unique identifier for a Purchase Order to retrieve a specific attachment.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Purchase Order" + }, + "inferrable": true, + "http_endpoint_parameter_name": "PurchaseOrderID" + }, + { + "name": "attachment_id", + "required": true, + "description": "Unique identifier for the attachment object to be retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AttachmentID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Xero identifier for the Tenant. This is required to specify which organization the request is for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_mime_type", + "required": true, + "description": "The MIME type of the attachment file to retrieve, e.g., image/jpg, application/pdf.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getPurchaseOrderAttachmentById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/PurchaseOrders/{PurchaseOrderID}/Attachments/{AttachmentID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "PurchaseOrderID", + "tool_parameter_name": "purchase_order_id", + "description": "Unique identifier for an Purchase Order", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Purchase Order" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "AttachmentID", + "tool_parameter_name": "attachment_id", + "description": "Unique identifier for Attachment object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetAgedPayablesReportByContact.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetAgedPayablesReportByContact.json new file mode 100644 index 00000000..07cd4526 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetAgedPayablesReportByContact.json @@ -0,0 +1,235 @@ +{ + "name": "GetAgedPayablesReportByContact", + "fully_qualified_name": "XeroApi.GetAgedPayablesReportByContact@0.1.0", + "description": "Retrieve aged payables report by contact.\n\nUse this tool to get a report on aged payables categorized by contact. It provides insights into outstanding payables over time.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_identifier", + "required": true, + "description": "Unique identifier for the contact to retrieve the aged payables report.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contactId" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the Tenant. Required to specify which tenant's data is being accessed.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "report_date", + "required": false, + "description": "The specific date for the Aged Payables By Contact report in YYYY-MM-DD format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date of the Aged Payables By Contact report" + }, + "inferrable": true, + "http_endpoint_parameter_name": "date" + }, + { + "name": "report_from_date", + "required": false, + "description": "Specify the start date for filtering the report, in YYYY-MM-DD format (e.g. 2021-02-01).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "filter by the from date of the report e.g. 2021-02-01" + }, + "inferrable": true, + "http_endpoint_parameter_name": "fromDate" + }, + { + "name": "report_end_date", + "required": false, + "description": "Filter the report by specifying the end date, formatted as YYYY-MM-DD (e.g., 2021-02-28).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "filter by the to date of the report e.g. 2021-02-28" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toDate" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getReportAgedPayablesByContact'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.reports.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Reports/AgedPayablesByContact", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "contactId", + "tool_parameter_name": "contact_identifier", + "description": "Unique identifier for a Contact", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "date", + "tool_parameter_name": "report_date", + "description": "The date of the Aged Payables By Contact report", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date of the Aged Payables By Contact report" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "fromDate", + "tool_parameter_name": "report_from_date", + "description": "filter by the from date of the report e.g. 2021-02-01", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "filter by the from date of the report e.g. 2021-02-01" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "toDate", + "tool_parameter_name": "report_end_date", + "description": "filter by the to date of the report e.g. 2021-02-28", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "filter by the to date of the report e.g. 2021-02-28" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetAgedReceivablesReportByContact.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetAgedReceivablesReportByContact.json new file mode 100644 index 00000000..43a0faab --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetAgedReceivablesReportByContact.json @@ -0,0 +1,235 @@ +{ + "name": "GetAgedReceivablesReportByContact", + "fully_qualified_name": "XeroApi.GetAgedReceivablesReportByContact@0.1.0", + "description": "Retrieve aged receivables report by contact.\n\nUse this tool to get a detailed report of aged receivables, organized by contact, which helps in assessing outstanding debts for each contact.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_identifier", + "required": true, + "description": "Unique identifier for a Contact to retrieve their aged receivables report.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contactId" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Unique Xero identifier for the Tenant. Required to specify which tenant's data to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "report_date", + "required": false, + "description": "The specific date for which the aged receivables report by contact is generated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date of the Aged Receivables By Contact report" + }, + "inferrable": true, + "http_endpoint_parameter_name": "date" + }, + { + "name": "start_date_filter", + "required": false, + "description": "Filter the report starting from this date (YYYY-MM-DD).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "filter by the from date of the report e.g. 2021-02-01" + }, + "inferrable": true, + "http_endpoint_parameter_name": "fromDate" + }, + { + "name": "filter_by_to_date", + "required": false, + "description": "Specify the end date for filtering the aged receivables report, e.g., '2021-02-28'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "filter by the to date of the report e.g. 2021-02-28" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toDate" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getReportAgedReceivablesByContact'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.reports.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Reports/AgedReceivablesByContact", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "contactId", + "tool_parameter_name": "contact_identifier", + "description": "Unique identifier for a Contact", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "date", + "tool_parameter_name": "report_date", + "description": "The date of the Aged Receivables By Contact report", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date of the Aged Receivables By Contact report" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "fromDate", + "tool_parameter_name": "start_date_filter", + "description": "filter by the from date of the report e.g. 2021-02-01", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "filter by the from date of the report e.g. 2021-02-01" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "toDate", + "tool_parameter_name": "filter_by_to_date", + "description": "filter by the to date of the report e.g. 2021-02-28", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "filter by the to date of the report e.g. 2021-02-28" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBalanceSheetReport.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBalanceSheetReport.json new file mode 100644 index 00000000..f6680619 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBalanceSheetReport.json @@ -0,0 +1,339 @@ +{ + "name": "GetBalanceSheetReport", + "fully_qualified_name": "XeroApi.GetBalanceSheetReport@0.1.0", + "description": "Retrieve the balance sheet report from Xero.\n\nFetches the balance sheet report, detailing financial positions. Useful for obtaining up-to-date financial summaries.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the Tenant. Used to specify which organization's data to retrieve in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "report_date", + "required": false, + "description": "The specific date for which to retrieve the Balance Sheet report. Format as YYYY-MM-DD.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date of the Balance Sheet report" + }, + "inferrable": true, + "http_endpoint_parameter_name": "date" + }, + { + "name": "number_of_periods", + "required": false, + "description": "The number of periods to include in the Balance Sheet report.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of periods for the Balance Sheet report" + }, + "inferrable": true, + "http_endpoint_parameter_name": "periods" + }, + { + "name": "comparison_timeframe", + "required": false, + "description": "The period size for comparison, e.g., MONTH, QUARTER, or YEAR.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "MONTH", + "QUARTER", + "YEAR" + ], + "properties": null, + "inner_properties": null, + "description": "The period size to compare to (MONTH, QUARTER, YEAR)" + }, + "inferrable": true, + "http_endpoint_parameter_name": "timeframe" + }, + { + "name": "balance_sheet_tracking_option_id_1", + "required": false, + "description": "The first tracking option ID for generating the Balance Sheet report in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The tracking option 1 for the Balance Sheet report" + }, + "inferrable": true, + "http_endpoint_parameter_name": "trackingOptionID1" + }, + { + "name": "tracking_option_id_2", + "required": false, + "description": "The tracking option ID for secondary categorization in the Balance Sheet report. This allows for filtering or segmentation based on a second tracking category within Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The tracking option 2 for the Balance Sheet report" + }, + "inferrable": true, + "http_endpoint_parameter_name": "trackingOptionID2" + }, + { + "name": "use_standard_layout", + "required": false, + "description": "Set to true to use the standard layout for the Balance Sheet report in Xero.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The standard layout boolean for the Balance Sheet report" + }, + "inferrable": true, + "http_endpoint_parameter_name": "standardLayout" + }, + { + "name": "return_cash_basis", + "required": false, + "description": "Set to True to return the Balance Sheet report using a cash basis.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "return a cash basis for the Balance Sheet report" + }, + "inferrable": true, + "http_endpoint_parameter_name": "paymentsOnly" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getReportBalanceSheet'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.reports.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Reports/BalanceSheet", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "date", + "tool_parameter_name": "report_date", + "description": "The date of the Balance Sheet report", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date of the Balance Sheet report" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "periods", + "tool_parameter_name": "number_of_periods", + "description": "The number of periods for the Balance Sheet report", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of periods for the Balance Sheet report" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "timeframe", + "tool_parameter_name": "comparison_timeframe", + "description": "The period size to compare to (MONTH, QUARTER, YEAR)", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "MONTH", + "QUARTER", + "YEAR" + ], + "properties": null, + "inner_properties": null, + "description": "The period size to compare to (MONTH, QUARTER, YEAR)" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "trackingOptionID1", + "tool_parameter_name": "balance_sheet_tracking_option_id_1", + "description": "The tracking option 1 for the Balance Sheet report", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The tracking option 1 for the Balance Sheet report" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "trackingOptionID2", + "tool_parameter_name": "tracking_option_id_2", + "description": "The tracking option 2 for the Balance Sheet report", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The tracking option 2 for the Balance Sheet report" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "standardLayout", + "tool_parameter_name": "use_standard_layout", + "description": "The standard layout boolean for the Balance Sheet report", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The standard layout boolean for the Balance Sheet report" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "paymentsOnly", + "tool_parameter_name": "return_cash_basis", + "description": "return a cash basis for the Balance Sheet report", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "return a cash basis for the Balance Sheet report" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBankSummaryReport.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBankSummaryReport.json new file mode 100644 index 00000000..09356d14 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBankSummaryReport.json @@ -0,0 +1,171 @@ +{ + "name": "GetBankSummaryReport", + "fully_qualified_name": "XeroApi.GetBankSummaryReport@0.1.0", + "description": "Retrieve bank summary reports from Xero.\n\nThis tool fetches a bank summary report, providing a detailed overview of bank transactions and balances. Use it when you need to review financial summaries from Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_id", + "required": true, + "description": "Unique identifier for the Xero tenant. Required for accessing the relevant account data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "start_date_filter", + "required": false, + "description": "Filter the report by the starting date, formatted as YYYY-MM-DD. For example, 2021-02-01.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "filter by the from date of the report e.g. 2021-02-01" + }, + "inferrable": true, + "http_endpoint_parameter_name": "fromDate" + }, + { + "name": "end_date_filter", + "required": false, + "description": "Filter the report by the end date, formatted as YYYY-MM-DD, e.g., 2021-02-28.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "filter by the to date of the report e.g. 2021-02-28" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toDate" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getReportBankSummary'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.reports.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Reports/BankSummary", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "fromDate", + "tool_parameter_name": "start_date_filter", + "description": "filter by the from date of the report e.g. 2021-02-01", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "filter by the from date of the report e.g. 2021-02-01" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "toDate", + "tool_parameter_name": "end_date_filter", + "description": "filter by the to date of the report e.g. 2021-02-28", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "filter by the to date of the report e.g. 2021-02-28" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBankTransactionAttachment.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBankTransactionAttachment.json new file mode 100644 index 00000000..2ce719ce --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBankTransactionAttachment.json @@ -0,0 +1,204 @@ +{ + "name": "GetBankTransactionAttachment", + "fully_qualified_name": "XeroApi.GetBankTransactionAttachment@0.1.0", + "description": "Retrieve an attachment from a bank transaction by filename.\n\nUse this tool to get a specific attachment from a bank transaction using the filename. Ideal for cases where attachments need to be reviewed or downloaded based on their association with bank transactions.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "bank_transaction_id", + "required": true, + "description": "Xero generated unique identifier for a bank transaction. Required to retrieve the correct attachment.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transaction" + }, + "inferrable": true, + "http_endpoint_parameter_name": "BankTransactionID" + }, + { + "name": "attachment_filename", + "required": true, + "description": "Name of the attachment to retrieve from the bank transaction.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "FileName" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "The unique identifier for the Xero tenant associated with the bank transaction.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_mime_type", + "required": true, + "description": "The MIME type of the attachment file to retrieve, such as image/jpg or application/pdf.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBankTransactionAttachmentByFileName'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BankTransactions/{BankTransactionID}/Attachments/{FileName}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "BankTransactionID", + "tool_parameter_name": "bank_transaction_id", + "description": "Xero generated unique identifier for a bank transaction", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transaction" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "FileName", + "tool_parameter_name": "attachment_filename", + "description": "Name of the attachment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBankTransactionHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBankTransactionHistory.json new file mode 100644 index 00000000..2be20b2d --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBankTransactionHistory.json @@ -0,0 +1,140 @@ +{ + "name": "GetBankTransactionHistory", + "fully_qualified_name": "XeroApi.GetBankTransactionHistory@0.1.0", + "description": "Retrieve history of a specific bank transaction by ID.\n\nThis tool fetches the historical details of a particular bank transaction using its unique ID. It should be called when users need to view past records or changes related to a specific transaction.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "bank_transaction_id", + "required": true, + "description": "The unique identifier for a bank transaction generated by Xero. Use this ID to retrieve specific transaction history.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transaction" + }, + "inferrable": true, + "http_endpoint_parameter_name": "BankTransactionID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero unique identifier for the tenant. Required to access tenant-specific data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBankTransactionsHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BankTransactions/{BankTransactionID}/History", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "BankTransactionID", + "tool_parameter_name": "bank_transaction_id", + "description": "Xero generated unique identifier for a bank transaction", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transaction" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBankTransferHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBankTransferHistory.json new file mode 100644 index 00000000..e7b1d69e --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBankTransferHistory.json @@ -0,0 +1,140 @@ +{ + "name": "GetBankTransferHistory", + "fully_qualified_name": "XeroApi.GetBankTransferHistory@0.1.0", + "description": "Retrieve specific bank transfer history by ID.\n\nThis tool is used to get the history of a specific bank transfer using its unique ID. It should be called when detailed transaction records or changes related to a particular bank transfer are needed.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "bank_transfer_id", + "required": true, + "description": "Unique identifier for the Xero bank transfer needed to retrieve its history.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transfer" + }, + "inferrable": true, + "http_endpoint_parameter_name": "BankTransferID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant. Required to specify which tenant's bank transfer history to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBankTransferHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BankTransfers/{BankTransferID}/History", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "BankTransferID", + "tool_parameter_name": "bank_transfer_id", + "description": "Xero generated unique identifier for a bank transfer", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transfer" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBatchPaymentDetails.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBatchPaymentDetails.json new file mode 100644 index 00000000..5083c62c --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBatchPaymentDetails.json @@ -0,0 +1,140 @@ +{ + "name": "GetBatchPaymentDetails", + "fully_qualified_name": "XeroApi.GetBatchPaymentDetails@0.1.0", + "description": "Retrieve details of a specific batch payment by ID.\n\nUse this tool to get information about a specific batch payment by providing its unique ID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "batch_payment_id", + "required": true, + "description": "Unique identifier for the batch payment to retrieve details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for BatchPayment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "BatchPaymentID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique Xero identifier for the tenant, necessary for accessing tenant-specific data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBatchPayment'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BatchPayments/{BatchPaymentID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "BatchPaymentID", + "tool_parameter_name": "batch_payment_id", + "description": "Unique identifier for BatchPayment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for BatchPayment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBrandingThemes.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBrandingThemes.json new file mode 100644 index 00000000..ffb6cbdb --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBrandingThemes.json @@ -0,0 +1,108 @@ +{ + "name": "GetBrandingThemes", + "fully_qualified_name": "XeroApi.GetBrandingThemes@0.1.0", + "description": "Retrieve all branding themes from Xero.\n\nThis tool calls the Xero API to fetch all available branding themes. It should be used when needing a comprehensive list of branding themes for the account.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique identifier for the Xero tenant to retrieve branding themes.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBrandingThemes'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings", + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BrandingThemes", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBudgetSummaryReport.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBudgetSummaryReport.json new file mode 100644 index 00000000..24244d72 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetBudgetSummaryReport.json @@ -0,0 +1,203 @@ +{ + "name": "GetBudgetSummaryReport", + "fully_qualified_name": "XeroApi.GetBudgetSummaryReport@0.1.0", + "description": "Retrieves the budget summary report from Xero.\n\nThis tool calls the Xero endpoint to obtain a detailed budget summary report. Use this when a financial summary of budget allocations is required.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_identifier", + "required": true, + "description": "The unique Xero identifier for the tenant, required for authentication and data retrieval.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "report_date", + "required": false, + "description": "The specific date for the budget summary report in YYYY-MM-DD format, e.g., 2018-03-31.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date for the Bank Summary report e.g. 2018-03-31" + }, + "inferrable": true, + "http_endpoint_parameter_name": "date" + }, + { + "name": "number_of_periods_to_compare", + "required": false, + "description": "The number of periods for comparison, must be an integer between 1 and 12.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of periods to compare (integer between 1 and 12)" + }, + "inferrable": true, + "http_endpoint_parameter_name": "periods" + }, + { + "name": "comparison_timeframe", + "required": false, + "description": "Specify the period size for comparison: 1 for month, 3 for quarter, or 12 for year.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The period size to compare to (1=month, 3=quarter, 12=year)" + }, + "inferrable": true, + "http_endpoint_parameter_name": "timeframe" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getReportBudgetSummary'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.reports.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Reports/BudgetSummary", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "date", + "tool_parameter_name": "report_date", + "description": "The date for the Bank Summary report e.g. 2018-03-31", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date for the Bank Summary report e.g. 2018-03-31" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "periods", + "tool_parameter_name": "number_of_periods_to_compare", + "description": "The number of periods to compare (integer between 1 and 12)", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of periods to compare (integer between 1 and 12)" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "timeframe", + "tool_parameter_name": "comparison_timeframe", + "description": "The period size to compare to (1=month, 3=quarter, 12=year)", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The period size to compare to (1=month, 3=quarter, 12=year)" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCisSettings.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCisSettings.json new file mode 100644 index 00000000..0c08862b --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCisSettings.json @@ -0,0 +1,140 @@ +{ + "name": "GetCisSettings", + "fully_qualified_name": "XeroApi.GetCisSettings@0.1.0", + "description": "Retrieve CIS settings for a Xero organisation.\n\nUse this tool to get the Construction Industry Scheme (CIS) settings for a specific organisation in Xero. Useful for managing or reviewing CIS compliance within the organisation.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "organisation_id", + "required": true, + "description": "The unique Xero identifier for the organisation to retrieve CIS settings for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique Xero identifier for an organisation" + }, + "inferrable": true, + "http_endpoint_parameter_name": "OrganisationID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the Tenant. Required to specify which tenant's CIS settings to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getOrganisationCISSettings'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings", + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Organisation/{OrganisationID}/CISSettings", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "OrganisationID", + "tool_parameter_name": "organisation_id", + "description": "The unique Xero identifier for an organisation", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique Xero identifier for an organisation" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetConnectedTenants.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetConnectedTenants.json new file mode 100644 index 00000000..7e98e7a5 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetConnectedTenants.json @@ -0,0 +1,105 @@ +{ + "name": "GetConnectedTenants", + "fully_qualified_name": "XeroIdentityApi.GetConnectedTenants@0.1.0", + "description": "Fetch active Tenants connections from Xero organization.\n\nUse this tool to retrieve a list of active connections associated with your Xero organization. It should be called when verifying or reviewing the connections currently established with Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "filter_auth_event_id", + "required": false, + "description": "A string used to filter the results by a specific authEventId, narrowing down the connections returned.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by authEventId" + }, + "inferrable": true, + "http_endpoint_parameter_name": "authEventId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getConnections'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/Connections", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "authEventId", + "tool_parameter_name": "filter_auth_event_id", + "description": "Filter by authEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by authEventId" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetContactAttachment.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetContactAttachment.json new file mode 100644 index 00000000..d102fd90 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetContactAttachment.json @@ -0,0 +1,204 @@ +{ + "name": "GetContactAttachment", + "fully_qualified_name": "XeroApi.GetContactAttachment@0.1.0", + "description": "Retrieve a contact's attachment by file name.\n\nFetches a specific attachment associated with a contact using the file name in Xero. Use when you need to access a particular contact's attachment.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_identifier", + "required": true, + "description": "Unique identifier for a contact in Xero to retrieve its specific attachment.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ContactID" + }, + { + "name": "attachment_file_name", + "required": true, + "description": "Specify the name of the attachment to retrieve from the contact.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "FileName" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the Tenant. This is required to specify which tenant's data should be accessed.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_mime_type", + "required": true, + "description": "The MIME type of the attachment file, such as image/jpg or application/pdf.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getContactAttachmentByFileName'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Contacts/{ContactID}/Attachments/{FileName}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ContactID", + "tool_parameter_name": "contact_identifier", + "description": "Unique identifier for a Contact", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "FileName", + "tool_parameter_name": "attachment_file_name", + "description": "Name of the attachment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetContactAttachments.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetContactAttachments.json new file mode 100644 index 00000000..1bc294ad --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetContactAttachments.json @@ -0,0 +1,140 @@ +{ + "name": "GetContactAttachments", + "fully_qualified_name": "XeroApi.GetContactAttachments@0.1.0", + "description": "Retrieve attachments for a Xero contact.\n\nThis tool retrieves all attachments associated with a specific contact within a Xero organisation. Call this tool when you need to access files linked to a contact in Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_id", + "required": true, + "description": "Unique identifier for a contact in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ContactID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "The unique Xero tenant identifier for the organisation.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getContactAttachments'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Contacts/{ContactID}/Attachments", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ContactID", + "tool_parameter_name": "contact_id", + "description": "Unique identifier for a Contact", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetContactCisSettings.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetContactCisSettings.json new file mode 100644 index 00000000..cf24b8d4 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetContactCisSettings.json @@ -0,0 +1,140 @@ +{ + "name": "GetContactCisSettings", + "fully_qualified_name": "XeroApi.GetContactCisSettings@0.1.0", + "description": "Retrieve CIS settings for a Xero contact.\n\nUse this tool to obtain the CIS (Construction Industry Scheme) settings for a specific contact within a Xero organization. This is useful for businesses managing construction-related compliance and financial data.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_identifier", + "required": true, + "description": "Unique identifier for a specific contact in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ContactID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant. Required for accessing the correct organization within Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getContactCISSettings'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings", + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Contacts/{ContactID}/CISSettings", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ContactID", + "tool_parameter_name": "contact_identifier", + "description": "Unique identifier for a Contact", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetContactHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetContactHistory.json new file mode 100644 index 00000000..ae9c3ccf --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetContactHistory.json @@ -0,0 +1,140 @@ +{ + "name": "GetContactHistory", + "fully_qualified_name": "XeroApi.GetContactHistory@0.1.0", + "description": "Retrieve history records for a specific contact.\n\nUse this tool to obtain historical interaction records for a specific contact, which can provide insights into past communications and actions.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_id", + "required": true, + "description": "Unique identifier for a contact to retrieve their history records.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ContactID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "The unique Xero identifier for the tenant. Required to access specific tenant data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getContactHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.contacts.read", + "accounting.contacts" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Contacts/{ContactID}/History", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ContactID", + "tool_parameter_name": "contact_id", + "description": "Unique identifier for a Contact", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNoteAttachment.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNoteAttachment.json new file mode 100644 index 00000000..91827164 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNoteAttachment.json @@ -0,0 +1,204 @@ +{ + "name": "GetCreditNoteAttachment", + "fully_qualified_name": "XeroApi.GetCreditNoteAttachment@0.1.0", + "description": "Retrieve specific attachment from a credit note by ID.\n\nUse this tool to get an attachment from a credit note using the unique attachment ID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "credit_note_id", + "required": true, + "description": "Unique identifier for the credit note you want to retrieve an attachment from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Credit Note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "CreditNoteID" + }, + { + "name": "attachment_id", + "required": true, + "description": "Unique identifier for the attachment object to be retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AttachmentID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the Tenant. It's required to specify which organization to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_mime_type", + "required": true, + "description": "The MIME type of the attachment file to retrieve, such as image/jpg or application/pdf.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getCreditNoteAttachmentById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/CreditNotes/{CreditNoteID}/Attachments/{AttachmentID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "CreditNoteID", + "tool_parameter_name": "credit_note_id", + "description": "Unique identifier for a Credit Note", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Credit Note" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "AttachmentID", + "tool_parameter_name": "attachment_id", + "description": "Unique identifier for Attachment object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNoteAttachments.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNoteAttachments.json new file mode 100644 index 00000000..6bc48f43 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNoteAttachments.json @@ -0,0 +1,140 @@ +{ + "name": "GetCreditNoteAttachments", + "fully_qualified_name": "XeroApi.GetCreditNoteAttachments@0.1.0", + "description": "Fetch attachments for a specific credit note from Xero.\n\nUse this tool to retrieve attachments associated with a specific credit note in Xero. Call this tool when you need details or files attached to a credit note.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "credit_note_id", + "required": true, + "description": "Unique identifier for a specific Credit Note in Xero to fetch attachments.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Credit Note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "CreditNoteID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant. Required to specify which tenant's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getCreditNoteAttachments'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/CreditNotes/{CreditNoteID}/Attachments", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "CreditNoteID", + "tool_parameter_name": "credit_note_id", + "description": "Unique identifier for a Credit Note", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Credit Note" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNoteHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNoteHistory.json new file mode 100644 index 00000000..159c0aa9 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNoteHistory.json @@ -0,0 +1,140 @@ +{ + "name": "GetCreditNoteHistory", + "fully_qualified_name": "XeroApi.GetCreditNoteHistory@0.1.0", + "description": "Retrieve history records of a specific credit note.\n\nUse this tool to obtain detailed history records for a specific credit note by providing its ID. It helps in tracking changes and updates made to the credit note over time.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "credit_note_id", + "required": true, + "description": "Unique identifier for a specific credit note. Required to retrieve its history records.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Credit Note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "CreditNoteID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique identifier for a Xero tenant. Required to access tenant-specific data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getCreditNoteHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/CreditNotes/{CreditNoteID}/History", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "CreditNoteID", + "tool_parameter_name": "credit_note_id", + "description": "Unique identifier for a Credit Note", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Credit Note" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNotePdf.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNotePdf.json new file mode 100644 index 00000000..871d1ef6 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNotePdf.json @@ -0,0 +1,140 @@ +{ + "name": "GetCreditNotePdf", + "fully_qualified_name": "XeroApi.GetCreditNotePdf@0.1.0", + "description": "Retrieve a credit note as a PDF file.\n\nUse this tool to fetch a specific credit note in PDF format using its ID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "credit_note_id", + "required": true, + "description": "Unique identifier for the credit note to retrieve as a PDF.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Credit Note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "CreditNoteID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant to retrieve the specific credit note PDF.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getCreditNoteAsPdf'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/CreditNotes/{CreditNoteID}/pdf", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "CreditNoteID", + "tool_parameter_name": "credit_note_id", + "description": "Unique identifier for a Credit Note", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Credit Note" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNotes.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNotes.json new file mode 100644 index 00000000..fa343731 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetCreditNotes.json @@ -0,0 +1,300 @@ +{ + "name": "GetCreditNotes", + "fully_qualified_name": "XeroApi.GetCreditNotes@0.1.0", + "description": "Retrieve credit notes from the Xero service.\n\nUse this tool to obtain credit notes from Xero. Ideal for financial checks or reconciliations requiring credit note information.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tenant_identifier", + "required": true, + "description": "The unique identifier for the Xero tenant. Required to specify which tenant's credit notes to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_by_element", + "required": false, + "description": "A string to filter credit notes by specific criteria using any element.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "sort_credit_notes", + "required": false, + "description": "Specifies the order to retrieve credit notes, e.g., by date or amount.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "page_number", + "required": false, + "description": "The page number to retrieve. Each page returns up to 100 credit notes with line items.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. page=1 \u2013 Up to 100 credit notes will be returned in a single API call with line items shown for each credit note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page" + }, + { + "name": "unit_decimal_places", + "required": false, + "description": "Specify the number of decimal places for unit amounts. For example, use 4 for four decimal places.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "inferrable": true, + "http_endpoint_parameter_name": "unitdp" + }, + { + "name": "number_of_records_per_page", + "required": false, + "description": "Defines the number of credit notes to retrieve per page from the Xero service. This helps control the size of each result set.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of records to retrieve per page" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pageSize" + }, + { + "name": "modified_since_timestamp", + "required": false, + "description": "Only retrieve records created or modified after this timestamp (in ISO 8601 format).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "inferrable": true, + "http_endpoint_parameter_name": "If-Modified-Since" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getCreditNotes'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/CreditNotes", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_by_element", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "sort_credit_notes", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page", + "tool_parameter_name": "page_number", + "description": "e.g. page=1 \u2013 Up to 100 credit notes will be returned in a single API call with line items shown for each credit note", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. page=1 \u2013 Up to 100 credit notes will be returned in a single API call with line items shown for each credit note" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "unitdp", + "tool_parameter_name": "unit_decimal_places", + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "pageSize", + "tool_parameter_name": "number_of_records_per_page", + "description": "Number of records to retrieve per page", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of records to retrieve per page" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "If-Modified-Since", + "tool_parameter_name": "modified_since_timestamp", + "description": "Only records created or modified since this timestamp will be returned", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetDraftExpenseReceipts.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetDraftExpenseReceipts.json new file mode 100644 index 00000000..c59a4617 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetDraftExpenseReceipts.json @@ -0,0 +1,236 @@ +{ + "name": "GetDraftExpenseReceipts", + "fully_qualified_name": "XeroApi.GetDraftExpenseReceipts@0.1.0", + "description": "Retrieve draft expense claim receipts from Xero.\n\nThis tool retrieves draft expense receipts for any user from Xero. It should be called when you need to access draft expense claims.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique identifier for a Xero tenant. Used to specify which tenant's data to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_condition", + "required": false, + "description": "A string to filter draft expense receipts based on specified criteria.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "order_receipts_by", + "required": false, + "description": "Specify the attribute by which to order the receipts. For example, by date or amount.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "unit_decimal_places", + "required": false, + "description": "Specifies the number of decimal places for unit amounts. For example, set to 4 for four decimal places.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "inferrable": true, + "http_endpoint_parameter_name": "unitdp" + }, + { + "name": "modified_since_timestamp", + "required": false, + "description": "A timestamp to filter records updated or created since this date. Format should be in ISO 8601, e.g., '2023-10-10T00:00:00Z'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "inferrable": true, + "http_endpoint_parameter_name": "If-Modified-Since" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getReceipts'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Receipts", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_condition", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_receipts_by", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "unitdp", + "tool_parameter_name": "unit_decimal_places", + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "If-Modified-Since", + "tool_parameter_name": "modified_since_timestamp", + "description": "Only records created or modified since this timestamp will be returned", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetExpenseReceiptAttachment.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetExpenseReceiptAttachment.json new file mode 100644 index 00000000..f9f3a384 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetExpenseReceiptAttachment.json @@ -0,0 +1,204 @@ +{ + "name": "GetExpenseReceiptAttachment", + "fully_qualified_name": "XeroApi.GetExpenseReceiptAttachment@0.1.0", + "description": "Retrieve an attachment from a receipt by file name.\n\nThis tool retrieves a specific attachment from an expense claim receipt using the file name. It should be called when you need to access a specific attachment associated with a receipt in the Xero platform.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "receipt_id", + "required": true, + "description": "The unique identifier for a specific expense receipt. This is used to locate the correct receipt attachment.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Receipt" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ReceiptID" + }, + { + "name": "attachment_file_name", + "required": true, + "description": "The name of the attachment to retrieve from the expense claim receipt.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "FileName" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the Tenant. Required to specify the organization context in Xero from which to retrieve the attachment.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_mime_type", + "required": true, + "description": "The MIME type of the attachment file, such as image/jpg or application/pdf, that you are retrieving from the receipt.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getReceiptAttachmentByFileName'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Receipts/{ReceiptID}/Attachments/{FileName}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ReceiptID", + "tool_parameter_name": "receipt_id", + "description": "Unique identifier for a Receipt", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Receipt" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "FileName", + "tool_parameter_name": "attachment_file_name", + "description": "Name of the attachment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetFinancialJournals.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetFinancialJournals.json new file mode 100644 index 00000000..c879f7f5 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetFinancialJournals.json @@ -0,0 +1,203 @@ +{ + "name": "GetFinancialJournals", + "fully_qualified_name": "XeroApi.GetFinancialJournals@0.1.0", + "description": "Retrieve financial journal entries from Xero.\n\nUse this tool to access financial journal entries recorded in Xero. It should be called when detailed accounting journal information is needed for financial analysis or record-keeping.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tenant_identifier", + "required": true, + "description": "The unique Xero identifier for the tenant. Required to specify which tenant's journals are retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "journal_number_offset", + "required": false, + "description": "Specify the journal number offset. Journals with a number greater than this will be returned.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Offset by a specified journal number. e.g. journals with a JournalNumber greater than the offset will be returned" + }, + "inferrable": true, + "http_endpoint_parameter_name": "offset" + }, + { + "name": "modified_since_timestamp", + "required": false, + "description": "Return records created or modified since this timestamp. Use a string format like 'YYYY-MM-DDTHH:MM:SSZ'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "inferrable": true, + "http_endpoint_parameter_name": "If-Modified-Since" + }, + { + "name": "retrieve_cash_basis_journals", + "required": false, + "description": "Set to true to retrieve journals on a cash basis. Defaults to false for accrual basis.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter to retrieve journals on a cash basis. Journals are returned on an accrual basis by default." + }, + "inferrable": true, + "http_endpoint_parameter_name": "paymentsOnly" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getJournals'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.journals.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Journals", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "offset", + "tool_parameter_name": "journal_number_offset", + "description": "Offset by a specified journal number. e.g. journals with a JournalNumber greater than the offset will be returned", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Offset by a specified journal number. e.g. journals with a JournalNumber greater than the offset will be returned" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "paymentsOnly", + "tool_parameter_name": "retrieve_cash_basis_journals", + "description": "Filter to retrieve journals on a cash basis. Journals are returned on an accrual basis by default.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter to retrieve journals on a cash basis. Journals are returned on an accrual basis by default." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "If-Modified-Since", + "tool_parameter_name": "modified_since_timestamp", + "description": "Only records created or modified since this timestamp will be returned", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetInvoiceAttachment.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetInvoiceAttachment.json new file mode 100644 index 00000000..517d0aff --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetInvoiceAttachment.json @@ -0,0 +1,204 @@ +{ + "name": "GetInvoiceAttachment", + "fully_qualified_name": "XeroApi.GetInvoiceAttachment@0.1.0", + "description": "Retrieve an attachment from an invoice by filename.\n\nUse this tool to obtain a specific attachment from an invoice or purchase bill by specifying the filename.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invoice_id", + "required": true, + "description": "Unique identifier for the invoice from which to retrieve the attachment.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Invoice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "InvoiceID" + }, + { + "name": "attachment_file_name", + "required": true, + "description": "Specify the exact name of the attachment to retrieve from the invoice or purchase bill.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "FileName" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the Tenant to specify which organization's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_mime_type", + "required": true, + "description": "The MIME type of the attachment file being retrieved, such as image/jpg or application/pdf.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getInvoiceAttachmentByFileName'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Invoices/{InvoiceID}/Attachments/{FileName}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "InvoiceID", + "tool_parameter_name": "invoice_id", + "description": "Unique identifier for an Invoice", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Invoice" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "FileName", + "tool_parameter_name": "attachment_file_name", + "description": "Name of the attachment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetInvoiceDetails.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetInvoiceDetails.json new file mode 100644 index 00000000..015a9e29 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetInvoiceDetails.json @@ -0,0 +1,172 @@ +{ + "name": "GetInvoiceDetails", + "fully_qualified_name": "XeroApi.GetInvoiceDetails@0.1.0", + "description": "Retrieve a specific invoice using its unique ID.\n\nUse this tool to get detailed information about a specific sales invoice or purchase bill by providing its unique invoice ID. This can be helpful when checking invoice details in the Xero accounting system.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invoice_identifier", + "required": true, + "description": "Unique identifier for the invoice to be retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Invoice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "InvoiceID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Xero identifier for the Tenant. Used to specify which tenant's invoice is retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "unit_decimal_places", + "required": false, + "description": "Specify the number of decimal places to use for unit amounts, e.g., 4 for four decimal places.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "inferrable": true, + "http_endpoint_parameter_name": "unitdp" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getInvoice'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Invoices/{InvoiceID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "unitdp", + "tool_parameter_name": "unit_decimal_places", + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "InvoiceID", + "tool_parameter_name": "invoice_identifier", + "description": "Unique identifier for an Invoice", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Invoice" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetInvoiceReminderSettings.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetInvoiceReminderSettings.json new file mode 100644 index 00000000..8d44525a --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetInvoiceReminderSettings.json @@ -0,0 +1,108 @@ +{ + "name": "GetInvoiceReminderSettings", + "fully_qualified_name": "XeroApi.GetInvoiceReminderSettings@0.1.0", + "description": "Retrieve invoice reminder settings from Xero.\n\nThis tool retrieves the current settings for invoice reminders from Xero. It should be called when you need to check or manage how invoice reminders are configured.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique identifier for the Xero tenant. This is required to access specific tenant data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getInvoiceReminders'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings", + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/InvoiceReminders/Settings", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetItemHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetItemHistory.json new file mode 100644 index 00000000..32a64a94 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetItemHistory.json @@ -0,0 +1,140 @@ +{ + "name": "GetItemHistory", + "fully_qualified_name": "XeroApi.GetItemHistory@0.1.0", + "description": "Retrieve history for a specific item from Xero.\n\nThis tool retrieves the historical details of a specific item using its ItemID. Use it to access the change history or modifications made to an item within the Xero platform.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "item_id", + "required": true, + "description": "Unique identifier for the item whose history you want to retrieve in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Item" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ItemID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Provide the unique Xero identifier associated with the Tenant to access its data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getItemHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings", + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Items/{ItemID}/History", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ItemID", + "tool_parameter_name": "item_id", + "description": "Unique identifier for an Item", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Item" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetItems.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetItems.json new file mode 100644 index 00000000..0b50fd23 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetItems.json @@ -0,0 +1,236 @@ +{ + "name": "GetItems", + "fully_qualified_name": "XeroApi.GetItems@0.1.0", + "description": "Retrieve items from Xero.\n\nThis tool fetches a list of items from the Xero service, typically used for inventory or sales purposes.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique identifier for a Xero tenant. Required to specify which tenant's data to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_criteria", + "required": false, + "description": "Filter items by specific criteria using any element such as field names or conditions.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "order_by_element", + "required": false, + "description": "Specify the sorting order of items by any element, such as name or price.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "unit_decimal_places", + "required": false, + "description": "Defines the number of decimal places for unit amounts, e.g., 4 for four decimal places.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "inferrable": true, + "http_endpoint_parameter_name": "unitdp" + }, + { + "name": "modified_since_timestamp", + "required": false, + "description": "Fetch records created or modified since the provided timestamp (e.g., '2023-01-01T00:00:00Z').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "inferrable": true, + "http_endpoint_parameter_name": "If-Modified-Since" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getItems'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings", + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Items", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_criteria", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_by_element", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "unitdp", + "tool_parameter_name": "unit_decimal_places", + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "If-Modified-Since", + "tool_parameter_name": "modified_since_timestamp", + "description": "Only records created or modified since this timestamp will be returned", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetJournalAttachmentByFilename.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetJournalAttachmentByFilename.json new file mode 100644 index 00000000..0c735b4a --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetJournalAttachmentByFilename.json @@ -0,0 +1,204 @@ +{ + "name": "GetJournalAttachmentByFilename", + "fully_qualified_name": "XeroApi.GetJournalAttachmentByFilename@0.1.0", + "description": "Retrieve a manual journal attachment by file name.\n\nUse this tool to get a specific attachment from a manual journal using its file name. It requires the manual journal ID and the file name to retrieve the attachment data.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "manual_journal_id", + "required": true, + "description": "Unique identifier for the manual journal. Required to retrieve the specific attachment.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a ManualJournal" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ManualJournalID" + }, + { + "name": "attachment_file_name", + "required": true, + "description": "The name of the attachment file to retrieve from the manual journal.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "FileName" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "The unique identifier for the Xero tenant, used to specify the particular organization's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_file_mime_type", + "required": true, + "description": "The MIME type of the attachment file, such as image/jpeg or application/pdf.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getManualJournalAttachmentByFileName'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/ManualJournals/{ManualJournalID}/Attachments/{FileName}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ManualJournalID", + "tool_parameter_name": "manual_journal_id", + "description": "Unique identifier for a ManualJournal", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a ManualJournal" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "FileName", + "tool_parameter_name": "attachment_file_name", + "description": "Name of the attachment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_file_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetLinkedTransaction.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetLinkedTransaction.json new file mode 100644 index 00000000..411d9beb --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetLinkedTransaction.json @@ -0,0 +1,140 @@ +{ + "name": "GetLinkedTransaction", + "fully_qualified_name": "XeroApi.GetLinkedTransaction@0.1.0", + "description": "Retrieve specific linked transaction details by ID.\n\nUse this tool to get detailed information about a specific linked transaction, such as billable expenses, using a unique transaction ID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "linked_transaction_id", + "required": true, + "description": "Unique identifier for the linked transaction to be retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a LinkedTransaction" + }, + "inferrable": true, + "http_endpoint_parameter_name": "LinkedTransactionID" + }, + { + "name": "tenant_id", + "required": true, + "description": "Xero tenant identifier for accessing the correct organization.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getLinkedTransaction'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/LinkedTransactions/{LinkedTransactionID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "LinkedTransactionID", + "tool_parameter_name": "linked_transaction_id", + "description": "Unique identifier for a LinkedTransaction", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a LinkedTransaction" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetManualJournalHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetManualJournalHistory.json new file mode 100644 index 00000000..d45373ca --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetManualJournalHistory.json @@ -0,0 +1,140 @@ +{ + "name": "GetManualJournalHistory", + "fully_qualified_name": "XeroApi.GetManualJournalHistory@0.1.0", + "description": "Retrieve history for a specific manual journal.\n\nThis tool fetches the historical details related to a specific manual journal by its ID from Xero, providing insights into past changes and actions.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "manual_journal_id", + "required": true, + "description": "Unique identifier for the manual journal. Used to retrieve its historical details from Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a ManualJournal" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ManualJournalID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Xero identifier for a specific tenant. This is required to identify which tenant's data to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getManualJournalsHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/ManualJournals/{ManualJournalID}/History", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ManualJournalID", + "tool_parameter_name": "manual_journal_id", + "description": "Unique identifier for a ManualJournal", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a ManualJournal" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetOverpaymentHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetOverpaymentHistory.json new file mode 100644 index 00000000..395a7ceb --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetOverpaymentHistory.json @@ -0,0 +1,140 @@ +{ + "name": "GetOverpaymentHistory", + "fully_qualified_name": "XeroApi.GetOverpaymentHistory@0.1.0", + "description": "Retrieve history records for a specific overpayment in Xero.\n\nUse this tool to obtain detailed history records related to a specific overpayment, identified by the Overpayment ID, within the Xero platform.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "overpayment_id", + "required": true, + "description": "Unique identifier for a specific overpayment in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Overpayment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "OverpaymentID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Unique identifier for the tenant in Xero. Used to specify which tenant's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getOverpaymentHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Overpayments/{OverpaymentID}/History", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "OverpaymentID", + "tool_parameter_name": "overpayment_id", + "description": "Unique identifier for a Overpayment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Overpayment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetPaymentServicesForBrandingTheme.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetPaymentServicesForBrandingTheme.json new file mode 100644 index 00000000..e2cb53b0 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetPaymentServicesForBrandingTheme.json @@ -0,0 +1,139 @@ +{ + "name": "GetPaymentServicesForBrandingTheme", + "fully_qualified_name": "XeroApi.GetPaymentServicesForBrandingTheme@0.1.0", + "description": "Retrieve payment services for a specific branding theme.\n\nThis tool retrieves the payment services linked to a given branding theme by its ID. Call this tool when you need to access payment service information tied to particular branding configurations.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "branding_theme_id", + "required": true, + "description": "Unique identifier for a Branding Theme to retrieve associated payment services.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Branding Theme" + }, + "inferrable": true, + "http_endpoint_parameter_name": "BrandingThemeID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Xero identifier for the Tenant. This unique ID is required to specify which tenant's data is being accessed.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBrandingThemePaymentServices'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "paymentservices" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BrandingThemes/{BrandingThemeID}/PaymentServices", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "BrandingThemeID", + "tool_parameter_name": "branding_theme_id", + "description": "Unique identifier for a Branding Theme", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Branding Theme" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetPrepaymentDetails.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetPrepaymentDetails.json new file mode 100644 index 00000000..117bc1a1 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetPrepaymentDetails.json @@ -0,0 +1,140 @@ +{ + "name": "GetPrepaymentDetails", + "fully_qualified_name": "XeroApi.GetPrepaymentDetails@0.1.0", + "description": "Retrieve details of a specified prepayment from Xero.\n\nUse this tool to obtain information on a specific prepayment by providing the PrepaymentID. Ideal for checking prepayment details within the Xero accounting system.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "prepayment_id", + "required": true, + "description": "The unique identifier for the prepayment you want to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a PrePayment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "PrepaymentID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique Xero identifier for the tenant. Required to retrieve specific prepayment data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getPrepayment'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Prepayments/{PrepaymentID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "PrepaymentID", + "tool_parameter_name": "prepayment_id", + "description": "Unique identifier for a PrePayment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a PrePayment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetPrepaymentHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetPrepaymentHistory.json new file mode 100644 index 00000000..6457a6bc --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetPrepaymentHistory.json @@ -0,0 +1,140 @@ +{ + "name": "GetPrepaymentHistory", + "fully_qualified_name": "XeroApi.GetPrepaymentHistory@0.1.0", + "description": "Retrieve history for a specific prepayment.\n\nUse this tool to obtain the historical records associated with a specific prepayment in Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "prepayment_id", + "required": true, + "description": "Unique identifier for the prepayment to retrieve its history.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a PrePayment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "PrepaymentID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Unique identifier for the Xero tenant, required to access its data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getPrepaymentHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Prepayments/{PrepaymentID}/History", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "PrepaymentID", + "tool_parameter_name": "prepayment_id", + "description": "Unique identifier for a PrePayment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a PrePayment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetProfitAndLossReport.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetProfitAndLossReport.json new file mode 100644 index 00000000..61325974 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetProfitAndLossReport.json @@ -0,0 +1,435 @@ +{ + "name": "GetProfitAndLossReport", + "fully_qualified_name": "XeroApi.GetProfitAndLossReport@0.1.0", + "description": "Retrieve profit and loss report from Xero.\n\nCall this tool to obtain detailed profit and loss reports for financial analysis.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tenant_identifier", + "required": true, + "description": "The Xero identifier for the tenant. Required to specify which tenant's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "from_date", + "required": false, + "description": "Filter the report by the starting date in YYYY-MM-DD format, e.g., 2021-02-01.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "filter by the from date of the report e.g. 2021-02-01" + }, + "inferrable": true, + "http_endpoint_parameter_name": "fromDate" + }, + { + "name": "end_date", + "required": false, + "description": "Filter by the end date of the report in YYYY-MM-DD format, e.g., 2021-02-28.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "filter by the to date of the report e.g. 2021-02-28" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toDate" + }, + { + "name": "number_of_comparison_periods", + "required": false, + "description": "The number of periods to compare, must be an integer between 1 and 12.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of periods to compare (integer between 1 and 12)" + }, + "inferrable": true, + "http_endpoint_parameter_name": "periods" + }, + { + "name": "comparison_timeframe", + "required": false, + "description": "The period size to compare to for the report. Options are MONTH, QUARTER, or YEAR.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "MONTH", + "QUARTER", + "YEAR" + ], + "properties": null, + "inner_properties": null, + "description": "The period size to compare to (MONTH, QUARTER, YEAR)" + }, + "inferrable": true, + "http_endpoint_parameter_name": "timeframe" + }, + { + "name": "tracking_category_id", + "required": false, + "description": "The first tracking category ID for the Profit and Loss report filter. Expect a string representing the tracking category identifier.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The trackingCategory 1 for the ProfitAndLoss report" + }, + "inferrable": true, + "http_endpoint_parameter_name": "trackingCategoryID" + }, + { + "name": "secondary_tracking_category_id", + "required": false, + "description": "The ID of the second tracking category for the Profit and Loss report.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The trackingCategory 2 for the ProfitAndLoss report" + }, + "inferrable": true, + "http_endpoint_parameter_name": "trackingCategoryID2" + }, + { + "name": "tracking_option_1_id", + "required": false, + "description": "The identifier for the first tracking option in the Profit and Loss report.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The tracking option 1 for the ProfitAndLoss report" + }, + "inferrable": true, + "http_endpoint_parameter_name": "trackingOptionID" + }, + { + "name": "tracking_option_id_2", + "required": false, + "description": "The second tracking option identifier for filtering the Profit and Loss report.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The tracking option 2 for the ProfitAndLoss report" + }, + "inferrable": true, + "http_endpoint_parameter_name": "trackingOptionID2" + }, + { + "name": "return_standard_layout", + "required": false, + "description": "Set to true to return the Profit and Loss report in the standard layout.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return the standard layout for the ProfitAndLoss report" + }, + "inferrable": true, + "http_endpoint_parameter_name": "standardLayout" + }, + { + "name": "return_cash_basis_only", + "required": false, + "description": "Specify true to return the Profit and Loss report on a cash only basis.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return cash only basis for the ProfitAndLoss report" + }, + "inferrable": true, + "http_endpoint_parameter_name": "paymentsOnly" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getReportProfitAndLoss'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.reports.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Reports/ProfitAndLoss", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "fromDate", + "tool_parameter_name": "from_date", + "description": "filter by the from date of the report e.g. 2021-02-01", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "filter by the from date of the report e.g. 2021-02-01" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "toDate", + "tool_parameter_name": "end_date", + "description": "filter by the to date of the report e.g. 2021-02-28", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "filter by the to date of the report e.g. 2021-02-28" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "periods", + "tool_parameter_name": "number_of_comparison_periods", + "description": "The number of periods to compare (integer between 1 and 12)", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of periods to compare (integer between 1 and 12)" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "timeframe", + "tool_parameter_name": "comparison_timeframe", + "description": "The period size to compare to (MONTH, QUARTER, YEAR)", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "MONTH", + "QUARTER", + "YEAR" + ], + "properties": null, + "inner_properties": null, + "description": "The period size to compare to (MONTH, QUARTER, YEAR)" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "trackingCategoryID", + "tool_parameter_name": "tracking_category_id", + "description": "The trackingCategory 1 for the ProfitAndLoss report", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The trackingCategory 1 for the ProfitAndLoss report" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "trackingCategoryID2", + "tool_parameter_name": "secondary_tracking_category_id", + "description": "The trackingCategory 2 for the ProfitAndLoss report", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The trackingCategory 2 for the ProfitAndLoss report" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "trackingOptionID", + "tool_parameter_name": "tracking_option_1_id", + "description": "The tracking option 1 for the ProfitAndLoss report", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The tracking option 1 for the ProfitAndLoss report" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "trackingOptionID2", + "tool_parameter_name": "tracking_option_id_2", + "description": "The tracking option 2 for the ProfitAndLoss report", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The tracking option 2 for the ProfitAndLoss report" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "standardLayout", + "tool_parameter_name": "return_standard_layout", + "description": "Return the standard layout for the ProfitAndLoss report", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return the standard layout for the ProfitAndLoss report" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "paymentsOnly", + "tool_parameter_name": "return_cash_basis_only", + "description": "Return cash only basis for the ProfitAndLoss report", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return cash only basis for the ProfitAndLoss report" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetPurchaseOrderPdf.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetPurchaseOrderPdf.json new file mode 100644 index 00000000..a19a6ec5 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetPurchaseOrderPdf.json @@ -0,0 +1,140 @@ +{ + "name": "GetPurchaseOrderPdf", + "fully_qualified_name": "XeroApi.GetPurchaseOrderPdf@0.1.0", + "description": "Retrieve a purchase order as a PDF using its ID.\n\nUse this tool to obtain a specific purchase order in PDF format by providing its unique ID. Useful for accessing purchase order details in a document format.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "purchase_order_id", + "required": true, + "description": "Unique identifier for a purchase order to retrieve it as a PDF.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Purchase Order" + }, + "inferrable": true, + "http_endpoint_parameter_name": "PurchaseOrderID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "The Xero identifier for the Tenant. Required to specify which tenant's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getPurchaseOrderAsPdf'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/PurchaseOrders/{PurchaseOrderID}/pdf", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "PurchaseOrderID", + "tool_parameter_name": "purchase_order_id", + "description": "Unique identifier for an Purchase Order", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Purchase Order" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetQuoteAttachment.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetQuoteAttachment.json new file mode 100644 index 00000000..80bcbe3c --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetQuoteAttachment.json @@ -0,0 +1,204 @@ +{ + "name": "GetQuoteAttachment", + "fully_qualified_name": "XeroApi.GetQuoteAttachment@0.1.0", + "description": "Retrieve a specific attachment from a quote by ID.\n\nUse this tool to retrieve a specific attachment from a quote by providing the unique Quote ID and Attachment ID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "quote_id", + "required": true, + "description": "Unique identifier for a quote. Used to specify which quote the attachment belongs to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Quote" + }, + "inferrable": true, + "http_endpoint_parameter_name": "QuoteID" + }, + { + "name": "attachment_id", + "required": true, + "description": "Unique identifier for the attachment object you wish to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AttachmentID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "The unique Xero identifier for the tenant required to access the attachment.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_content_type", + "required": true, + "description": "The MIME type of the attachment file to retrieve, such as image/jpeg or application/pdf.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getQuoteAttachmentById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Quotes/{QuoteID}/Attachments/{AttachmentID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "QuoteID", + "tool_parameter_name": "quote_id", + "description": "Unique identifier for an Quote", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Quote" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "AttachmentID", + "tool_parameter_name": "attachment_id", + "description": "Unique identifier for Attachment object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_content_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetReceiptAttachments.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetReceiptAttachments.json new file mode 100644 index 00000000..cd6ad6fc --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetReceiptAttachments.json @@ -0,0 +1,140 @@ +{ + "name": "GetReceiptAttachments", + "fully_qualified_name": "XeroApi.GetReceiptAttachments@0.1.0", + "description": "Retrieve attachments for a specific expense claim receipt.\n\nUse this tool to obtain all attachments related to a specific expense claim receipt by providing the receipt ID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "receipt_id", + "required": true, + "description": "Unique identifier for the expense claim receipt to retrieve attachments.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Receipt" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ReceiptID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "The unique Xero identifier for the tenant. Required to access tenant-specific data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getReceiptAttachments'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Receipts/{ReceiptID}/Attachments", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ReceiptID", + "tool_parameter_name": "receipt_id", + "description": "Unique identifier for a Receipt", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Receipt" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetRepeatingInvoice.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetRepeatingInvoice.json new file mode 100644 index 00000000..a05575f2 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetRepeatingInvoice.json @@ -0,0 +1,140 @@ +{ + "name": "GetRepeatingInvoice", + "fully_qualified_name": "XeroApi.GetRepeatingInvoice@0.1.0", + "description": "Retrieve a specific repeating invoice using its unique ID.\n\nUse this tool to retrieve detailed information about a specific repeating invoice by providing its unique ID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "repeating_invoice_id", + "required": true, + "description": "Unique identifier for the specific repeating invoice to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Repeating Invoice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "RepeatingInvoiceID" + }, + { + "name": "tenant_id", + "required": true, + "description": "Xero tenant identifier required to access a specific tenant's data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getRepeatingInvoice'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/RepeatingInvoices/{RepeatingInvoiceID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "RepeatingInvoiceID", + "tool_parameter_name": "repeating_invoice_id", + "description": "Unique identifier for a Repeating Invoice", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Repeating Invoice" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetRepeatingInvoiceHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetRepeatingInvoiceHistory.json new file mode 100644 index 00000000..2c58e448 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetRepeatingInvoiceHistory.json @@ -0,0 +1,140 @@ +{ + "name": "GetRepeatingInvoiceHistory", + "fully_qualified_name": "XeroApi.GetRepeatingInvoiceHistory@0.1.0", + "description": "Retrieve history record for a specific repeating invoice.\n\nUse this tool to access the historical details of a specified repeating invoice. Ideal for understanding past changes, updates, or notes associated with the invoice in Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "repeating_invoice_id", + "required": true, + "description": "Unique identifier for the specific repeating invoice to retrieve history for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Repeating Invoice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "RepeatingInvoiceID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique identifier for the Xero tenant associated with the repeating invoice.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getRepeatingInvoiceHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/RepeatingInvoices/{RepeatingInvoiceID}/History", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "RepeatingInvoiceID", + "tool_parameter_name": "repeating_invoice_id", + "description": "Unique identifier for a Repeating Invoice", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Repeating Invoice" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetRepeatingInvoices.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetRepeatingInvoices.json new file mode 100644 index 00000000..edeabe75 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetRepeatingInvoices.json @@ -0,0 +1,172 @@ +{ + "name": "GetRepeatingInvoices", + "fully_qualified_name": "XeroApi.GetRepeatingInvoices@0.1.0", + "description": "Retrieve repeating invoices from Xero.\n\nUse this tool to get a list of repeating invoices from the Xero platform. It is helpful for managing and reviewing recurring billing information.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tenant_identifier", + "required": true, + "description": "The unique identifier for the tenant in Xero. Required to retrieve specific tenant data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_by_element", + "required": false, + "description": "Filter invoices using a specific element condition. Use Xero's query language for filtering expressions.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "order_by_element", + "required": false, + "description": "Specify the element to order the repeating invoices by. It accepts a string indicating the element to sort by.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getRepeatingInvoices'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/RepeatingInvoices", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_by_element", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_by_element", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetTaxRateByTaxType.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetTaxRateByTaxType.json new file mode 100644 index 00000000..021f3e8b --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetTaxRateByTaxType.json @@ -0,0 +1,140 @@ +{ + "name": "GetTaxRateByTaxType", + "fully_qualified_name": "XeroApi.GetTaxRateByTaxType@0.1.0", + "description": "Retrieve a specific tax rate using a TaxType code.\n\nUse this tool to obtain a particular tax rate by providing a specific TaxType code. It is useful for retrieving tax rates in financial calculations or reports.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tax_type_code", + "required": true, + "description": "A valid TaxType code used to retrieve the specific tax rate.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A valid TaxType code" + }, + "inferrable": true, + "http_endpoint_parameter_name": "TaxType" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant. Required to specify which tenant's data is being accessed.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getTaxRateByTaxType'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings", + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/TaxRates/{TaxType}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "TaxType", + "tool_parameter_name": "tax_type_code", + "description": "A valid TaxType code", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A valid TaxType code" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetTrackingCategories.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetTrackingCategories.json new file mode 100644 index 00000000..337445e2 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetTrackingCategories.json @@ -0,0 +1,204 @@ +{ + "name": "GetTrackingCategories", + "fully_qualified_name": "XeroApi.GetTrackingCategories@0.1.0", + "description": "Retrieve tracking categories and options from Xero.\n\nUse this tool to get tracking categories and their options from Xero. Useful for financial tracking and categorization tasks.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Unique identifier for the Xero tenant. Required to specify the tenant from which tracking categories should be retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_conditions", + "required": false, + "description": "String to filter tracking categories by specific conditions.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "order_by_element", + "required": false, + "description": "Specify the element to order the tracking categories and options by.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "include_archived_categories", + "required": false, + "description": "Set to true to include categories and options with a status of ARCHIVED in the response.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. includeArchived=true - Categories and options with a status of ARCHIVED will be included in the response" + }, + "inferrable": true, + "http_endpoint_parameter_name": "includeArchived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getTrackingCategories'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings", + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/TrackingCategories", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_conditions", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_by_element", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "includeArchived", + "tool_parameter_name": "include_archived_categories", + "description": "e.g. includeArchived=true - Categories and options with a status of ARCHIVED will be included in the response", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. includeArchived=true - Categories and options with a status of ARCHIVED will be included in the response" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetTrackingCategory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetTrackingCategory.json new file mode 100644 index 00000000..d5ac7408 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetTrackingCategory.json @@ -0,0 +1,140 @@ +{ + "name": "GetTrackingCategory", + "fully_qualified_name": "XeroApi.GetTrackingCategory@0.1.0", + "description": "Retrieve tracking category details using its unique ID.\n\nUse this tool to obtain specific details about a tracking category and its options by providing a unique tracking category ID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tracking_category_id", + "required": true, + "description": "Unique identifier for the tracking category to retrieve details for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a TrackingCategory" + }, + "inferrable": true, + "http_endpoint_parameter_name": "TrackingCategoryID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "A string representing the Xero identifier for the tenant. Required to access tenant-specific data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getTrackingCategory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings", + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/TrackingCategories/{TrackingCategoryID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "TrackingCategoryID", + "tool_parameter_name": "tracking_category_id", + "description": "Unique identifier for a TrackingCategory", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a TrackingCategory" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetTrialBalanceReport.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetTrialBalanceReport.json new file mode 100644 index 00000000..1c33c7be --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetTrialBalanceReport.json @@ -0,0 +1,171 @@ +{ + "name": "GetTrialBalanceReport", + "fully_qualified_name": "XeroApi.GetTrialBalanceReport@0.1.0", + "description": "Fetches the trial balance report from Xero.\n\nUse this tool to retrieve the trial balance report, which provides detailed financial information.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tenant_identifier", + "required": true, + "description": "The unique identifier for the Xero tenant to retrieve the trial balance report for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "report_date", + "required": false, + "description": "The specific date for the Trial Balance report in YYYY-MM-DD format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date for the Trial Balance report e.g. 2018-03-31" + }, + "inferrable": true, + "http_endpoint_parameter_name": "date" + }, + { + "name": "return_cash_basis_only", + "required": false, + "description": "Set to true to return the trial balance report on a cash-only basis, false for accrual.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return cash only basis for the Trial Balance report" + }, + "inferrable": true, + "http_endpoint_parameter_name": "paymentsOnly" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getReportTrialBalance'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.reports.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Reports/TrialBalance", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "date", + "tool_parameter_name": "report_date", + "description": "The date for the Trial Balance report e.g. 2018-03-31", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date for the Trial Balance report e.g. 2018-03-31" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "paymentsOnly", + "tool_parameter_name": "return_cash_basis_only", + "description": "Return cash only basis for the Trial Balance report", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return cash only basis for the Trial Balance report" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetXeroContactByNumber.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetXeroContactByNumber.json new file mode 100644 index 00000000..41cacb3f --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetXeroContactByNumber.json @@ -0,0 +1,140 @@ +{ + "name": "GetXeroContactByNumber", + "fully_qualified_name": "XeroApi.GetXeroContactByNumber@0.1.0", + "description": "Retrieve a contact from Xero by contact number.\n\nThis tool retrieves details of a specific contact in a Xero organization using their contact number. It should be called when you need to access contact information by specifying the unique contact number.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_number", + "required": true, + "description": "The unique contact number to identify a Xero contact; max length 50 characters.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This field is read only on the Xero contact screen, used to identify contacts in external systems (max length = 50)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "ContactNumber" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant. It is required to specify which organization's data to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getContactByContactNumber'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.contacts.read", + "accounting.contacts" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Contacts/{ContactNumber}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ContactNumber", + "tool_parameter_name": "contact_number", + "description": "This field is read only on the Xero contact screen, used to identify contacts in external systems (max length = 50).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This field is read only on the Xero contact screen, used to identify contacts in external systems (max length = 50)." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetXeroCurrencies.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetXeroCurrencies.json new file mode 100644 index 00000000..bae5d158 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetXeroCurrencies.json @@ -0,0 +1,172 @@ +{ + "name": "GetXeroCurrencies", + "fully_qualified_name": "XeroApi.GetXeroCurrencies@0.1.0", + "description": "Retrieve currencies from your Xero organization.\n\nUse this tool to get a list of all currencies associated with your Xero organization. It is useful for financial tasks, reporting, or currency conversion needs.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant. Required to access organization-specific data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_criteria", + "required": false, + "description": "A string to filter the currencies based on specific criteria, such as currency code or name.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "order_by", + "required": false, + "description": "Specify the element to order the currencies by. Accepts a string corresponding to an element in the currency data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getCurrencies'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings", + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Currencies", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_criteria", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_by", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetXeroOrganisationDetails.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetXeroOrganisationDetails.json new file mode 100644 index 00000000..cdce6615 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/GetXeroOrganisationDetails.json @@ -0,0 +1,108 @@ +{ + "name": "GetXeroOrganisationDetails", + "fully_qualified_name": "XeroApi.GetXeroOrganisationDetails@0.1.0", + "description": "Retrieves Xero organisation details.\n\nUse this tool to obtain detailed information about organisations in Xero. Ideal for accessing organisation data when required.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique identifier for the Xero tenant. This ID is required to specify which organisation's details to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getOrganisations'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings", + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Organisation", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RecordOverpaymentHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RecordOverpaymentHistory.json new file mode 100644 index 00000000..73ac40ea --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RecordOverpaymentHistory.json @@ -0,0 +1,171 @@ +{ + "name": "RecordOverpaymentHistory", + "fully_qualified_name": "XeroApi.RecordOverpaymentHistory@0.1.0", + "description": "Creates a history record for a specific overpayment.\n\nUse this tool to add a history record to an existing overpayment in Xero. It helps in tracking changes or notes related to overpayments.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "overpayment_id", + "required": true, + "description": "Unique identifier for an overpayment that you want to create a history record for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Overpayment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "OverpaymentID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique identifier for the Xero tenant. Required to specify which tenant to apply the overpayment history record to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "idempotency_key", + "required": false, + "description": "A unique string (max 128 characters) for safely retrying requests without duplicate processing.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "inferrable": true, + "http_endpoint_parameter_name": "Idempotency-Key" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'createOverpaymentHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Overpayments/{OverpaymentID}/History", + "http_method": "PUT", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "OverpaymentID", + "tool_parameter_name": "overpayment_id", + "description": "Unique identifier for a Overpayment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Overpayment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Idempotency-Key", + "tool_parameter_name": "idempotency_key", + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RecordReceiptHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RecordReceiptHistory.json new file mode 100644 index 00000000..e6abea41 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RecordReceiptHistory.json @@ -0,0 +1,171 @@ +{ + "name": "RecordReceiptHistory", + "fully_qualified_name": "XeroApi.RecordReceiptHistory@0.1.0", + "description": "Creates a history record for a specific receipt.\n\n", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "receipt_id", + "required": true, + "description": "Unique identifier for a receipt used to create a history record.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Receipt" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ReceiptID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero tenant identifier required for creating the receipt history.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "idempotency_key", + "required": false, + "description": "String up to 128 characters to safely retry requests without risk of duplication.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "inferrable": true, + "http_endpoint_parameter_name": "Idempotency-Key" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'createReceiptHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Receipts/{ReceiptID}/History", + "http_method": "PUT", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ReceiptID", + "tool_parameter_name": "receipt_id", + "description": "Unique identifier for a Receipt", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Receipt" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Idempotency-Key", + "tool_parameter_name": "idempotency_key", + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RemoveContactFromGroup.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RemoveContactFromGroup.json new file mode 100644 index 00000000..c876846b --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RemoveContactFromGroup.json @@ -0,0 +1,171 @@ +{ + "name": "RemoveContactFromGroup", + "fully_qualified_name": "XeroApi.RemoveContactFromGroup@0.1.0", + "description": "Delete a specific contact from a contact group.\n\nThis tool removes a specified contact from a contact group using unique identifiers for both the contact and the group. It should be called when there is a need to manage and update contact groups by removing contacts.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_group_id", + "required": true, + "description": "Unique identifier for a contact group to specify which group the contact should be removed from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact Group" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ContactGroupID" + }, + { + "name": "contact_identifier", + "required": true, + "description": "Unique identifier for a contact to be removed from the group.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ContactID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant. Required for specifying the target tenant in requests.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'deleteContactGroupContact'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.contacts" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/ContactGroups/{ContactGroupID}/Contacts/{ContactID}", + "http_method": "DELETE", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ContactGroupID", + "tool_parameter_name": "contact_group_id", + "description": "Unique identifier for a Contact Group", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact Group" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "ContactID", + "tool_parameter_name": "contact_identifier", + "description": "Unique identifier for a Contact", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RemoveContactsFromGroup.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RemoveContactsFromGroup.json new file mode 100644 index 00000000..cdd84a14 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RemoveContactsFromGroup.json @@ -0,0 +1,139 @@ +{ + "name": "RemoveContactsFromGroup", + "fully_qualified_name": "XeroApi.RemoveContactsFromGroup@0.1.0", + "description": "Removes all contacts from a specified contact group in Xero.\n\nUse this tool to delete all contacts from a specific contact group in Xero. Ideal for cleaning or reorganizing contact groups.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_group_id", + "required": true, + "description": "Unique identifier for the contact group to remove contacts from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact Group" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ContactGroupID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the specific tenant required to access its data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'deleteContactGroupContacts'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.contacts" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/ContactGroups/{ContactGroupID}/Contacts", + "http_method": "DELETE", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ContactGroupID", + "tool_parameter_name": "contact_group_id", + "description": "Unique identifier for a Contact Group", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact Group" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RemoveTrackingCategory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RemoveTrackingCategory.json new file mode 100644 index 00000000..3d02b74e --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RemoveTrackingCategory.json @@ -0,0 +1,139 @@ +{ + "name": "RemoveTrackingCategory", + "fully_qualified_name": "XeroApi.RemoveTrackingCategory@0.1.0", + "description": "Deletes a specific tracking category from Xero.\n\nUse this tool to delete a particular tracking category identified by its ID in the Xero accounting system.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tracking_category_id", + "required": true, + "description": "Unique identifier for the tracking category to be deleted in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a TrackingCategory" + }, + "inferrable": true, + "http_endpoint_parameter_name": "TrackingCategoryID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant. Required to specify which tenant's tracking category to delete.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'deleteTrackingCategory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/TrackingCategories/{TrackingCategoryID}", + "http_method": "DELETE", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "TrackingCategoryID", + "tool_parameter_name": "tracking_category_id", + "description": "Unique identifier for a TrackingCategory", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a TrackingCategory" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/Retrieve1099Reports.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/Retrieve1099Reports.json new file mode 100644 index 00000000..0190fe64 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/Retrieve1099Reports.json @@ -0,0 +1,140 @@ +{ + "name": "Retrieve1099Reports", + "fully_qualified_name": "XeroApi.Retrieve1099Reports@0.1.0", + "description": "Retrieves 1099 tax reports.\n\nUse this tool to obtain 1099 tax reports from the Xero accounting service. It provides necessary financial data related to 1099 forms.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_identifier", + "required": true, + "description": "The unique identifier for the tenant in Xero. Required to access the specific tenant's 1099 report data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "report_year", + "required": false, + "description": "The year for which the 1099 report should be retrieved, in YYYY format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The year of the 1099 report" + }, + "inferrable": true, + "http_endpoint_parameter_name": "reportYear" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getReportTenNinetyNine'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.reports.tenninetynine.read", + "accounting.reports.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Reports/TenNinetyNine", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "reportYear", + "tool_parameter_name": "report_year", + "description": "The year of the 1099 report", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The year of the 1099 report" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveAccountAttachment.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveAccountAttachment.json new file mode 100644 index 00000000..0c7c66c5 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveAccountAttachment.json @@ -0,0 +1,204 @@ +{ + "name": "RetrieveAccountAttachment", + "fully_qualified_name": "XeroApi.RetrieveAccountAttachment@0.1.0", + "description": "Retrieve a specific account attachment by ID.\n\nUse this tool to retrieve an attachment from a specific account by providing the unique attachment ID. It is useful when you need to access detailed information or content of an attachment associated with a particular account in Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "account_unique_identifier", + "required": true, + "description": "Unique identifier for the Account object to retrieve the attachment from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Account object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AccountID" + }, + { + "name": "attachment_id", + "required": true, + "description": "Unique identifier for the attachment you want to retrieve from an account. This ID is necessary to specify the exact attachment you need.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AttachmentID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the Tenant. Required to specify which tenant's account attachment you want to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "mime_type_of_attachment", + "required": true, + "description": "The MIME type of the attachment file, such as image/jpg or application/pdf.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getAccountAttachmentById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Accounts/{AccountID}/Attachments/{AttachmentID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "AccountID", + "tool_parameter_name": "account_unique_identifier", + "description": "Unique identifier for Account object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Account object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "AttachmentID", + "tool_parameter_name": "attachment_id", + "description": "Unique identifier for Attachment object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "mime_type_of_attachment", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveAccountAttachmentByFilename.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveAccountAttachmentByFilename.json new file mode 100644 index 00000000..d545b714 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveAccountAttachmentByFilename.json @@ -0,0 +1,204 @@ +{ + "name": "RetrieveAccountAttachmentByFilename", + "fully_qualified_name": "XeroApi.RetrieveAccountAttachmentByFilename@0.1.0", + "description": "Retrieve an attachment for a specific account by filename.\n\nThis tool retrieves an attachment file from a specific account in Xero using the filename. It should be called when a user needs to access a specific account's attachment by providing the account ID and filename.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "account_id", + "required": true, + "description": "Unique identifier for the Account object in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Account object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AccountID" + }, + { + "name": "attachment_file_name", + "required": true, + "description": "The name of the attachment to retrieve for a specific account.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "FileName" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "The unique Xero identifier for the Tenant. Required to access the specific tenant's attachments.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "mime_type_of_attachment", + "required": true, + "description": "The MIME type of the attachment file to retrieve, such as image/jpg or application/pdf.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getAccountAttachmentByFileName'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Accounts/{AccountID}/Attachments/{FileName}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "AccountID", + "tool_parameter_name": "account_id", + "description": "Unique identifier for Account object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Account object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "FileName", + "tool_parameter_name": "attachment_file_name", + "description": "Name of the attachment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "mime_type_of_attachment", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveAccountAttachments.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveAccountAttachments.json new file mode 100644 index 00000000..90f37f14 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveAccountAttachments.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveAccountAttachments", + "fully_qualified_name": "XeroApi.RetrieveAccountAttachments@0.1.0", + "description": "Retrieve attachments for a specified account.\n\nThis tool is used to get attachments associated with a specific account by providing the account's unique ID. Useful for accessing documents or files linked to financial accounts in the Xero platform.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "account_id", + "required": true, + "description": "Unique identifier for the account object to retrieve attachments from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Account object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AccountID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the Tenant, used to specify which tenant's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getAccountAttachments'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Accounts/{AccountID}/Attachments", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "AccountID", + "tool_parameter_name": "account_id", + "description": "Unique identifier for Account object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Account object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveAccountDetails.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveAccountDetails.json new file mode 100644 index 00000000..a909d63d --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveAccountDetails.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveAccountDetails", + "fully_qualified_name": "XeroApi.RetrieveAccountDetails@0.1.0", + "description": "Retrieve chart of accounts using a unique account ID.\n\nUse this tool to fetch details of a specific account from the chart of accounts by providing a unique account ID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "account_id", + "required": true, + "description": "Unique identifier for the Account object to retrieve specific account details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Account object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AccountID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant to retrieve the account details from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getAccount'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings", + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Accounts/{AccountID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "AccountID", + "tool_parameter_name": "account_id", + "description": "Unique identifier for Account object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Account object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransaction.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransaction.json new file mode 100644 index 00000000..a7f47386 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransaction.json @@ -0,0 +1,172 @@ +{ + "name": "RetrieveBankTransaction", + "fully_qualified_name": "XeroApi.RetrieveBankTransaction@0.1.0", + "description": "Retrieve bank transaction details by ID.\n\nUse this tool to get details of a specific spent or received bank transaction by providing its unique ID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "bank_transaction_id", + "required": true, + "description": "Unique identifier for a specific bank transaction in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transaction" + }, + "inferrable": true, + "http_endpoint_parameter_name": "BankTransactionID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "The Xero identifier for the tenant (organization). Required to access the specific tenant's data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "use_four_decimal_places", + "required": false, + "description": "Option to use four decimal places for unit amounts. Specify '4' to enable.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "inferrable": true, + "http_endpoint_parameter_name": "unitdp" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBankTransaction'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BankTransactions/{BankTransactionID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "unitdp", + "tool_parameter_name": "use_four_decimal_places", + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "BankTransactionID", + "tool_parameter_name": "bank_transaction_id", + "description": "Xero generated unique identifier for a bank transaction", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transaction" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransactionAttachment.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransactionAttachment.json new file mode 100644 index 00000000..f4111adf --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransactionAttachment.json @@ -0,0 +1,204 @@ +{ + "name": "RetrieveBankTransactionAttachment", + "fully_qualified_name": "XeroApi.RetrieveBankTransactionAttachment@0.1.0", + "description": "Retrieve a specific attachment from a bank transaction.\n\nUse this tool to obtain specific attachments from a bank transaction by providing the unique BankTransaction ID and Attachment ID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "bank_transaction_id", + "required": true, + "description": "Xero generated unique identifier for a bank transaction.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transaction" + }, + "inferrable": true, + "http_endpoint_parameter_name": "BankTransactionID" + }, + { + "name": "attachment_id", + "required": true, + "description": "Unique identifier for the Attachment object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AttachmentID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero unique identifier for the Tenant. This is required to specify which organization data is to be accessed.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_mime_type", + "required": true, + "description": "The mime type of the attachment file to retrieve, such as image/jpeg or application/pdf.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBankTransactionAttachmentById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BankTransactions/{BankTransactionID}/Attachments/{AttachmentID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "BankTransactionID", + "tool_parameter_name": "bank_transaction_id", + "description": "Xero generated unique identifier for a bank transaction", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transaction" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "AttachmentID", + "tool_parameter_name": "attachment_id", + "description": "Unique identifier for Attachment object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransactionAttachments.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransactionAttachments.json new file mode 100644 index 00000000..bb24bf05 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransactionAttachments.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveBankTransactionAttachments", + "fully_qualified_name": "XeroApi.RetrieveBankTransactionAttachments@0.1.0", + "description": "Retrieve attachments from a specific bank transaction.\n\nUse this tool to obtain any attachments linked to a specific bank transaction. It accesses the attachments related to a given transaction ID within the Xero platform.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "bank_transaction_id", + "required": true, + "description": "Xero generated unique identifier for a bank transaction, used to retrieve corresponding attachments.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transaction" + }, + "inferrable": true, + "http_endpoint_parameter_name": "BankTransactionID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique identifier for a Xero tenant, required to access specific tenant data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBankTransactionAttachments'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BankTransactions/{BankTransactionID}/Attachments", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "BankTransactionID", + "tool_parameter_name": "bank_transaction_id", + "description": "Xero generated unique identifier for a bank transaction", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transaction" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransactions.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransactions.json new file mode 100644 index 00000000..afe531e1 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransactions.json @@ -0,0 +1,300 @@ +{ + "name": "RetrieveBankTransactions", + "fully_qualified_name": "XeroApi.RetrieveBankTransactions@0.1.0", + "description": "Retrieve spent or received money transactions from Xero.\n\nUse this tool to get a list of transactions where money was spent or received. This is useful for financial tracking and reporting.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_id", + "required": true, + "description": "Xero identifier for the Tenant, required to specify which account to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_by_element", + "required": false, + "description": "Specify criteria to filter transactions by any element. Use valid filter expressions based on transaction fields.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "order_transactions_by", + "required": false, + "description": "Specify the element by which to order the transactions, such as date or amount.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "transaction_page_number", + "required": false, + "description": "Specifies which page of up to 100 bank transactions to retrieve.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Up to 100 bank transactions will be returned in a single API call with line items details" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page" + }, + { + "name": "use_four_decimal_places", + "required": false, + "description": "Indicate if unit amounts should use four decimal places (e.g., 4).", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "inferrable": true, + "http_endpoint_parameter_name": "unitdp" + }, + { + "name": "records_per_page", + "required": false, + "description": "Specify the number of records to retrieve per page. This controls the pagination size.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of records to retrieve per page" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pageSize" + }, + { + "name": "modified_since_timestamp", + "required": false, + "description": "Return records created or modified since this UTC timestamp (ISO 8601 format).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "inferrable": true, + "http_endpoint_parameter_name": "If-Modified-Since" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBankTransactions'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BankTransactions", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_by_element", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_transactions_by", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page", + "tool_parameter_name": "transaction_page_number", + "description": "Up to 100 bank transactions will be returned in a single API call with line items details", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Up to 100 bank transactions will be returned in a single API call with line items details" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "unitdp", + "tool_parameter_name": "use_four_decimal_places", + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "pageSize", + "tool_parameter_name": "records_per_page", + "description": "Number of records to retrieve per page", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of records to retrieve per page" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "If-Modified-Since", + "tool_parameter_name": "modified_since_timestamp", + "description": "Only records created or modified since this timestamp will be returned", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransfer.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransfer.json new file mode 100644 index 00000000..ef5298b3 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransfer.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveBankTransfer", + "fully_qualified_name": "XeroApi.RetrieveBankTransfer@0.1.0", + "description": "Retrieve details of a specific bank transfer using its ID.\n\nThis tool retrieves information about a specific bank transfer by using its unique bank transfer ID. It should be called when you need detailed information about a particular bank transfer within the Xero service.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "bank_transfer_id", + "required": true, + "description": "The unique identifier for a bank transfer generated by Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transfer" + }, + "inferrable": true, + "http_endpoint_parameter_name": "BankTransferID" + }, + { + "name": "tenant_id", + "required": true, + "description": "Xero identifier for the tenant. This is required to specify which tenant's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBankTransfer'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BankTransfers/{BankTransferID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "BankTransferID", + "tool_parameter_name": "bank_transfer_id", + "description": "Xero generated unique identifier for a bank transfer", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transfer" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransferAttachment.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransferAttachment.json new file mode 100644 index 00000000..b533901f --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransferAttachment.json @@ -0,0 +1,204 @@ +{ + "name": "RetrieveBankTransferAttachment", + "fully_qualified_name": "XeroApi.RetrieveBankTransferAttachment@0.1.0", + "description": "Retrieve a bank transfer attachment by file name.\n\nUse this tool to obtain a specific attachment related to a bank transfer by providing the file name.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "bank_transfer_id", + "required": true, + "description": "Xero-generated unique identifier for a bank transfer. Required to specify which bank transfer's attachment is being retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transfer" + }, + "inferrable": true, + "http_endpoint_parameter_name": "BankTransferID" + }, + { + "name": "attachment_file_name", + "required": true, + "description": "The name of the attachment file to retrieve from the bank transfer.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "FileName" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "The unique identifier for the Xero tenant associated with the bank transfer.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_mime_type", + "required": true, + "description": "The MIME type of the attachment file, such as 'image/jpg' or 'application/pdf'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBankTransferAttachmentByFileName'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BankTransfers/{BankTransferID}/Attachments/{FileName}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "BankTransferID", + "tool_parameter_name": "bank_transfer_id", + "description": "Xero generated unique identifier for a bank transfer", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transfer" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "FileName", + "tool_parameter_name": "attachment_file_name", + "description": "Name of the attachment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransferAttachments.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransferAttachments.json new file mode 100644 index 00000000..8c0f9c6d --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransferAttachments.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveBankTransferAttachments", + "fully_qualified_name": "XeroApi.RetrieveBankTransferAttachments@0.1.0", + "description": "Retrieve attachments from a specific bank transfer in Xero.\n\nUse this tool to get a list of attachments related to a particular bank transfer in Xero by providing the BankTransferID. Ideal for when you need access to documents associated with bank transactions.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "bank_transfer_id", + "required": true, + "description": "Xero-generated unique identifier for a bank transfer. Required to retrieve associated attachments.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transfer" + }, + "inferrable": true, + "http_endpoint_parameter_name": "BankTransferID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "The unique Xero identifier for your tenant. This ID specifies which tenant the bank transfer belongs to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBankTransferAttachments'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BankTransfers/{BankTransferID}/Attachments", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "BankTransferID", + "tool_parameter_name": "bank_transfer_id", + "description": "Xero generated unique identifier for a bank transfer", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero generated unique identifier for a bank transfer" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransfers.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransfers.json new file mode 100644 index 00000000..a9addf66 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBankTransfers.json @@ -0,0 +1,204 @@ +{ + "name": "RetrieveBankTransfers", + "fully_qualified_name": "XeroApi.RetrieveBankTransfers@0.1.0", + "description": "Retrieve all bank transfers from Xero.\n\nUse this tool to access all bank transfer records from Xero. It helps in obtaining comprehensive transfer data for financial review or auditing purposes.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_identifier", + "required": true, + "description": "A unique string identifier for the Xero tenant to retrieve bank transfers from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_bank_transfers", + "required": false, + "description": "String to filter bank transfer records by a specific element, such as status or date range.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "order_by_element", + "required": false, + "description": "Specify the field to order the bank transfer records by. Use the field names available in the Xero bank transfer dataset.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "modified_since_timestamp", + "required": false, + "description": "Filter records to only include those created or modified since this timestamp. Use ISO 8601 format (e.g., '2023-10-01T00:00:00Z').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "inferrable": true, + "http_endpoint_parameter_name": "If-Modified-Since" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBankTransfers'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BankTransfers", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_bank_transfers", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_by_element", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "If-Modified-Since", + "tool_parameter_name": "modified_since_timestamp", + "description": "Only records created or modified since this timestamp will be returned", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBatchPaymentHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBatchPaymentHistory.json new file mode 100644 index 00000000..723da88d --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBatchPaymentHistory.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveBatchPaymentHistory", + "fully_qualified_name": "XeroApi.RetrieveBatchPaymentHistory@0.1.0", + "description": "Retrieve the history of a specific batch payment.\n\nUse this tool to access detailed history for a specific batch payment in Xero. Call this tool when needing to understand past actions, updates, or changes made to a batch payment.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "batch_payment_id", + "required": true, + "description": "Unique identifier for the batch payment to retrieve its history.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for BatchPayment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "BatchPaymentID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique identifier for the Xero tenant. Required to access specific tenant data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBatchPaymentHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BatchPayments/{BatchPaymentID}/History", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "BatchPaymentID", + "tool_parameter_name": "batch_payment_id", + "description": "Unique identifier for BatchPayment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for BatchPayment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBatchPayments.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBatchPayments.json new file mode 100644 index 00000000..df060675 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBatchPayments.json @@ -0,0 +1,204 @@ +{ + "name": "RetrieveBatchPayments", + "fully_qualified_name": "XeroApi.RetrieveBatchPayments@0.1.0", + "description": "Retrieve batch payments for invoices.\n\nUse this tool to retrieve information about one or many batch payments associated with invoices. Useful for accessing payment details and histories.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the Tenant required to access its specific batch payment data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_by_element", + "required": false, + "description": "Apply a filter to the batch payments using any specified element.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "order_by_element", + "required": false, + "description": "Specify the element to sort the batch payments by. The value should be a string representing the element.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "modified_since_timestamp", + "required": false, + "description": "Timestamp to filter records modified or created since then. Format: ISO 8601 date and time.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "inferrable": true, + "http_endpoint_parameter_name": "If-Modified-Since" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBatchPayments'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BatchPayments", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_by_element", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_by_element", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "If-Modified-Since", + "tool_parameter_name": "modified_since_timestamp", + "description": "Only records created or modified since this timestamp will be returned", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBrandingTheme.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBrandingTheme.json new file mode 100644 index 00000000..dbfab827 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBrandingTheme.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveBrandingTheme", + "fully_qualified_name": "XeroApi.RetrieveBrandingTheme@0.1.0", + "description": "Retrieve details of a specific branding theme.\n\nThis tool retrieves information about a specific branding theme by using its unique ID. It is useful for accessing and displaying branding theme details in accounting or financial software.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "branding_theme_id", + "required": true, + "description": "Unique identifier for a branding theme to retrieve its details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Branding Theme" + }, + "inferrable": true, + "http_endpoint_parameter_name": "BrandingThemeID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "The Xero identifier for the Tenant. This is required to specify which tenant's branding theme to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBrandingTheme'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings", + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/BrandingThemes/{BrandingThemeID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "BrandingThemeID", + "tool_parameter_name": "branding_theme_id", + "description": "Unique identifier for a Branding Theme", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Branding Theme" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBudgetDetails.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBudgetDetails.json new file mode 100644 index 00000000..c8055ac9 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBudgetDetails.json @@ -0,0 +1,203 @@ +{ + "name": "RetrieveBudgetDetails", + "fully_qualified_name": "XeroApi.RetrieveBudgetDetails@0.1.0", + "description": "Retrieve detailed information about a budget including lines.\n\nUse this tool to get information about a specified budget by its ID, including all associated budget lines.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "budget_identifier", + "required": true, + "description": "Unique identifier for budgets. Required to retrieve specific budget details including budget lines.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Budgets" + }, + "inferrable": true, + "http_endpoint_parameter_name": "BudgetID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the Tenant to specify which tenant's budget to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_end_date", + "required": false, + "description": "Specifies the end date to filter the budget data. Use the format YYYY-MM-DD.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by start date" + }, + "inferrable": true, + "http_endpoint_parameter_name": "DateTo" + }, + { + "name": "filter_start_date", + "required": false, + "description": "The start date from which to filter the budget details. Format must be YYYY-MM-DD.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by end date" + }, + "inferrable": true, + "http_endpoint_parameter_name": "DateFrom" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBudget'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.budgets.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Budgets/{BudgetID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "DateTo", + "tool_parameter_name": "filter_end_date", + "description": "Filter by start date", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by start date" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "DateFrom", + "tool_parameter_name": "filter_start_date", + "description": "Filter by end date", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by end date" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "BudgetID", + "tool_parameter_name": "budget_identifier", + "description": "Unique identifier for Budgets", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Budgets" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBudgets.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBudgets.json new file mode 100644 index 00000000..4d92a4dd --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveBudgets.json @@ -0,0 +1,203 @@ +{ + "name": "RetrieveBudgets", + "fully_qualified_name": "XeroApi.RetrieveBudgets@0.1.0", + "description": "Retrieve a list of budgets from Xero.\n\nUse this tool to obtain detailed budgeting information from the Xero platform, helping manage and analyze budget data.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tenant_identifier", + "required": true, + "description": "The unique Xero identifier for the tenant. Required for accessing specific tenant data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_by_budget_id", + "required": false, + "description": "Filter to retrieve a specific budget by its BudgetID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by BudgetID. Allows you to retrieve a specific individual budget." + }, + "inferrable": true, + "http_endpoint_parameter_name": "IDs" + }, + { + "name": "filter_start_date", + "required": false, + "description": "The start date to filter budgets until. Expected format is YYYY-MM-DD.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by start date" + }, + "inferrable": true, + "http_endpoint_parameter_name": "DateTo" + }, + { + "name": "filter_by_end_date", + "required": false, + "description": "Specify the end date to filter the budgets. Use the format YYYY-MM-DD.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by end date" + }, + "inferrable": true, + "http_endpoint_parameter_name": "DateFrom" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getBudgets'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.budgets.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Budgets", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "IDs", + "tool_parameter_name": "filter_by_budget_id", + "description": "Filter by BudgetID. Allows you to retrieve a specific individual budget.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by BudgetID. Allows you to retrieve a specific individual budget." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "DateTo", + "tool_parameter_name": "filter_start_date", + "description": "Filter by start date", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by start date" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "DateFrom", + "tool_parameter_name": "filter_by_end_date", + "description": "Filter by end date", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by end date" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveContactAttachment.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveContactAttachment.json new file mode 100644 index 00000000..b2121e4b --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveContactAttachment.json @@ -0,0 +1,204 @@ +{ + "name": "RetrieveContactAttachment", + "fully_qualified_name": "XeroApi.RetrieveContactAttachment@0.1.0", + "description": "Retrieve a specific contact attachment by ID.\n\nUse this tool to get a specific attachment from a contact by providing the unique attachment ID. Useful for accessing detailed attachment data linked to a contact in Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_id", + "required": true, + "description": "Unique identifier for a Contact in Xero to retrieve a specific attachment.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ContactID" + }, + { + "name": "attachment_id", + "required": true, + "description": "Unique identifier for the Attachment object from a contact in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AttachmentID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "The unique identifier for the tenant in Xero to access specific data connected to a tenant account.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_mime_type", + "required": true, + "description": "The MIME type of the attachment file (e.g., image/jpeg, application/pdf).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getContactAttachmentById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Contacts/{ContactID}/Attachments/{AttachmentID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ContactID", + "tool_parameter_name": "contact_id", + "description": "Unique identifier for a Contact", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "AttachmentID", + "tool_parameter_name": "attachment_id", + "description": "Unique identifier for Attachment object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveContactGroup.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveContactGroup.json new file mode 100644 index 00000000..ec4144c8 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveContactGroup.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveContactGroup", + "fully_qualified_name": "XeroApi.RetrieveContactGroup@0.1.0", + "description": "Retrieve a specific contact group by ID.\n\nCall this tool to get details of a particular contact group using its unique ID on Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_group_id", + "required": true, + "description": "Unique identifier for a Contact Group in Xero. Use this to retrieve specific group details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact Group" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ContactGroupID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Identifier for the Xero tenant needed to access specific tenant data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getContactGroup'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.contacts.read", + "accounting.contacts" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/ContactGroups/{ContactGroupID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ContactGroupID", + "tool_parameter_name": "contact_group_id", + "description": "Unique identifier for a Contact Group", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact Group" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveContactGroups.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveContactGroups.json new file mode 100644 index 00000000..83aa7fc2 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveContactGroups.json @@ -0,0 +1,172 @@ +{ + "name": "RetrieveContactGroups", + "fully_qualified_name": "XeroApi.RetrieveContactGroups@0.1.0", + "description": "Retrieve contact group IDs and names from Xero.\n\nUse this tool to get a list of contact groups from Xero, including each group's ID and name. Ideal for identifying specific contact groups and managing contacts effectively.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the Tenant. Required to access the correct tenant's contact groups.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_criteria", + "required": false, + "description": "A string to filter contact groups based on specified criteria, using any element.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "order_by", + "required": false, + "description": "Specify the criteria to order the contact groups by. It can be any element to sort the results accordingly.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getContactGroups'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.contacts.read", + "accounting.contacts" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/ContactGroups", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_criteria", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_by", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveCreditNote.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveCreditNote.json new file mode 100644 index 00000000..c6c83edd --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveCreditNote.json @@ -0,0 +1,172 @@ +{ + "name": "RetrieveCreditNote", + "fully_qualified_name": "XeroApi.RetrieveCreditNote@0.1.0", + "description": "Retrieve a credit note using its unique ID.\n\nUse this tool to get detailed information about a specific credit note by providing its unique ID. Ideal for obtaining precise credit note data from your Xero account.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "credit_note_id", + "required": true, + "description": "Unique identifier for the credit note to retrieve details from Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Credit Note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "CreditNoteID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "The unique Xero identifier for the tenant associated with the credit note. It is required to specify which tenant's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "use_four_decimal_places", + "required": false, + "description": "Specify if four decimal places should be used for unit amounts. Default is false.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "inferrable": true, + "http_endpoint_parameter_name": "unitdp" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getCreditNote'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/CreditNotes/{CreditNoteID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "unitdp", + "tool_parameter_name": "use_four_decimal_places", + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "CreditNoteID", + "tool_parameter_name": "credit_note_id", + "description": "Unique identifier for a Credit Note", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Credit Note" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveCreditNoteAttachment.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveCreditNoteAttachment.json new file mode 100644 index 00000000..ca0219eb --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveCreditNoteAttachment.json @@ -0,0 +1,204 @@ +{ + "name": "RetrieveCreditNoteAttachment", + "fully_qualified_name": "XeroApi.RetrieveCreditNoteAttachment@0.1.0", + "description": "Retrieve a specific credit note attachment by file name.\n\nUse this tool to get a particular attachment from a specific credit note using the file name as a reference. It is helpful when you need to access or verify document details associated with a credit note.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "credit_note_id", + "required": true, + "description": "Unique identifier for a Credit Note. Use this ID to specify which credit note's attachment you want to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Credit Note" + }, + "inferrable": true, + "http_endpoint_parameter_name": "CreditNoteID" + }, + { + "name": "attachment_file_name", + "required": true, + "description": "The name of the attachment to be retrieved from the credit note (e.g., invoice.pdf).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "FileName" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Unique identifier for the Xero Tenant. Required to specify which tenant's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_mime_type", + "required": true, + "description": "The MIME type of the attachment file to retrieve, such as 'image/jpg' or 'application/pdf'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getCreditNoteAttachmentByFileName'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/CreditNotes/{CreditNoteID}/Attachments/{FileName}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "CreditNoteID", + "tool_parameter_name": "credit_note_id", + "description": "Unique identifier for a Credit Note", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Credit Note" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "FileName", + "tool_parameter_name": "attachment_file_name", + "description": "Name of the attachment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveDraftExpenseClaimReceipt.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveDraftExpenseClaimReceipt.json new file mode 100644 index 00000000..26858fac --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveDraftExpenseClaimReceipt.json @@ -0,0 +1,172 @@ +{ + "name": "RetrieveDraftExpenseClaimReceipt", + "fully_qualified_name": "XeroApi.RetrieveDraftExpenseClaimReceipt@0.1.0", + "description": "Retrieve a draft expense claim receipt using its ID.\n\nUse this tool to retrieve detailed information about a specific draft expense claim receipt by providing its unique receipt ID. Useful for reviewing or processing draft receipts.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "receipt_id", + "required": true, + "description": "The unique identifier for the draft expense claim receipt to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Receipt" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ReceiptID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "The unique Xero identifier for the tenant. Required to specify which organization's data is being accessed.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "use_four_decimal_places", + "required": false, + "description": "Set to true to use four decimal places for unit amounts, false for standard.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "inferrable": true, + "http_endpoint_parameter_name": "unitdp" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getReceipt'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Receipts/{ReceiptID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "unitdp", + "tool_parameter_name": "use_four_decimal_places", + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "ReceiptID", + "tool_parameter_name": "receipt_id", + "description": "Unique identifier for a Receipt", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Receipt" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveExecutiveSummaryReport.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveExecutiveSummaryReport.json new file mode 100644 index 00000000..5a0b15e2 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveExecutiveSummaryReport.json @@ -0,0 +1,139 @@ +{ + "name": "RetrieveExecutiveSummaryReport", + "fully_qualified_name": "XeroApi.RetrieveExecutiveSummaryReport@0.1.0", + "description": "Retrieve an executive summary report for financial insights.\n\nUse this tool to get an executive summary report, which provides financial insights and key metrics for business decision-making.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_identifier", + "required": true, + "description": "The Xero identifier for the tenant. Required to specify which tenant's data should be retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "report_date", + "required": false, + "description": "The date for the Bank Summary report in the format YYYY-MM-DD (e.g., 2018-03-31).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date for the Bank Summary report e.g. 2018-03-31" + }, + "inferrable": true, + "http_endpoint_parameter_name": "date" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getReportExecutiveSummary'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.reports.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Reports/ExecutiveSummary", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "date", + "tool_parameter_name": "report_date", + "description": "The date for the Bank Summary report e.g. 2018-03-31", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date for the Bank Summary report e.g. 2018-03-31" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveExpenseClaim.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveExpenseClaim.json new file mode 100644 index 00000000..ecbdac43 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveExpenseClaim.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveExpenseClaim", + "fully_qualified_name": "XeroApi.RetrieveExpenseClaim@0.1.0", + "description": "Retrieve details of a specific expense claim by ID.\n\nUse this tool to obtain details about a specific expense claim using its unique ID. This is useful for reviewing or verifying expense claims in your records.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "expense_claim_id", + "required": true, + "description": "Unique identifier for an expense claim to retrieve its details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a ExpenseClaim" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ExpenseClaimID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Xero tenant identifier for the specific business or organization you are retrieving the expense claim from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getExpenseClaim'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/ExpenseClaims/{ExpenseClaimID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ExpenseClaimID", + "tool_parameter_name": "expense_claim_id", + "description": "Unique identifier for a ExpenseClaim", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a ExpenseClaim" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveExpenseClaimHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveExpenseClaimHistory.json new file mode 100644 index 00000000..58109930 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveExpenseClaimHistory.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveExpenseClaimHistory", + "fully_qualified_name": "XeroApi.RetrieveExpenseClaimHistory@0.1.0", + "description": "Retrieve the history of a specific expense claim.\n\nUse this tool to obtain history records for a specific expense claim using its ID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "expense_claim_id", + "required": true, + "description": "Unique identifier for retrieving the specific expense claim history.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a ExpenseClaim" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ExpenseClaimID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Xero identifier for the tenant. This is required to specify which tenant's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getExpenseClaimHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/ExpenseClaims/{ExpenseClaimID}/History", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ExpenseClaimID", + "tool_parameter_name": "expense_claim_id", + "description": "Unique identifier for a ExpenseClaim", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a ExpenseClaim" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveExpenseClaims.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveExpenseClaims.json new file mode 100644 index 00000000..2abb4bd8 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveExpenseClaims.json @@ -0,0 +1,204 @@ +{ + "name": "RetrieveExpenseClaims", + "fully_qualified_name": "XeroApi.RetrieveExpenseClaims@0.1.0", + "description": "Fetches expense claims from Xero.\n\nThis tool should be called to retrieve detailed expense claims data from Xero. It can be used to review or analyze expenses.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_identifier", + "required": true, + "description": "The unique identifier for the Xero tenant required to specify which organization's data to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_by_element", + "required": false, + "description": "Apply a filter based on specific elements in the expense claims.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "order_by", + "required": false, + "description": "Specify the element by which to order the expense claims, such as date or amount.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "modified_since_timestamp", + "required": false, + "description": "Retrieve records created or modified since this timestamp in ISO 8601 format (e.g., '2023-10-04T00:00:00Z').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "inferrable": true, + "http_endpoint_parameter_name": "If-Modified-Since" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getExpenseClaims'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/ExpenseClaims", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_by_element", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_by", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "If-Modified-Since", + "tool_parameter_name": "modified_since_timestamp", + "description": "Only records created or modified since this timestamp will be returned", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveFullChartOfAccounts.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveFullChartOfAccounts.json new file mode 100644 index 00000000..668f36df --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveFullChartOfAccounts.json @@ -0,0 +1,204 @@ +{ + "name": "RetrieveFullChartOfAccounts", + "fully_qualified_name": "XeroApi.RetrieveFullChartOfAccounts@0.1.0", + "description": "Retrieves the full chart of accounts from Xero.\n\nUse this tool to obtain the complete chart of accounts from Xero, which includes all accounting categories and their details. It is useful for analyzing financial structures within the Xero platform.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Unique identifier for the Xero tenant to retrieve its accounts.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_by_attribute", + "required": false, + "description": "Filter accounts by specific attributes or conditions using string syntax.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "order_by_element", + "required": false, + "description": "Specify a field to order the returned accounts (e.g., 'Name' or 'AccountType').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "only_modified_since_timestamp", + "required": false, + "description": "Specify a timestamp to return only records created or modified since that time. The timestamp should be in ISO 8601 format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "inferrable": true, + "http_endpoint_parameter_name": "If-Modified-Since" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getAccounts'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings", + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Accounts", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_by_attribute", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_by_element", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "If-Modified-Since", + "tool_parameter_name": "only_modified_since_timestamp", + "description": "Only records created or modified since this timestamp will be returned", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoiceAttachment.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoiceAttachment.json new file mode 100644 index 00000000..ba11c993 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoiceAttachment.json @@ -0,0 +1,202 @@ +{ + "name": "RetrieveInvoiceAttachment", + "fully_qualified_name": "XeroApi.RetrieveInvoiceAttachment@0.1.0", + "description": "Retrieve a specific attachment from a repeating invoice.\n\nUse this tool to get a particular attachment from a specific repeating invoice in Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "repeating_invoice_id", + "required": true, + "description": "Unique identifier for a Repeating Invoice in Xero system.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Repeating Invoice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "RepeatingInvoiceID" + }, + { + "name": "attachment_id", + "required": true, + "description": "Unique identifier for the attachment object you want to retrieve from the repeating invoice.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AttachmentID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant needed to retrieve the repeating invoice attachment.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_mime_type", + "required": true, + "description": "The MIME type of the attachment file, such as image/jpg or application/pdf.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getRepeatingInvoiceAttachmentById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{AttachmentID}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "RepeatingInvoiceID", + "tool_parameter_name": "repeating_invoice_id", + "description": "Unique identifier for a Repeating Invoice", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Repeating Invoice" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "AttachmentID", + "tool_parameter_name": "attachment_id", + "description": "Unique identifier for Attachment object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoiceAttachmentById.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoiceAttachmentById.json new file mode 100644 index 00000000..5982c997 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoiceAttachmentById.json @@ -0,0 +1,204 @@ +{ + "name": "RetrieveInvoiceAttachmentById", + "fully_qualified_name": "XeroApi.RetrieveInvoiceAttachmentById@0.1.0", + "description": "Retrieve a specific invoice attachment by ID.\n\nUse this tool to obtain a specific attachment from an invoice or purchase bill using its unique attachment ID in Xero. Call this tool when you need to access or review an attachment related to an invoice.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invoice_id", + "required": true, + "description": "The unique identifier for the invoice to retrieve the attachment from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Invoice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "InvoiceID" + }, + { + "name": "attachment_id", + "required": true, + "description": "Unique identifier for the attachment object in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AttachmentID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant. Required to specify the tenant from which the attachment is being retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_mime_type", + "required": true, + "description": "The MIME type of the attachment file, e.g., image/jpg or application/pdf.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getInvoiceAttachmentById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Invoices/{InvoiceID}/Attachments/{AttachmentID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "InvoiceID", + "tool_parameter_name": "invoice_id", + "description": "Unique identifier for an Invoice", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Invoice" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "AttachmentID", + "tool_parameter_name": "attachment_id", + "description": "Unique identifier for Attachment object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoiceAttachments.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoiceAttachments.json new file mode 100644 index 00000000..7a25649c --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoiceAttachments.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveInvoiceAttachments", + "fully_qualified_name": "XeroApi.RetrieveInvoiceAttachments@0.1.0", + "description": "Retrieve attachments for a specific invoice or bill.\n\nThis tool is used to obtain attachments related to a particular invoice or purchase bill from Xero. Call this tool when you need to access documents or files attached to a specific invoice.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invoice_id", + "required": true, + "description": "Unique identifier for the invoice to retrieve attachments from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Invoice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "InvoiceID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the Tenant that owns the invoice.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getInvoiceAttachments'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Invoices/{InvoiceID}/Attachments", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "InvoiceID", + "tool_parameter_name": "invoice_id", + "description": "Unique identifier for an Invoice", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Invoice" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoiceHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoiceHistory.json new file mode 100644 index 00000000..d6782e00 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoiceHistory.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveInvoiceHistory", + "fully_qualified_name": "XeroApi.RetrieveInvoiceHistory@0.1.0", + "description": "Retrieve history of a specific invoice.\n\nRetrieves history records for a specific invoice using its Invoice ID. This tool is useful for tracking changes and updates made to an invoice over time.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invoice_id", + "required": true, + "description": "Unique identifier for the invoice to retrieve its history.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Invoice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "InvoiceID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant. This is required to specify which tenant's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getInvoiceHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Invoices/{InvoiceID}/History", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "InvoiceID", + "tool_parameter_name": "invoice_id", + "description": "Unique identifier for an Invoice", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Invoice" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoicePayment.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoicePayment.json new file mode 100644 index 00000000..dc4f5a04 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoicePayment.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveInvoicePayment", + "fully_qualified_name": "XeroApi.RetrieveInvoicePayment@0.1.0", + "description": "Retrieve specific payment details using a payment ID.\n\nThis tool retrieves details of a specific payment associated with invoices and credit notes using a unique payment ID. It should be called when there is a need to access information about a particular payment in Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "payment_id", + "required": true, + "description": "Unique identifier for the payment, used to retrieve specific payment details in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Payment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "PaymentID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Xero identifier for the tenant. This is required to specify which organization's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getPayment'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Payments/{PaymentID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "PaymentID", + "tool_parameter_name": "payment_id", + "description": "Unique identifier for a Payment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Payment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoicePdf.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoicePdf.json new file mode 100644 index 00000000..e172ef77 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoicePdf.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveInvoicePdf", + "fully_qualified_name": "XeroApi.RetrieveInvoicePdf@0.1.0", + "description": "Retrieve an invoice or purchase bill as a PDF.\n\nThis tool retrieves an invoice or purchase bill in PDF format using the invoice ID. It is useful when you need a downloadable version of an invoice from Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invoice_id", + "required": true, + "description": "Unique identifier for the invoice to retrieve as a PDF from Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Invoice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "InvoiceID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "The unique Xero identifier for the tenant. This is required to specify the account from which to retrieve the invoice PDF.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getInvoiceAsPdf'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Invoices/{InvoiceID}/pdf", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "InvoiceID", + "tool_parameter_name": "invoice_id", + "description": "Unique identifier for an Invoice", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Invoice" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoices.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoices.json new file mode 100644 index 00000000..2130c65e --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveInvoices.json @@ -0,0 +1,556 @@ +{ + "name": "RetrieveInvoices", + "fully_qualified_name": "XeroApi.RetrieveInvoices@0.1.0", + "description": "Retrieve sales invoices or purchase bills from Xero.\n\nUse this tool to retrieve detailed information about sales invoices or purchase bills from Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_id", + "required": true, + "description": "Unique identifier for a Xero tenant to retrieve invoices specific to that tenant.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_by_condition", + "required": false, + "description": "Filter using a condition expression defined on any element, similar to a SQL WHERE clause.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "order_by", + "required": false, + "description": "Specify the criteria for ordering invoices, such as date or amount.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "invoice_ids", + "required": false, + "description": "Comma-separated list of Invoice IDs to filter results.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by a comma-separated list of InvoicesIDs." + }, + "inferrable": true, + "http_endpoint_parameter_name": "IDs" + }, + { + "name": "filter_by_invoice_numbers", + "required": false, + "description": "Filter results by providing a list of invoice numbers. Each item should be a string representing one invoice number.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by a comma-separated list of InvoiceNumbers." + }, + "inferrable": true, + "http_endpoint_parameter_name": "InvoiceNumbers" + }, + { + "name": "filter_contact_ids", + "required": false, + "description": "Comma-separated list of ContactIDs to filter invoices.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by a comma-separated list of ContactIDs." + }, + "inferrable": true, + "http_endpoint_parameter_name": "ContactIDs" + }, + { + "name": "filter_by_statuses", + "required": false, + "description": "Filter invoices by a list of statuses for improved response times. Use explicit parameters instead of OR conditions.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by a comma-separated list Statuses. For faster response times we recommend using these explicit parameters instead of passing OR conditions into the Where filter." + }, + "inferrable": true, + "http_endpoint_parameter_name": "Statuses" + }, + { + "name": "page_number", + "required": false, + "description": "Specify the page number to retrieve. Up to 100 invoices per page can be returned.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. page=1 \u2013 Up to 100 invoices will be returned in a single API call with line items shown for each invoice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page" + }, + { + "name": "unit_decimal_places", + "required": false, + "description": "Specify the number of decimal places for unit amounts, e.g., 4 for four decimal places.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "inferrable": true, + "http_endpoint_parameter_name": "unitdp" + }, + { + "name": "records_per_page", + "required": false, + "description": "Specify the number of invoice records to retrieve per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of records to retrieve per page" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pageSize" + }, + { + "name": "search_term", + "required": false, + "description": "A case-insensitive search parameter for fields like InvoiceNumber and Reference.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Search parameter that performs a case-insensitive text search across the fields e.g. InvoiceNumber, Reference." + }, + "inferrable": true, + "http_endpoint_parameter_name": "searchTerm" + }, + { + "name": "modified_since_timestamp", + "required": false, + "description": "Return only records created or modified since this timestamp. Use the format 'YYYY-MM-DDTHH:MM:SS'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "inferrable": true, + "http_endpoint_parameter_name": "If-Modified-Since" + }, + { + "name": "include_archived_invoices", + "required": false, + "description": "Set to true to include invoices with a status of ARCHIVED in the response.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. includeArchived=true - Invoices with a status of ARCHIVED will be included in the response" + }, + "inferrable": true, + "http_endpoint_parameter_name": "includeArchived" + }, + { + "name": "filter_by_created_by_my_app", + "required": false, + "description": "Set to true to retrieve only invoices created by your app.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When set to true you'll only retrieve Invoices created by your app" + }, + "inferrable": true, + "http_endpoint_parameter_name": "createdByMyApp" + }, + { + "name": "retrieve_summary_only", + "required": false, + "description": "Set to true to retrieve a smaller, lightweight version of the response for quicker API calls, excluding computation-heavy fields.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Use summaryOnly=true in GET Contacts and Invoices endpoint to retrieve a smaller version of the response object. This returns only lightweight fields, excluding computation-heavy fields from the response, making the API calls quick and efficient." + }, + "inferrable": true, + "http_endpoint_parameter_name": "summaryOnly" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getInvoices'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Invoices", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_by_condition", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_by", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "IDs", + "tool_parameter_name": "invoice_ids", + "description": "Filter by a comma-separated list of InvoicesIDs.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by a comma-separated list of InvoicesIDs." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "InvoiceNumbers", + "tool_parameter_name": "filter_by_invoice_numbers", + "description": "Filter by a comma-separated list of InvoiceNumbers.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by a comma-separated list of InvoiceNumbers." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "ContactIDs", + "tool_parameter_name": "filter_contact_ids", + "description": "Filter by a comma-separated list of ContactIDs.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by a comma-separated list of ContactIDs." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Statuses", + "tool_parameter_name": "filter_by_statuses", + "description": "Filter by a comma-separated list Statuses. For faster response times we recommend using these explicit parameters instead of passing OR conditions into the Where filter.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by a comma-separated list Statuses. For faster response times we recommend using these explicit parameters instead of passing OR conditions into the Where filter." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page", + "tool_parameter_name": "page_number", + "description": "e.g. page=1 \u2013 Up to 100 invoices will be returned in a single API call with line items shown for each invoice", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. page=1 \u2013 Up to 100 invoices will be returned in a single API call with line items shown for each invoice" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "includeArchived", + "tool_parameter_name": "include_archived_invoices", + "description": "e.g. includeArchived=true - Invoices with a status of ARCHIVED will be included in the response", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. includeArchived=true - Invoices with a status of ARCHIVED will be included in the response" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "createdByMyApp", + "tool_parameter_name": "filter_by_created_by_my_app", + "description": "When set to true you'll only retrieve Invoices created by your app", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When set to true you'll only retrieve Invoices created by your app" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "unitdp", + "tool_parameter_name": "unit_decimal_places", + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "summaryOnly", + "tool_parameter_name": "retrieve_summary_only", + "description": "Use summaryOnly=true in GET Contacts and Invoices endpoint to retrieve a smaller version of the response object. This returns only lightweight fields, excluding computation-heavy fields from the response, making the API calls quick and efficient.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Use summaryOnly=true in GET Contacts and Invoices endpoint to retrieve a smaller version of the response object. This returns only lightweight fields, excluding computation-heavy fields from the response, making the API calls quick and efficient." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "pageSize", + "tool_parameter_name": "records_per_page", + "description": "Number of records to retrieve per page", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of records to retrieve per page" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "searchTerm", + "tool_parameter_name": "search_term", + "description": "Search parameter that performs a case-insensitive text search across the fields e.g. InvoiceNumber, Reference.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Search parameter that performs a case-insensitive text search across the fields e.g. InvoiceNumber, Reference." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "If-Modified-Since", + "tool_parameter_name": "modified_since_timestamp", + "description": "Only records created or modified since this timestamp will be returned", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveJournalAttachment.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveJournalAttachment.json new file mode 100644 index 00000000..1ed322b0 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveJournalAttachment.json @@ -0,0 +1,204 @@ +{ + "name": "RetrieveJournalAttachment", + "fully_qualified_name": "XeroApi.RetrieveJournalAttachment@0.1.0", + "description": "Retrieve a specific attachment from a manual journal using its ID.\n\nUse this tool to obtain a particular attachment linked to a specific manual journal by providing the unique attachment ID. Ideal for accessing relevant documents or files associated with journal entries.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "manual_journal_id", + "required": true, + "description": "Unique identifier for the manual journal from which to retrieve the attachment.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a ManualJournal" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ManualJournalID" + }, + { + "name": "attachment_id", + "required": true, + "description": "Provide the unique identifier for the attachment object to retrieve it from a manual journal.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AttachmentID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique Xero identifier for the tenant. Required to specify which tenant's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_mime_type", + "required": true, + "description": "Specify the mime type of the attachment (e.g., image/jpg, application/pdf) to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getManualJournalAttachmentById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/ManualJournals/{ManualJournalID}/Attachments/{AttachmentID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ManualJournalID", + "tool_parameter_name": "manual_journal_id", + "description": "Unique identifier for a ManualJournal", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a ManualJournal" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "AttachmentID", + "tool_parameter_name": "attachment_id", + "description": "Unique identifier for Attachment object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveJournalAttachments.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveJournalAttachments.json new file mode 100644 index 00000000..df512e89 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveJournalAttachments.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveJournalAttachments", + "fully_qualified_name": "XeroApi.RetrieveJournalAttachments@0.1.0", + "description": "Retrieve attachments for a specific manual journal.\n\nUse this tool to retrieve attachments associated with a given manual journal in Xero. Ideal for accessing or reviewing documents linked to journal entries.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "manual_journal_id", + "required": true, + "description": "The unique identifier for a specific manual journal to retrieve its attachments.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a ManualJournal" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ManualJournalID" + }, + { + "name": "tenant_id", + "required": true, + "description": "The unique Xero identifier for the tenant to access the manual journal attachments.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getManualJournalAttachments'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/ManualJournals/{ManualJournalID}/Attachments", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ManualJournalID", + "tool_parameter_name": "manual_journal_id", + "description": "Unique identifier for a ManualJournal", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a ManualJournal" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveJournalByNumber.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveJournalByNumber.json new file mode 100644 index 00000000..e3c08a8d --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveJournalByNumber.json @@ -0,0 +1,139 @@ +{ + "name": "RetrieveJournalByNumber", + "fully_qualified_name": "XeroApi.RetrieveJournalByNumber@0.1.0", + "description": "Retrieve a specific journal by its unique number.\n\nUse this tool to obtain detailed information about a particular journal entry using its unique journal number.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "journal_number", + "required": true, + "description": "The unique number identifying the journal entry to retrieve.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of a Journal" + }, + "inferrable": true, + "http_endpoint_parameter_name": "JournalNumber" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "The unique identifier for a Xero tenant to specify the context for the journal retrieval.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getJournalByNumber'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.journals.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Journals/{JournalNumber}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "JournalNumber", + "tool_parameter_name": "journal_number", + "description": "Number of a Journal", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of a Journal" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveLinkedTransactions.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveLinkedTransactions.json new file mode 100644 index 00000000..e1015a82 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveLinkedTransactions.json @@ -0,0 +1,300 @@ +{ + "name": "RetrieveLinkedTransactions", + "fully_qualified_name": "XeroApi.RetrieveLinkedTransactions@0.1.0", + "description": "Retrieve linked transactions from Xero.\n\nUse this tool to get linked transactions, such as billable expenses, from the Xero platform. Call it when you need details about expenses that are linked or billable in Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tenant_identifier", + "required": true, + "description": "The Xero identifier for a specific tenant. Required for identifying the tenant whose linked transactions are being retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "page_number", + "required": false, + "description": "Specify the page number to retrieve in paginated results, starting from 1.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Up to 100 linked transactions will be returned in a single API call. Use the page parameter to specify the page to be returned e.g. page=1." + }, + "inferrable": true, + "http_endpoint_parameter_name": "page" + }, + { + "name": "linked_transaction_id", + "required": false, + "description": "The Xero identifier for a Linked Transaction to retrieve specific billable expenses.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Xero identifier for an Linked Transaction" + }, + "inferrable": true, + "http_endpoint_parameter_name": "LinkedTransactionID" + }, + { + "name": "source_transaction_id", + "required": false, + "description": "Filter by SourceTransactionID to get linked transactions from a specific ACCPAY invoice.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by the SourceTransactionID. Get the linked transactions created from a particular ACCPAY invoice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "SourceTransactionID" + }, + { + "name": "filter_by_contact_id", + "required": false, + "description": "Filter results by the customer's ContactID to get linked transactions for a specific customer.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by the ContactID. Get all the linked transactions that have been assigned to a particular customer." + }, + "inferrable": true, + "http_endpoint_parameter_name": "ContactID" + }, + { + "name": "filter_by_status", + "required": false, + "description": "Filter linked transactions by status when combined with ContactID. Retrieves transactions associated with a customer based on this status.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by the combination of ContactID and Status. Get the linked transactions associated to a customer and with a status" + }, + "inferrable": true, + "http_endpoint_parameter_name": "Status" + }, + { + "name": "filter_by_target_transaction_id", + "required": false, + "description": "Filter linked transactions by TargetTransactionID to get those allocated to a specific ACCREC invoice.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by the TargetTransactionID. Get all the linked transactions allocated to a particular ACCREC invoice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "TargetTransactionID" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getLinkedTransactions'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/LinkedTransactions", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "page", + "tool_parameter_name": "page_number", + "description": "Up to 100 linked transactions will be returned in a single API call. Use the page parameter to specify the page to be returned e.g. page=1.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Up to 100 linked transactions will be returned in a single API call. Use the page parameter to specify the page to be returned e.g. page=1." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "LinkedTransactionID", + "tool_parameter_name": "linked_transaction_id", + "description": "The Xero identifier for an Linked Transaction", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Xero identifier for an Linked Transaction" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "SourceTransactionID", + "tool_parameter_name": "source_transaction_id", + "description": "Filter by the SourceTransactionID. Get the linked transactions created from a particular ACCPAY invoice", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by the SourceTransactionID. Get the linked transactions created from a particular ACCPAY invoice" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "ContactID", + "tool_parameter_name": "filter_by_contact_id", + "description": "Filter by the ContactID. Get all the linked transactions that have been assigned to a particular customer.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by the ContactID. Get all the linked transactions that have been assigned to a particular customer." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Status", + "tool_parameter_name": "filter_by_status", + "description": "Filter by the combination of ContactID and Status. Get the linked transactions associated to a customer and with a status", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by the combination of ContactID and Status. Get the linked transactions associated to a customer and with a status" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "TargetTransactionID", + "tool_parameter_name": "filter_by_target_transaction_id", + "description": "Filter by the TargetTransactionID. Get all the linked transactions allocated to a particular ACCREC invoice", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by the TargetTransactionID. Get all the linked transactions allocated to a particular ACCREC invoice" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveManualJournal.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveManualJournal.json new file mode 100644 index 00000000..7c7c512e --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveManualJournal.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveManualJournal", + "fully_qualified_name": "XeroApi.RetrieveManualJournal@0.1.0", + "description": "Retrieve details of a specific manual journal.\n\nUse this tool to obtain information about a particular manual journal by its ID. Ideal for users needing specific journal entry details from Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "manual_journal_id", + "required": true, + "description": "Unique identifier for the manual journal you want to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a ManualJournal" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ManualJournalID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique identifier for a Xero tenant. Required to access tenant-specific data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getManualJournal'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/ManualJournals/{ManualJournalID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ManualJournalID", + "tool_parameter_name": "manual_journal_id", + "description": "Unique identifier for a ManualJournal", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a ManualJournal" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveManualJournals.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveManualJournals.json new file mode 100644 index 00000000..517a60d9 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveManualJournals.json @@ -0,0 +1,268 @@ +{ + "name": "RetrieveManualJournals", + "fully_qualified_name": "XeroApi.RetrieveManualJournals@0.1.0", + "description": "Retrieve manual journals from Xero.\n\nUse this tool to get a list of manual journals from Xero, typically when needing insights into financial entries or audits.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tenant_identifier", + "required": true, + "description": "The unique Xero identifier for the Tenant to retrieve manual journals from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_criteria", + "required": false, + "description": "Filter manual journals based on specified criteria, such as date or amount.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "order_by_element", + "required": false, + "description": "Specify the element to order the results by. Use field names like date, amount, etc.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "page_number", + "required": false, + "description": "The page number to retrieve, e.g., page=1. Returns up to 100 manual journals per call.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. page=1 \u2013 Up to 100 manual journals will be returned in a single API call with line items shown for each overpayment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page" + }, + { + "name": "records_per_page", + "required": false, + "description": "Specify the number of manual journal records to retrieve per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of records to retrieve per page" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pageSize" + }, + { + "name": "modified_since_timestamp", + "required": false, + "description": "Retrieve records created or modified since this timestamp (ISO 8601 format).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "inferrable": true, + "http_endpoint_parameter_name": "If-Modified-Since" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getManualJournals'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/ManualJournals", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_criteria", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_by_element", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page", + "tool_parameter_name": "page_number", + "description": "e.g. page=1 \u2013 Up to 100 manual journals will be returned in a single API call with line items shown for each overpayment", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. page=1 \u2013 Up to 100 manual journals will be returned in a single API call with line items shown for each overpayment" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "pageSize", + "tool_parameter_name": "records_per_page", + "description": "Number of records to retrieve per page", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of records to retrieve per page" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "If-Modified-Since", + "tool_parameter_name": "modified_since_timestamp", + "description": "Only records created or modified since this timestamp will be returned", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveOnlineInvoiceUrl.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveOnlineInvoiceUrl.json new file mode 100644 index 00000000..eeb0a3ec --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveOnlineInvoiceUrl.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveOnlineInvoiceUrl", + "fully_qualified_name": "XeroApi.RetrieveOnlineInvoiceUrl@0.1.0", + "description": "Retrieve a URL for viewing an online invoice.\n\nUse this tool to obtain a direct URL for accessing a specific online invoice based on its InvoiceID. The tool helps retrieve online invoice links for quick viewing and sharing.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invoice_identifier", + "required": true, + "description": "Unique identifier for the invoice to retrieve its online URL.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Invoice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "InvoiceID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Xero tenant identifier needed to retrieve the correct online invoice.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getOnlineInvoice'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Invoices/{InvoiceID}/OnlineInvoice", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "InvoiceID", + "tool_parameter_name": "invoice_identifier", + "description": "Unique identifier for an Invoice", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Invoice" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveOverpayments.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveOverpayments.json new file mode 100644 index 00000000..f9ebbd87 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveOverpayments.json @@ -0,0 +1,300 @@ +{ + "name": "RetrieveOverpayments", + "fully_qualified_name": "XeroApi.RetrieveOverpayments@0.1.0", + "description": "Retrieve overpayments from the accounting system.\n\nUse this tool to access and retrieve a list of overpayments recorded in the Xero accounting system. This is useful for financial analysis and reconciliation.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tenant_identifier", + "required": true, + "description": "The unique identifier for the Xero tenant to retrieve overpayments for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_criteria", + "required": false, + "description": "Filter overpayments by a specific element or condition. Use syntax like \"Property=value\" for filtering.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "order_by_element", + "required": false, + "description": "Specify the element by which to order the retrieved overpayments. Accepts any valid field.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "page_number", + "required": false, + "description": "The page number for retrieving overpayments. Up to 100 overpayments will be returned per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. page=1 \u2013 Up to 100 overpayments will be returned in a single API call with line items shown for each overpayment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page" + }, + { + "name": "unit_decimal_places", + "required": false, + "description": "The number of decimal places to use for unit amounts. Accepts up to four decimals.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "inferrable": true, + "http_endpoint_parameter_name": "unitdp" + }, + { + "name": "records_per_page", + "required": false, + "description": "Specify the number of records to retrieve per page. Determines the page size for the results.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of records to retrieve per page" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pageSize" + }, + { + "name": "records_modified_since", + "required": false, + "description": "Return records created or modified after the specified timestamp in ISO 8601 format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "inferrable": true, + "http_endpoint_parameter_name": "If-Modified-Since" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getOverpayments'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Overpayments", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_criteria", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_by_element", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page", + "tool_parameter_name": "page_number", + "description": "e.g. page=1 \u2013 Up to 100 overpayments will be returned in a single API call with line items shown for each overpayment", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. page=1 \u2013 Up to 100 overpayments will be returned in a single API call with line items shown for each overpayment" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "unitdp", + "tool_parameter_name": "unit_decimal_places", + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "pageSize", + "tool_parameter_name": "records_per_page", + "description": "Number of records to retrieve per page", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of records to retrieve per page" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "If-Modified-Since", + "tool_parameter_name": "records_modified_since", + "description": "Only records created or modified since this timestamp will be returned", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePaymentHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePaymentHistory.json new file mode 100644 index 00000000..97c93648 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePaymentHistory.json @@ -0,0 +1,140 @@ +{ + "name": "RetrievePaymentHistory", + "fully_qualified_name": "XeroApi.RetrievePaymentHistory@0.1.0", + "description": "Retrieve the history records of a specific payment.\n\nUse this tool to obtain historical records related to a specific payment, including updates and changes made over time.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "payment_identifier", + "required": true, + "description": "Unique identifier for a specific payment to retrieve its history.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Payment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "PaymentID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant. Used to specify which tenant's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getPaymentHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Payments/{PaymentID}/History", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "PaymentID", + "tool_parameter_name": "payment_identifier", + "description": "Unique identifier for a Payment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Payment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePaymentServices.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePaymentServices.json new file mode 100644 index 00000000..0d15c33a --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePaymentServices.json @@ -0,0 +1,107 @@ +{ + "name": "RetrievePaymentServices", + "fully_qualified_name": "XeroApi.RetrievePaymentServices@0.1.0", + "description": "Retrieve available payment services from Xero.\n\nUse this tool to obtain a list of payment services available in Xero. It should be called when you need to access or display payment service options.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_id", + "required": true, + "description": "Unique identifier for the Xero tenant. Required to retrieve specific payment services for the tenant.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getPaymentServices'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "paymentservices" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/PaymentServices", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePoAttachmentByFilename.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePoAttachmentByFilename.json new file mode 100644 index 00000000..06b93d7b --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePoAttachmentByFilename.json @@ -0,0 +1,204 @@ +{ + "name": "RetrievePoAttachmentByFilename", + "fully_qualified_name": "XeroApi.RetrievePoAttachmentByFilename@0.1.0", + "description": "Retrieve a purchase order attachment by filename.\n\nUse this tool to get a specific attachment from a purchase order in Xero by providing the filename. It's useful for accessing documents linked to purchase orders.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "purchase_order_id", + "required": true, + "description": "Unique identifier for the purchase order you want to retrieve the attachment from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Purchase Order" + }, + "inferrable": true, + "http_endpoint_parameter_name": "PurchaseOrderID" + }, + { + "name": "attachment_file_name", + "required": true, + "description": "Name of the attachment file to be retrieved from the purchase order.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "FileName" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero unique identifier for the tenant organization. Required to specify which organization's data to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_mime_type", + "required": true, + "description": "The MIME type of the attachment file to retrieve, e.g., image/jpg or application/pdf.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getPurchaseOrderAttachmentByFileName'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/PurchaseOrders/{PurchaseOrderID}/Attachments/{FileName}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "PurchaseOrderID", + "tool_parameter_name": "purchase_order_id", + "description": "Unique identifier for an Purchase Order", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Purchase Order" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "FileName", + "tool_parameter_name": "attachment_file_name", + "description": "Name of the attachment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePrepayments.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePrepayments.json new file mode 100644 index 00000000..475faa38 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePrepayments.json @@ -0,0 +1,300 @@ +{ + "name": "RetrievePrepayments", + "fully_qualified_name": "XeroApi.RetrievePrepayments@0.1.0", + "description": "Retrieve prepayment details from Xero.\n\nUse this tool to fetch prepayment information from the Xero API, providing insights into prepayment transactions.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_identifier", + "required": true, + "description": "The unique Xero identifier for the Tenant. Required for specifying which account's prepayments to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_condition", + "required": false, + "description": "Provide a filter condition to specify which prepayments to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "order_criteria", + "required": false, + "description": "Specifies the order of elements. Use field names for custom sorting, such as 'Date ASC' or 'Amount DESC'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "page_number", + "required": false, + "description": "Specify the page number to retrieve, up to 100 prepayments per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. page=1 \u2013 Up to 100 prepayments will be returned in a single API call with line items shown for each overpayment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page" + }, + { + "name": "unit_decimal_places", + "required": false, + "description": "Specify the number of decimal places (e.g., 4) for unit amounts. Use for precise calculations.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "inferrable": true, + "http_endpoint_parameter_name": "unitdp" + }, + { + "name": "records_per_page", + "required": false, + "description": "The number of prepayment records to retrieve per page. This controls how many results are returned in a single call.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of records to retrieve per page" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pageSize" + }, + { + "name": "modified_since_timestamp", + "required": false, + "description": "Only return records created or modified since the specified timestamp (e.g., '2023-10-01T00:00:00Z').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "inferrable": true, + "http_endpoint_parameter_name": "If-Modified-Since" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getPrepayments'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Prepayments", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_condition", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_criteria", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page", + "tool_parameter_name": "page_number", + "description": "e.g. page=1 \u2013 Up to 100 prepayments will be returned in a single API call with line items shown for each overpayment", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. page=1 \u2013 Up to 100 prepayments will be returned in a single API call with line items shown for each overpayment" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "unitdp", + "tool_parameter_name": "unit_decimal_places", + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "pageSize", + "tool_parameter_name": "records_per_page", + "description": "Number of records to retrieve per page", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of records to retrieve per page" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "If-Modified-Since", + "tool_parameter_name": "modified_since_timestamp", + "description": "Only records created or modified since this timestamp will be returned", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrder.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrder.json new file mode 100644 index 00000000..788637df --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrder.json @@ -0,0 +1,140 @@ +{ + "name": "RetrievePurchaseOrder", + "fully_qualified_name": "XeroApi.RetrievePurchaseOrder@0.1.0", + "description": "Retrieve details of a specific purchase order by ID.\n\nUse this tool to obtain information about a particular purchase order by specifying its unique ID. Ideal for retrieving order details when managing inventory or processing transactions.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "purchase_order_id", + "required": true, + "description": "Unique identifier for a purchase order. Required to retrieve specific purchase order details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Purchase Order" + }, + "inferrable": true, + "http_endpoint_parameter_name": "PurchaseOrderID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Xero identifier for the tenant. This is required to specify which tenant's purchase order to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getPurchaseOrder'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/PurchaseOrders/{PurchaseOrderID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "PurchaseOrderID", + "tool_parameter_name": "purchase_order_id", + "description": "Unique identifier for an Purchase Order", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Purchase Order" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrderAttachments.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrderAttachments.json new file mode 100644 index 00000000..f034112e --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrderAttachments.json @@ -0,0 +1,140 @@ +{ + "name": "RetrievePurchaseOrderAttachments", + "fully_qualified_name": "XeroApi.RetrievePurchaseOrderAttachments@0.1.0", + "description": "Retrieve attachments for a specific purchase order.\n\nThis tool retrieves all attachments associated with a given purchase order in Xero. It should be called when you need to access or review files linked to a specific purchase order.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "purchase_order_id", + "required": true, + "description": "Unique identifier for a purchase order to retrieve its attachments.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Purchase Order" + }, + "inferrable": true, + "http_endpoint_parameter_name": "PurchaseOrderID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique Xero identifier for the tenant linked to the purchase order. Required to authenticate and access tenant-specific data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getPurchaseOrderAttachments'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/PurchaseOrders/{PurchaseOrderID}/Attachments", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "PurchaseOrderID", + "tool_parameter_name": "purchase_order_id", + "description": "Unique identifier for an Purchase Order", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Purchase Order" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrderByNumber.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrderByNumber.json new file mode 100644 index 00000000..8d55d335 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrderByNumber.json @@ -0,0 +1,140 @@ +{ + "name": "RetrievePurchaseOrderByNumber", + "fully_qualified_name": "XeroApi.RetrievePurchaseOrderByNumber@0.1.0", + "description": "Fetches a purchase order using its unique number.\n\nUse this tool to retrieve detailed information about a specific purchase order by providing its unique order number.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "purchase_order_number", + "required": true, + "description": "Unique identifier for the purchase order to be fetched.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a PurchaseOrder" + }, + "inferrable": true, + "http_endpoint_parameter_name": "PurchaseOrderNumber" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Unique identifier for the Xero tenant. Required to specify the account from which to retrieve the purchase order.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getPurchaseOrderByNumber'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/PurchaseOrders/{PurchaseOrderNumber}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "PurchaseOrderNumber", + "tool_parameter_name": "purchase_order_number", + "description": "Unique identifier for a PurchaseOrder", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a PurchaseOrder" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrderHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrderHistory.json new file mode 100644 index 00000000..443a6d4d --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrderHistory.json @@ -0,0 +1,140 @@ +{ + "name": "RetrievePurchaseOrderHistory", + "fully_qualified_name": "XeroApi.RetrievePurchaseOrderHistory@0.1.0", + "description": "Retrieve the history of a specific purchase order.\n\nUse this tool to obtain historical details for a specified purchase order by its ID. It provides insights into changes and updates made to the order over time.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "purchase_order_id", + "required": true, + "description": "Unique identifier for the purchase order to retrieve its history.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Purchase Order" + }, + "inferrable": true, + "http_endpoint_parameter_name": "PurchaseOrderID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant, required to specify which organization data belongs to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getPurchaseOrderHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/PurchaseOrders/{PurchaseOrderID}/History", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "PurchaseOrderID", + "tool_parameter_name": "purchase_order_id", + "description": "Unique identifier for an Purchase Order", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Purchase Order" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrders.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrders.json new file mode 100644 index 00000000..ea7d0095 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrievePurchaseOrders.json @@ -0,0 +1,344 @@ +{ + "name": "RetrievePurchaseOrders", + "fully_qualified_name": "XeroApi.RetrievePurchaseOrders@0.1.0", + "description": "Retrieve purchase orders from Xero.\n\nUse this tool to obtain purchase orders from Xero. Call when you need a list of purchase orders with details such as order status, dates, and amounts.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_id", + "required": true, + "description": "Unique identifier for the Xero tenant to access specific organization's data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_by_status", + "required": false, + "description": "Filter purchase orders by status. Accepted values are: 'DRAFT', 'SUBMITTED', 'AUTHORISED', 'BILLED', 'DELETED'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "DRAFT", + "SUBMITTED", + "AUTHORISED", + "BILLED", + "DELETED" + ], + "properties": null, + "inner_properties": null, + "description": "Filter by purchase order status" + }, + "inferrable": true, + "http_endpoint_parameter_name": "Status" + }, + { + "name": "filter_by_start_date", + "required": false, + "description": "Specify the start date for filtering purchase orders. Use format 'YYYY-MM-DD'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by purchase order date (e.g. GET https://.../PurchaseOrders?DateFrom=2015-12-01&DateTo=2015-12-31" + }, + "inferrable": true, + "http_endpoint_parameter_name": "DateFrom" + }, + { + "name": "filter_by_end_date", + "required": false, + "description": "Filter purchase orders by end date (format: YYYY-MM-DD).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by purchase order date (e.g. GET https://.../PurchaseOrders?DateFrom=2015-12-01&DateTo=2015-12-31" + }, + "inferrable": true, + "http_endpoint_parameter_name": "DateTo" + }, + { + "name": "order_by_element", + "required": false, + "description": "Specifies the element by which to sort the purchase orders, such as date or status. Accepts any valid field name.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "page_number", + "required": false, + "description": "Specifies the page of results to retrieve. Increment to access subsequent pages of purchase orders.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "To specify a page, append the page parameter to the URL e.g. ?page=1. If there are 100 records in the response you will need to check if there is any more data by fetching the next page e.g ?page=2 and continuing this process until no more results are returned." + }, + "inferrable": true, + "http_endpoint_parameter_name": "page" + }, + { + "name": "records_per_page", + "required": false, + "description": "Specify the number of purchase order records to retrieve per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of records to retrieve per page" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pageSize" + }, + { + "name": "modified_since_timestamp", + "required": false, + "description": "Timestamp to filter records created or modified since this time. Use ISO 8601 format (e.g., '2023-01-01T00:00:00Z').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "inferrable": true, + "http_endpoint_parameter_name": "If-Modified-Since" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getPurchaseOrders'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/PurchaseOrders", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "Status", + "tool_parameter_name": "filter_by_status", + "description": "Filter by purchase order status", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "DRAFT", + "SUBMITTED", + "AUTHORISED", + "BILLED", + "DELETED" + ], + "properties": null, + "inner_properties": null, + "description": "Filter by purchase order status" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "DateFrom", + "tool_parameter_name": "filter_by_start_date", + "description": "Filter by purchase order date (e.g. GET https://.../PurchaseOrders?DateFrom=2015-12-01&DateTo=2015-12-31", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by purchase order date (e.g. GET https://.../PurchaseOrders?DateFrom=2015-12-01&DateTo=2015-12-31" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "DateTo", + "tool_parameter_name": "filter_by_end_date", + "description": "Filter by purchase order date (e.g. GET https://.../PurchaseOrders?DateFrom=2015-12-01&DateTo=2015-12-31", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by purchase order date (e.g. GET https://.../PurchaseOrders?DateFrom=2015-12-01&DateTo=2015-12-31" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_by_element", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page", + "tool_parameter_name": "page_number", + "description": "To specify a page, append the page parameter to the URL e.g. ?page=1. If there are 100 records in the response you will need to check if there is any more data by fetching the next page e.g ?page=2 and continuing this process until no more results are returned.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "To specify a page, append the page parameter to the URL e.g. ?page=1. If there are 100 records in the response you will need to check if there is any more data by fetching the next page e.g ?page=2 and continuing this process until no more results are returned." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "pageSize", + "tool_parameter_name": "records_per_page", + "description": "Number of records to retrieve per page", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of records to retrieve per page" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "If-Modified-Since", + "tool_parameter_name": "modified_since_timestamp", + "description": "Only records created or modified since this timestamp will be returned", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuote.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuote.json new file mode 100644 index 00000000..e0d1b4c4 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuote.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveQuote", + "fully_qualified_name": "XeroApi.RetrieveQuote@0.1.0", + "description": "Retrieve details of a specific quote by ID.\n\nCall this tool to obtain detailed information about a specific quote using its unique QuoteID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "quote_id", + "required": true, + "description": "Unique identifier for a quote to retrieve its details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Quote" + }, + "inferrable": true, + "http_endpoint_parameter_name": "QuoteID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Provide the Xero identifier for the tenant to specify the account context.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getQuote'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Quotes/{QuoteID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "QuoteID", + "tool_parameter_name": "quote_id", + "description": "Unique identifier for an Quote", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Quote" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuoteAttachmentByFilename.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuoteAttachmentByFilename.json new file mode 100644 index 00000000..2d8015d4 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuoteAttachmentByFilename.json @@ -0,0 +1,204 @@ +{ + "name": "RetrieveQuoteAttachmentByFilename", + "fully_qualified_name": "XeroApi.RetrieveQuoteAttachmentByFilename@0.1.0", + "description": "Retrieve an attachment from a quote using filename.\n\nCall this tool to obtain a specific attachment from a quote by specifying the filename. Ideal for accessing quote-related documents stored in the Xero system.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "quote_identifier", + "required": true, + "description": "Unique identifier for a Quote. Use this to specify which quote's attachment you want to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Quote" + }, + "inferrable": true, + "http_endpoint_parameter_name": "QuoteID" + }, + { + "name": "attachment_filename", + "required": true, + "description": "Name of the attachment file to retrieve from the quote.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "FileName" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero tenant's unique identifier. Required to specify which tenant's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_mime_type", + "required": true, + "description": "The MIME type of the attachment file (e.g., image/jpg, application/pdf).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getQuoteAttachmentByFileName'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Quotes/{QuoteID}/Attachments/{FileName}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "QuoteID", + "tool_parameter_name": "quote_identifier", + "description": "Unique identifier for an Quote", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Quote" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "FileName", + "tool_parameter_name": "attachment_filename", + "description": "Name of the attachment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuoteAttachments.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuoteAttachments.json new file mode 100644 index 00000000..6f769f9a --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuoteAttachments.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveQuoteAttachments", + "fully_qualified_name": "XeroApi.RetrieveQuoteAttachments@0.1.0", + "description": "Retrieve attachments for a specific quote in Xero.\n\nThis tool retrieves all attachments related to a specified quote in Xero. It should be called when you need to access or view the files linked to a given quote ID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "quote_id", + "required": true, + "description": "Unique identifier for a quote in Xero to retrieve its attachments.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Quote" + }, + "inferrable": true, + "http_endpoint_parameter_name": "QuoteID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "The unique Xero tenant identifier required to retrieve the quote attachments.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getQuoteAttachments'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Quotes/{QuoteID}/Attachments", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "QuoteID", + "tool_parameter_name": "quote_id", + "description": "Unique identifier for an Quote", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Quote" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuoteHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuoteHistory.json new file mode 100644 index 00000000..bf334f64 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuoteHistory.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveQuoteHistory", + "fully_qualified_name": "XeroApi.RetrieveQuoteHistory@0.1.0", + "description": "Retrieves history records of a specific quote.\n\nUse this tool to get the history records for a specific quote using its ID. Ideal for tracking changes and updates to the quote over time.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "quote_id", + "required": true, + "description": "Unique identifier for the quote to retrieve its history records.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Quote" + }, + "inferrable": true, + "http_endpoint_parameter_name": "QuoteID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "The unique identifier for the Xero tenant. Required to specify which tenant's quote history to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getQuoteHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Quotes/{QuoteID}/History", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "QuoteID", + "tool_parameter_name": "quote_id", + "description": "Unique identifier for an Quote", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Quote" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuotePdf.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuotePdf.json new file mode 100644 index 00000000..6c80b0f1 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveQuotePdf.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveQuotePdf", + "fully_qualified_name": "XeroApi.RetrieveQuotePdf@0.1.0", + "description": "Retrieve a specific quote as a PDF file using the quote ID.\n\nThis tool fetches a specific quote as a PDF using its unique ID. Call this when you need to obtain the PDF version of a quote for viewing, sharing, or archiving.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "quote_id", + "required": true, + "description": "A unique identifier for the quote to retrieve as a PDF.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Quote" + }, + "inferrable": true, + "http_endpoint_parameter_name": "QuoteID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "The unique Xero tenant identifier required to access the specific quote.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getQuoteAsPdf'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Quotes/{QuoteID}/pdf", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "QuoteID", + "tool_parameter_name": "quote_id", + "description": "Unique identifier for an Quote", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Quote" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveReceiptAttachment.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveReceiptAttachment.json new file mode 100644 index 00000000..c7f54055 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveReceiptAttachment.json @@ -0,0 +1,204 @@ +{ + "name": "RetrieveReceiptAttachment", + "fully_qualified_name": "XeroApi.RetrieveReceiptAttachment@0.1.0", + "description": "Retrieve a specific attachment from an expense receipt.\n\nUse this tool to obtain a specific attachment from an expense claim receipt by providing the unique attachment ID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "receipt_id", + "required": true, + "description": "Unique identifier for a receipt used to retrieve its attachment.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Receipt" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ReceiptID" + }, + { + "name": "attachment_id", + "required": true, + "description": "Unique identifier for the attachment object you want to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AttachmentID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Xero identifier for the Tenant. Required to specify which tenant's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_mime_type", + "required": true, + "description": "Specify the MIME type of the attachment, e.g., 'image/jpg' or 'application/pdf'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getReceiptAttachmentById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Receipts/{ReceiptID}/Attachments/{AttachmentID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ReceiptID", + "tool_parameter_name": "receipt_id", + "description": "Unique identifier for a Receipt", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Receipt" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "AttachmentID", + "tool_parameter_name": "attachment_id", + "description": "Unique identifier for Attachment object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveReceiptHistory.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveReceiptHistory.json new file mode 100644 index 00000000..64cda891 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveReceiptHistory.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveReceiptHistory", + "fully_qualified_name": "XeroApi.RetrieveReceiptHistory@0.1.0", + "description": "Retrieve detailed history for a specific receipt.\n\nThis tool retrieves the history record of a specific receipt from the Xero service. It should be called when users want to review or analyze the history or changes associated with a receipt.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "receipt_id", + "required": true, + "description": "Unique identifier for the receipt to retrieve its history.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Receipt" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ReceiptID" + }, + { + "name": "tenant_identifier", + "required": true, + "description": "The unique Xero identifier for the tenant associated with the receipt.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getReceiptHistory'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Receipts/{ReceiptID}/History", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ReceiptID", + "tool_parameter_name": "receipt_id", + "description": "Unique identifier for a Receipt", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Receipt" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveRepeatingInvoiceAttachment.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveRepeatingInvoiceAttachment.json new file mode 100644 index 00000000..0d7c7f72 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveRepeatingInvoiceAttachment.json @@ -0,0 +1,204 @@ +{ + "name": "RetrieveRepeatingInvoiceAttachment", + "fully_qualified_name": "XeroApi.RetrieveRepeatingInvoiceAttachment@0.1.0", + "description": "Retrieve a repeating invoice attachment by file name.\n\nUse this tool to obtain a specific attachment from a repeating invoice using the file name. Ideal for accessing invoice-related files directly from the system.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "repeating_invoice_id", + "required": true, + "description": "Unique identifier for a specific repeating invoice. This is necessary to locate the invoice attachment.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Repeating Invoice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "RepeatingInvoiceID" + }, + { + "name": "attachment_file_name", + "required": true, + "description": "The name of the attachment file you wish to retrieve from the repeating invoice.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "FileName" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero tenant ID needed to identify the specific organization in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_mime_type", + "required": true, + "description": "Specify the MIME type of the attachment file to retrieve, such as image/jpg or application/pdf.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getRepeatingInvoiceAttachmentByFileName'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "RepeatingInvoiceID", + "tool_parameter_name": "repeating_invoice_id", + "description": "Unique identifier for a Repeating Invoice", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Repeating Invoice" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "FileName", + "tool_parameter_name": "attachment_file_name", + "description": "Name of the attachment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the attachment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveRepeatingInvoiceAttachmentById.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveRepeatingInvoiceAttachmentById.json new file mode 100644 index 00000000..1dc6b80c --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveRepeatingInvoiceAttachmentById.json @@ -0,0 +1,204 @@ +{ + "name": "RetrieveRepeatingInvoiceAttachmentById", + "fully_qualified_name": "XeroApi.RetrieveRepeatingInvoiceAttachmentById@0.1.0", + "description": "Retrieve a specific attachment from a repeating invoice.\n\nUse this tool to get a particular attachment from a specific repeating invoice in Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "repeating_invoice_id", + "required": true, + "description": "Unique identifier for a Repeating Invoice in Xero system.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Repeating Invoice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "RepeatingInvoiceID" + }, + { + "name": "attachment_id", + "required": true, + "description": "Unique identifier for the attachment object you want to retrieve from the repeating invoice.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "AttachmentID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the tenant needed to retrieve the repeating invoice attachment.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "attachment_mime_type", + "required": true, + "description": "The MIME type of the attachment file, such as image/jpg or application/pdf.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getRepeatingInvoiceAttachmentById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{AttachmentID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "RepeatingInvoiceID", + "tool_parameter_name": "repeating_invoice_id", + "description": "Unique identifier for a Repeating Invoice", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Repeating Invoice" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "AttachmentID", + "tool_parameter_name": "attachment_id", + "description": "Unique identifier for Attachment object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for Attachment object" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "contentType", + "tool_parameter_name": "attachment_mime_type", + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveRepeatingInvoiceAttachments.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveRepeatingInvoiceAttachments.json new file mode 100644 index 00000000..04918eff --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveRepeatingInvoiceAttachments.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveRepeatingInvoiceAttachments", + "fully_qualified_name": "XeroApi.RetrieveRepeatingInvoiceAttachments@0.1.0", + "description": "Retrieve attachments from a specified repeating invoice.\n\nThis tool retrieves attachments from a specific repeating invoice in Xero. Use it to access files associated with recurring invoices.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "repeating_invoice_id", + "required": true, + "description": "Unique identifier for a repeating invoice in Xero. Needed to retrieve the corresponding attachments.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Repeating Invoice" + }, + "inferrable": true, + "http_endpoint_parameter_name": "RepeatingInvoiceID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "A unique identifier for the Xero tenant. Required to access specific tenant data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getRepeatingInvoiceAttachments'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.attachments", + "accounting.attachments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/RepeatingInvoices/{RepeatingInvoiceID}/Attachments", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "RepeatingInvoiceID", + "tool_parameter_name": "repeating_invoice_id", + "description": "Unique identifier for a Repeating Invoice", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Repeating Invoice" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSalesQuotes.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSalesQuotes.json new file mode 100644 index 00000000..3ccc15ff --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSalesQuotes.json @@ -0,0 +1,428 @@ +{ + "name": "RetrieveSalesQuotes", + "fully_qualified_name": "XeroApi.RetrieveSalesQuotes@0.1.0", + "description": "Retrieve sales quotes from Xero.\n\nThis tool fetches sales quotes from Xero, providing details of quotes issued. Use it to obtain current sales quotations.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_id", + "required": true, + "description": "Xero tenant identifier for accessing the specific account's data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_start_date", + "required": false, + "description": "Filter quotes issued after a specified date in YYYY-MM-DD format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter for quotes after a particular date" + }, + "inferrable": true, + "http_endpoint_parameter_name": "DateFrom" + }, + { + "name": "filter_date_to", + "required": false, + "description": "Filter for sales quotes before a specified date in YYYY-MM-DD format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter for quotes before a particular date" + }, + "inferrable": true, + "http_endpoint_parameter_name": "DateTo" + }, + { + "name": "expiry_date_after", + "required": false, + "description": "Filter to retrieve quotes expiring after the specified date. Format: YYYY-MM-DD.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter for quotes expiring after a particular date" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ExpiryDateFrom" + }, + { + "name": "filter_expiry_date_before", + "required": false, + "description": "Filter for quotes expiring before a specified date (YYYY-MM-DD).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter for quotes before a particular date" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ExpiryDateTo" + }, + { + "name": "contact_id", + "required": false, + "description": "Filter the sales quotes by specifying the contact ID to which they belong.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter for quotes belonging to a particular contact" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ContactID" + }, + { + "name": "quote_status", + "required": false, + "description": "Filter quotes by their status (e.g., DRAFT, SENT).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter for quotes of a particular Status" + }, + "inferrable": true, + "http_endpoint_parameter_name": "Status" + }, + { + "name": "page_number", + "required": false, + "description": "The page number to retrieve, allowing pagination through quotes. Each page returns up to 100 quotes.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. page=1 \u2013 Up to 100 Quotes will be returned in a single API call with line items shown for each quote" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page" + }, + { + "name": "order_by_element", + "required": false, + "description": "Specify the element to order the sales quotes by.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "quote_number_filter", + "required": false, + "description": "Filter sales quotes by specifying the quote number (e.g., QU-0001).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by quote number (e.g. GET https://.../Quotes?QuoteNumber=QU-0001)" + }, + "inferrable": true, + "http_endpoint_parameter_name": "QuoteNumber" + }, + { + "name": "modified_since_timestamp", + "required": false, + "description": "Retrieve records created or modified after this timestamp.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "inferrable": true, + "http_endpoint_parameter_name": "If-Modified-Since" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getQuotes'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Quotes", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "DateFrom", + "tool_parameter_name": "filter_start_date", + "description": "Filter for quotes after a particular date", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter for quotes after a particular date" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "DateTo", + "tool_parameter_name": "filter_date_to", + "description": "Filter for quotes before a particular date", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter for quotes before a particular date" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "ExpiryDateFrom", + "tool_parameter_name": "expiry_date_after", + "description": "Filter for quotes expiring after a particular date", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter for quotes expiring after a particular date" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "ExpiryDateTo", + "tool_parameter_name": "filter_expiry_date_before", + "description": "Filter for quotes before a particular date", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter for quotes before a particular date" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "ContactID", + "tool_parameter_name": "contact_id", + "description": "Filter for quotes belonging to a particular contact", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter for quotes belonging to a particular contact" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Status", + "tool_parameter_name": "quote_status", + "description": "Filter for quotes of a particular Status", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter for quotes of a particular Status" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page", + "tool_parameter_name": "page_number", + "description": "e.g. page=1 \u2013 Up to 100 Quotes will be returned in a single API call with line items shown for each quote", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. page=1 \u2013 Up to 100 Quotes will be returned in a single API call with line items shown for each quote" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_by_element", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "QuoteNumber", + "tool_parameter_name": "quote_number_filter", + "description": "Filter by quote number (e.g. GET https://.../Quotes?QuoteNumber=QU-0001)", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by quote number (e.g. GET https://.../Quotes?QuoteNumber=QU-0001)" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "If-Modified-Since", + "tool_parameter_name": "modified_since_timestamp", + "description": "Only records created or modified since this timestamp will be returned", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSpecificJournal.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSpecificJournal.json new file mode 100644 index 00000000..fc7935c1 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSpecificJournal.json @@ -0,0 +1,139 @@ +{ + "name": "RetrieveSpecificJournal", + "fully_qualified_name": "XeroApi.RetrieveSpecificJournal@0.1.0", + "description": "Retrieve a specific journal using its unique ID.\n\nCall this tool to get detailed information about a particular journal by specifying its unique identifier. Useful for accessing specific journal entries in the Xero system.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "journal_id", + "required": true, + "description": "Unique identifier for the journal to be retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Journal" + }, + "inferrable": true, + "http_endpoint_parameter_name": "JournalID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "A unique identifier for the Xero tenant. Required to specify which tenant's journal should be accessed.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getJournal'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.journals.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Journals/{JournalID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "JournalID", + "tool_parameter_name": "journal_id", + "description": "Unique identifier for a Journal", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Journal" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSpecificOverpayment.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSpecificOverpayment.json new file mode 100644 index 00000000..859cbdea --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSpecificOverpayment.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveSpecificOverpayment", + "fully_qualified_name": "XeroApi.RetrieveSpecificOverpayment@0.1.0", + "description": "Retrieve details of a specific overpayment by ID.\n\nUse this tool to obtain information about a specific overpayment using its unique identifier. Ideal for accessing precise overpayment records within Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "overpayment_id", + "required": true, + "description": "Unique identifier for the overpayment to be retrieved. This ID is required to fetch the specific details of the overpayment from Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Overpayment" + }, + "inferrable": true, + "http_endpoint_parameter_name": "OverpaymentID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "The unique identifier for the Xero tenant. Required to specify which organization's data to access.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getOverpayment'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.transactions.read", + "accounting.transactions" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Overpayments/{OverpaymentID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "OverpaymentID", + "tool_parameter_name": "overpayment_id", + "description": "Unique identifier for a Overpayment", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Overpayment" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSpecificReport.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSpecificReport.json new file mode 100644 index 00000000..b41480ab --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSpecificReport.json @@ -0,0 +1,139 @@ +{ + "name": "RetrieveSpecificReport", + "fully_qualified_name": "XeroApi.RetrieveSpecificReport@0.1.0", + "description": "Retrieve a specific report using a ReportID.\n\nThis tool fetches a specific report from Xero using a unique ReportID. It should be called when detailed information about a particular report is needed.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "report_id", + "required": true, + "description": "Unique identifier for a specific report to be retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Report" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ReportID" + }, + { + "name": "xero_tenant_id", + "required": true, + "description": "Xero identifier for the Tenant. This is required to specify which tenant's data is being accessed.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getReportFromId'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.reports.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Reports/{ReportID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ReportID", + "tool_parameter_name": "report_id", + "description": "Unique identifier for a Report", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Report" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSpecificUser.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSpecificUser.json new file mode 100644 index 00000000..39544cd0 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveSpecificUser.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveSpecificUser", + "fully_qualified_name": "XeroApi.RetrieveSpecificUser@0.1.0", + "description": "Retrieve details of a specific user from Xero.\n\nUse this tool to obtain information about a specific user by providing their UserID. It is called when user details from Xero are needed.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_identifier", + "required": true, + "description": "Unique identifier for a User in Xero system.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a User" + }, + "inferrable": true, + "http_endpoint_parameter_name": "UserID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the Tenant. Use this to specify which tenant the user belongs to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getUser'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings", + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Users/{UserID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "UserID", + "tool_parameter_name": "user_identifier", + "description": "Unique identifier for a User", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a User" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveTaxRates.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveTaxRates.json new file mode 100644 index 00000000..4ca88860 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveTaxRates.json @@ -0,0 +1,172 @@ +{ + "name": "RetrieveTaxRates", + "fully_qualified_name": "XeroApi.RetrieveTaxRates@0.1.0", + "description": "Retrieve tax rates from Xero.\n\nUse this tool to obtain the current tax rates available in Xero. It should be called when you need up-to-date tax rate information for financial calculations or reporting.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_id", + "required": true, + "description": "A unique identifier for the Xero tenant. This is required to access tenant-specific data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_by_element", + "required": false, + "description": "Apply a filter to the tax rates by specifying an element condition (e.g. 'Status==\"ACTIVE\"').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "order_by_element", + "required": false, + "description": "Specify the element to order the tax rates by. Provide any valid field or attribute name.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getTaxRates'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings", + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/TaxRates", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_by_element", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_by_element", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveUniqueReportsList.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveUniqueReportsList.json new file mode 100644 index 00000000..d827797a --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveUniqueReportsList.json @@ -0,0 +1,107 @@ +{ + "name": "RetrieveUniqueReportsList", + "fully_qualified_name": "XeroApi.RetrieveUniqueReportsList@0.1.0", + "description": "Retrieve a list of unique reports from Xero.\n\nUse this tool to obtain a list of an organization's unique reports from Xero, each requiring a UUID for fetching.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_id", + "required": true, + "description": "The unique identifier for the Xero tenant to retrieve reports for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getReportsList'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.reports.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Reports", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveXeroContact.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveXeroContact.json new file mode 100644 index 00000000..d1c466d4 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveXeroContact.json @@ -0,0 +1,140 @@ +{ + "name": "RetrieveXeroContact", + "fully_qualified_name": "XeroApi.RetrieveXeroContact@0.1.0", + "description": "Retrieve specific contact information from Xero.\n\nUse this tool to retrieve details of a specific contact in a Xero organization by providing a unique contact ID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_id", + "required": true, + "description": "Provide the unique identifier for the contact to retrieve their information from Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ContactID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "The unique identifier for the tenant in Xero, required to retrieve contact details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getContact'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.contacts.read", + "accounting.contacts" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Contacts/{ContactID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "ContactID", + "tool_parameter_name": "contact_id", + "description": "Unique identifier for a Contact", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for a Contact" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveXeroItem.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveXeroItem.json new file mode 100644 index 00000000..94fa37cc --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveXeroItem.json @@ -0,0 +1,172 @@ +{ + "name": "RetrieveXeroItem", + "fully_qualified_name": "XeroApi.RetrieveXeroItem@0.1.0", + "description": "Retrieve a specific item from Xero using its ID.\n\nCall this tool when you need to fetch details about a particular item from Xero by providing its unique item ID.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "item_identifier", + "required": true, + "description": "The unique identifier for the item in Xero. This is required to retrieve specific item details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Item" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ItemID" + }, + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the Tenant. This is required to specify which tenant's data should be accessed.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "use_unit_decimal_places", + "required": false, + "description": "Specify the number of unit decimal places to use, e.g., 4 for four decimal places in unit amounts.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "inferrable": true, + "http_endpoint_parameter_name": "unitdp" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getItem'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings", + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Items/{ItemID}", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "unitdp", + "tool_parameter_name": "use_unit_decimal_places", + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "e.g. unitdp=4 \u2013 (Unit Decimal Places) You can opt in to use four decimal places for unit amounts" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "ItemID", + "tool_parameter_name": "item_identifier", + "description": "Unique identifier for an Item", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for an Item" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveXeroOrganisationActions.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveXeroOrganisationActions.json new file mode 100644 index 00000000..2f4430eb --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveXeroOrganisationActions.json @@ -0,0 +1,108 @@ +{ + "name": "RetrieveXeroOrganisationActions", + "fully_qualified_name": "XeroApi.RetrieveXeroOrganisationActions@0.1.0", + "description": "Retrieve key actions allowed in Xero organisation.\n\nUse this tool to get a list of the key actions your application is allowed to perform within a connected Xero organisation. This helps in understanding the permissions available.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_id", + "required": true, + "description": "Xero identifier for the tenant to specify which organisation's actions to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getOrganisationActions'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings", + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Organisation/Actions", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_id", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveXeroUsers.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveXeroUsers.json new file mode 100644 index 00000000..cd2c5ad9 --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/RetrieveXeroUsers.json @@ -0,0 +1,204 @@ +{ + "name": "RetrieveXeroUsers", + "fully_qualified_name": "XeroApi.RetrieveXeroUsers@0.1.0", + "description": "Retrieve users from the Xero platform.\n\nCall this tool to fetch a list of users from the Xero platform when user information or management is required.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero identifier for the specific tenant. This is required to specify the tenant for which users are to be retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "filter_by_criteria", + "required": false, + "description": "A string to filter users based on specific criteria in Xero.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "where" + }, + { + "name": "order_by_element", + "required": false, + "description": "Specify the element to order the retrieved users by, such as name or date.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "modified_since_timestamp", + "required": false, + "description": "Return only records created or modified since this timestamp, formatted as an ISO 8601 string.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "inferrable": true, + "http_endpoint_parameter_name": "If-Modified-Since" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getUsers'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings", + "accounting.settings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Users", + "http_method": "GET", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "where", + "tool_parameter_name": "filter_by_criteria", + "description": "Filter by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filter by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "order_by_element", + "description": "Order by an any element", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order by an any element" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "If-Modified-Since", + "tool_parameter_name": "modified_since_timestamp", + "description": "Only records created or modified since this timestamp will be returned", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Only records created or modified since this timestamp will be returned" + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/arcade_xero_api/wrapper_tools/SetFinancialSetup.json b/toolkits/xero_api/arcade_xero_api/wrapper_tools/SetFinancialSetup.json new file mode 100644 index 00000000..85a63b5f --- /dev/null +++ b/toolkits/xero_api/arcade_xero_api/wrapper_tools/SetFinancialSetup.json @@ -0,0 +1,1147 @@ +{ + "name": "SetFinancialSetup", + "fully_qualified_name": "XeroApi.SetFinancialSetup@0.1.0", + "description": "Sets up the financial chart of accounts and conversion details.\n\nUse this tool to set up the chart of accounts, conversion date, and conversion balances in Xero.", + "toolkit": { + "name": "ArcadeXeroApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "xero_tenant_identifier", + "required": true, + "description": "Xero tenant ID required to identify the specific tenant for the request.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "inferrable": true, + "http_endpoint_parameter_name": "xero-tenant-id" + }, + { + "name": "financial_setup_details", + "required": true, + "description": "JSON object containing accounts, conversion balances, and a conversion date for setting up the financial chart in Xero.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "ConversionDate": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "Month": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The month the organisation starts using Xero. Value is an integer between 1 and 12" + }, + "Year": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The year the organisation starts using Xero. Value is an integer greater than 2006" + } + }, + "inner_properties": null, + "description": "The date when the organisation starts using Xero" + }, + "ConversionBalances": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "AccountCode": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The account code for a account" + }, + "Balance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The opening balances of the account. Debits are positive, credits are negative values" + }, + "BalanceDetails": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "Balance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The opening balances of the account. Debits are positive, credits are negative values" + }, + "CurrencyCode": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The currency of the balance (Not required for base currency)" + }, + "CurrencyRate": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Optional) Exchange rate to base currency when money is spent or received. If not specified, XE rate for the day is applied" + } + }, + "description": null + } + }, + "description": "Balance supplied for each account that has a value as at the conversion date." + }, + "Accounts": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "Code": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Customer defined alpha numeric account code e.g 200 or SALES (max length = 10)" + }, + "Name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of account (max length = 150)" + }, + "AccountID": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Xero identifier for an account \u2013 specified as a string following the endpoint name e.g. /297c2dc5-cc47-4afd-8ec8-74990b8761e9" + }, + "Type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "BANK", + "CURRENT", + "CURRLIAB", + "DEPRECIATN", + "DIRECTCOSTS", + "EQUITY", + "EXPENSE", + "FIXED", + "INVENTORY", + "LIABILITY", + "NONCURRENT", + "OTHERINCOME", + "OVERHEADS", + "PREPAYMENT", + "REVENUE", + "SALES", + "TERMLIAB", + "PAYG" + ], + "properties": null, + "inner_properties": null, + "description": "See Account Types" + }, + "BankAccountNumber": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "For bank accounts only (Account Type BANK)" + }, + "Status": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "ACTIVE", + "ARCHIVED", + "DELETED" + ], + "properties": null, + "inner_properties": null, + "description": "Accounts with a status of ACTIVE can be updated to ARCHIVED. See Account Status Codes" + }, + "Description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the Account. Valid for all types of accounts except bank accounts (max length = 4000)" + }, + "BankAccountType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "BANK", + "CREDITCARD", + "PAYPAL", + "NONE", + "" + ], + "properties": null, + "inner_properties": null, + "description": "For bank accounts only. See Bank Account types" + }, + "CurrencyCode": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "AED", + "AFN", + "ALL", + "AMD", + "ANG", + "AOA", + "ARS", + "AUD", + "AWG", + "AZN", + "BAM", + "BBD", + "BDT", + "BGN", + "BHD", + "BIF", + "BMD", + "BND", + "BOB", + "BRL", + "BSD", + "BTN", + "BWP", + "BYN", + "BYR", + "BZD", + "CAD", + "CDF", + "CHF", + "CLF", + "CLP", + "CNY", + "COP", + "CRC", + "CUC", + "CUP", + "CVE", + "CZK", + "DJF", + "DKK", + "DOP", + "DZD", + "EEK", + "EGP", + "ERN", + "ETB", + "EUR", + "FJD", + "FKP", + "GBP", + "GEL", + "GHS", + "GIP", + "GMD", + "GNF", + "GTQ", + "GYD", + "HKD", + "HNL", + "HRK", + "HTG", + "HUF", + "IDR", + "ILS", + "INR", + "IQD", + "IRR", + "ISK", + "JMD", + "JOD", + "JPY", + "KES", + "KGS", + "KHR", + "KMF", + "KPW", + "KRW", + "KWD", + "KYD", + "KZT", + "LAK", + "LBP", + "LKR", + "LRD", + "LSL", + "LTL", + "LVL", + "LYD", + "MAD", + "MDL", + "MGA", + "MKD", + "MMK", + "MNT", + "MOP", + "MRO", + "MRU", + "MUR", + "MVR", + "MWK", + "MXN", + "MXV", + "MYR", + "MZN", + "NAD", + "NGN", + "NIO", + "NOK", + "NPR", + "NZD", + "OMR", + "PAB", + "PEN", + "PGK", + "PHP", + "PKR", + "PLN", + "PYG", + "QAR", + "RON", + "RSD", + "RUB", + "RWF", + "SAR", + "SBD", + "SCR", + "SDG", + "SEK", + "SGD", + "SHP", + "SKK", + "SLE", + "SLL", + "SOS", + "SRD", + "STD", + "STN", + "SVC", + "SYP", + "SZL", + "THB", + "TJS", + "TMT", + "TND", + "TOP", + "TRY", + "TTD", + "TWD", + "TZS", + "UAH", + "UGX", + "USD", + "UYU", + "UZS", + "VEF", + "VES", + "VND", + "VUV", + "WST", + "XAF", + "XCD", + "XOF", + "XPF", + "YER", + "ZAR", + "ZMW", + "ZMK", + "ZWD" + ], + "properties": null, + "inner_properties": null, + "description": "3 letter alpha code for the currency \u2013 see list of currency codes" + }, + "TaxType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The tax type from taxRates" + }, + "EnablePaymentsToAccount": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Boolean \u2013 describes whether account can have payments applied to it" + }, + "ShowInExpenseClaims": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Boolean \u2013 describes whether account code is available for use with expense claims" + }, + "Class": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "ASSET", + "EQUITY", + "EXPENSE", + "LIABILITY", + "REVENUE" + ], + "properties": null, + "inner_properties": null, + "description": "See Account Class Types" + }, + "SystemAccount": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "DEBTORS", + "CREDITORS", + "BANKCURRENCYGAIN", + "GST", + "GSTONIMPORTS", + "HISTORICAL", + "REALISEDCURRENCYGAIN", + "RETAINEDEARNINGS", + "ROUNDING", + "TRACKINGTRANSFERS", + "UNPAIDEXPCLM", + "UNREALISEDCURRENCYGAIN", + "WAGEPAYABLES", + "CISASSETS", + "CISASSET", + "CISLABOUR", + "CISLABOUREXPENSE", + "CISLABOURINCOME", + "CISLIABILITY", + "CISMATERIALS", + "" + ], + "properties": null, + "inner_properties": null, + "description": "If this is a system account then this element is returned. See System Account types. Note that non-system accounts may have this element set as either \u201c\u201d or null." + }, + "ReportingCode": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Shown if set" + }, + "ReportingCodeName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Shown if set" + }, + "HasAttachments": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "boolean to indicate if an account has an attachment (read only)" + }, + "UpdatedDateUTC": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last modified date UTC format" + }, + "AddToWatchlist": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Boolean \u2013 describes whether the account is shown in the watchlist widget on the dashboard" + }, + "ValidationErrors": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "Message": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Validation error message" + } + }, + "description": "Displays array of validation error messages from the API" + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "Object including an accounts array, a conversion balances array and a conversion date object in body of request" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "idempotency_key", + "required": false, + "description": "A unique string up to 128 characters to safely retry requests without duplicating processing.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "inferrable": true, + "http_endpoint_parameter_name": "Idempotency-Key" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'postSetup'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-xero", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "accounting.settings" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the Xero API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.xero.com/api.xro/2.0/Setup", + "http_method": "POST", + "headers": { + "Accept": "application/json" + }, + "parameters": [ + { + "name": "xero-tenant-id", + "tool_parameter_name": "xero_tenant_identifier", + "description": "Xero identifier for Tenant", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Xero identifier for Tenant" + }, + "accepted_as": "header", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "Idempotency-Key", + "tool_parameter_name": "idempotency_key", + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This allows you to safely retry requests without the risk of duplicate processing. 128 character max." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "financial_setup_details", + "description": "Object including an accounts array, a conversion balances array and a conversion date object in body of request", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "ConversionDate": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "Month": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The month the organisation starts using Xero. Value is an integer between 1 and 12" + }, + "Year": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The year the organisation starts using Xero. Value is an integer greater than 2006" + } + }, + "inner_properties": null, + "description": "The date when the organisation starts using Xero" + }, + "ConversionBalances": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "AccountCode": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The account code for a account" + }, + "Balance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The opening balances of the account. Debits are positive, credits are negative values" + }, + "BalanceDetails": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "Balance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The opening balances of the account. Debits are positive, credits are negative values" + }, + "CurrencyCode": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The currency of the balance (Not required for base currency)" + }, + "CurrencyRate": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Optional) Exchange rate to base currency when money is spent or received. If not specified, XE rate for the day is applied" + } + }, + "description": null + } + }, + "description": "Balance supplied for each account that has a value as at the conversion date." + }, + "Accounts": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "Code": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Customer defined alpha numeric account code e.g 200 or SALES (max length = 10)" + }, + "Name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of account (max length = 150)" + }, + "AccountID": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Xero identifier for an account \u2013 specified as a string following the endpoint name e.g. /297c2dc5-cc47-4afd-8ec8-74990b8761e9" + }, + "Type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "BANK", + "CURRENT", + "CURRLIAB", + "DEPRECIATN", + "DIRECTCOSTS", + "EQUITY", + "EXPENSE", + "FIXED", + "INVENTORY", + "LIABILITY", + "NONCURRENT", + "OTHERINCOME", + "OVERHEADS", + "PREPAYMENT", + "REVENUE", + "SALES", + "TERMLIAB", + "PAYG" + ], + "properties": null, + "inner_properties": null, + "description": "See Account Types" + }, + "BankAccountNumber": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "For bank accounts only (Account Type BANK)" + }, + "Status": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "ACTIVE", + "ARCHIVED", + "DELETED" + ], + "properties": null, + "inner_properties": null, + "description": "Accounts with a status of ACTIVE can be updated to ARCHIVED. See Account Status Codes" + }, + "Description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the Account. Valid for all types of accounts except bank accounts (max length = 4000)" + }, + "BankAccountType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "BANK", + "CREDITCARD", + "PAYPAL", + "NONE", + "" + ], + "properties": null, + "inner_properties": null, + "description": "For bank accounts only. See Bank Account types" + }, + "CurrencyCode": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "AED", + "AFN", + "ALL", + "AMD", + "ANG", + "AOA", + "ARS", + "AUD", + "AWG", + "AZN", + "BAM", + "BBD", + "BDT", + "BGN", + "BHD", + "BIF", + "BMD", + "BND", + "BOB", + "BRL", + "BSD", + "BTN", + "BWP", + "BYN", + "BYR", + "BZD", + "CAD", + "CDF", + "CHF", + "CLF", + "CLP", + "CNY", + "COP", + "CRC", + "CUC", + "CUP", + "CVE", + "CZK", + "DJF", + "DKK", + "DOP", + "DZD", + "EEK", + "EGP", + "ERN", + "ETB", + "EUR", + "FJD", + "FKP", + "GBP", + "GEL", + "GHS", + "GIP", + "GMD", + "GNF", + "GTQ", + "GYD", + "HKD", + "HNL", + "HRK", + "HTG", + "HUF", + "IDR", + "ILS", + "INR", + "IQD", + "IRR", + "ISK", + "JMD", + "JOD", + "JPY", + "KES", + "KGS", + "KHR", + "KMF", + "KPW", + "KRW", + "KWD", + "KYD", + "KZT", + "LAK", + "LBP", + "LKR", + "LRD", + "LSL", + "LTL", + "LVL", + "LYD", + "MAD", + "MDL", + "MGA", + "MKD", + "MMK", + "MNT", + "MOP", + "MRO", + "MRU", + "MUR", + "MVR", + "MWK", + "MXN", + "MXV", + "MYR", + "MZN", + "NAD", + "NGN", + "NIO", + "NOK", + "NPR", + "NZD", + "OMR", + "PAB", + "PEN", + "PGK", + "PHP", + "PKR", + "PLN", + "PYG", + "QAR", + "RON", + "RSD", + "RUB", + "RWF", + "SAR", + "SBD", + "SCR", + "SDG", + "SEK", + "SGD", + "SHP", + "SKK", + "SLE", + "SLL", + "SOS", + "SRD", + "STD", + "STN", + "SVC", + "SYP", + "SZL", + "THB", + "TJS", + "TMT", + "TND", + "TOP", + "TRY", + "TTD", + "TWD", + "TZS", + "UAH", + "UGX", + "USD", + "UYU", + "UZS", + "VEF", + "VES", + "VND", + "VUV", + "WST", + "XAF", + "XCD", + "XOF", + "XPF", + "YER", + "ZAR", + "ZMW", + "ZMK", + "ZWD" + ], + "properties": null, + "inner_properties": null, + "description": "3 letter alpha code for the currency \u2013 see list of currency codes" + }, + "TaxType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The tax type from taxRates" + }, + "EnablePaymentsToAccount": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Boolean \u2013 describes whether account can have payments applied to it" + }, + "ShowInExpenseClaims": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Boolean \u2013 describes whether account code is available for use with expense claims" + }, + "Class": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "ASSET", + "EQUITY", + "EXPENSE", + "LIABILITY", + "REVENUE" + ], + "properties": null, + "inner_properties": null, + "description": "See Account Class Types" + }, + "SystemAccount": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "DEBTORS", + "CREDITORS", + "BANKCURRENCYGAIN", + "GST", + "GSTONIMPORTS", + "HISTORICAL", + "REALISEDCURRENCYGAIN", + "RETAINEDEARNINGS", + "ROUNDING", + "TRACKINGTRANSFERS", + "UNPAIDEXPCLM", + "UNREALISEDCURRENCYGAIN", + "WAGEPAYABLES", + "CISASSETS", + "CISASSET", + "CISLABOUR", + "CISLABOUREXPENSE", + "CISLABOURINCOME", + "CISLIABILITY", + "CISMATERIALS", + "" + ], + "properties": null, + "inner_properties": null, + "description": "If this is a system account then this element is returned. See System Account types. Note that non-system accounts may have this element set as either \u201c\u201d or null." + }, + "ReportingCode": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Shown if set" + }, + "ReportingCodeName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Shown if set" + }, + "HasAttachments": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "boolean to indicate if an account has an attachment (read only)" + }, + "UpdatedDateUTC": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Last modified date UTC format" + }, + "AddToWatchlist": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Boolean \u2013 describes whether the account is shown in the watchlist widget on the dashboard" + }, + "ValidationErrors": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "Message": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Validation error message" + } + }, + "description": "Displays array of validation error messages from the API" + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "Object including an accounts array, a conversion balances array and a conversion date object in body of request" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/xero_api/pyproject.toml b/toolkits/xero_api/pyproject.toml new file mode 100644 index 00000000..499b091b --- /dev/null +++ b/toolkits/xero_api/pyproject.toml @@ -0,0 +1,60 @@ +[build-system] +requires = [ "hatchling",] +build-backend = "hatchling.build" + +[project] +name = "arcade_xero_api" +version = "0.1.0" +description = "Tools that enable LLMs to interact directly with the Xero API." +requires-python = ">=3.10" +dependencies = [ + "arcade-tdk>=2.6.0rc2,<3.0.0", + "httpx[http2]>=0.27.2,<1.0.0", +] +[[project.authors]] +email = "support@arcade.dev" + + +[project.optional-dependencies] +dev = [ + "arcade-mcp[all]>=1.0.0rc2,<3.0.0", + "arcade-serve>=2.2.0rc2,<3.0.0", + "pytest>=8.3.0,<8.4.0", + "pytest-cov>=4.0.0,<4.1.0", + "pytest-mock>=3.11.1,<3.12.0", + "pytest-asyncio>=0.24.0,<0.25.0", + "mypy>=1.5.1,<1.6.0", + "pre-commit>=3.4.0,<3.5.0", + "tox>=4.11.1,<4.12.0", + "ruff>=0.7.4,<0.8.0", +] + +# Tell Arcade.dev that this package is a toolkit +[project.entry-points.arcade_toolkits] +toolkit_name = "arcade_xero_api" + +# Use local path sources for arcade libs when working locally +[tool.uv.sources] +arcade-mcp = { path = "../../", editable = true } +arcade-serve = { path = "../../libs/arcade-serve/", editable = true } +arcade-tdk = { path = "../../libs/arcade-tdk/", editable = true } +[tool.mypy] +files = [ "arcade_xero_api/**/*.py",] +python_version = "3.10" +disallow_untyped_defs = "True" +disallow_any_unimported = "True" +no_implicit_optional = "True" +check_untyped_defs = "True" +warn_return_any = "True" +warn_unused_ignores = "True" +show_error_codes = "True" +ignore_missing_imports = "True" + +[tool.pytest.ini_options] +testpaths = [ "tests",] + +[tool.coverage.report] +skip_empty = true + +[tool.hatch.build.targets.wheel] +packages = [ "arcade_xero_api",]